Безопасность на уровне полей (FLS) в Salesforce: подробности и стратегии
Добро пожаловать в новый выпуск серии о безопасности. Сегодня мы подробно разберем безопасность на уровне полей в Salesforce (Field Level Security, FLS). Эта функция нужна, когда вы уже предоставили доступ к объекту, но хотите управлять видимостью отдельных полей этого объекта.
1. Введение
Безопасность на уровне полей — это управление тем, кто может видеть определенные поля объекта. Представьте объект с полем, где хранятся конфиденциальные данные. Как сделать так, чтобы эти данные видели только определенные пользователи?
2. Сценарий
Для иллюстрации возьмем вымышленный пример с «пилотом Paul». У нас есть объект «Airport». В этом объекте есть поле «Security Status». Наша цель — разрешить доступ к этому полю только Paul и закрыть его для остальных.

3. Предоставление доступа
Сначала в диспетчере объектов для «Airport» мы создаем новое поле. В нашем примере это список выбора «Security Status» с вариантами «Normal», «Elevated» и «Lockdown».
Вместо предоставления доступа на уровне профиля переходите к безопасности на уровне наборов разрешений. Единственное исключение — системный администратор, у которого по-прежнему может быть доступ на уровне профиля.
Поэтому по умолчанию новое поле видит только системный администратор.
4. Наборы разрешений
Чтобы предоставить доступ Paul:
- Перейдите в раздел «Наборы разрешений».
- Проверьте группы наборов разрешений Paul. Там вы найдете группу «Airport View» (она была создана в одной из прошлых демонстраций).
- Настройте параметры объекта в этой группе так, чтобы она давала доступ на чтение к полю «Security Status» (с помощью стандартной безопасности на уровне полей).
После этих шагов и Paul, и все остальные, у кого есть набор разрешений «Airport View», смогут видеть статус безопасности в любой записи аэропорта, к которой у них есть доступ.
5. Условное отображение поля с помощью Dynamic Forms
[caption id="" align=“alignnone” width=“3002”]
Условие фильтра можно добавить на уровне отдельного поля [/caption]
Если вы хотите отображать поле при определенном условии:
- Откройте Lightning App Builder.
- Перейдите на Dynamic Forms.
- Добавьте фильтр к полю «Security Status». Например, показывайте это поле, только если тип аэропорта — «Large».
Помните, что этот способ лишь скрывает поле в пользовательском интерфейсе, но поле по-прежнему доступно в представлениях списков, отчетах, панелях мониторинга и глобальном поиске. Так что это не надежный способ обеспечить абсолютную конфиденциальность данных.
6. Продвинутая защита с помощью компонентов Lightning Web (LWC)
Если действительно нужна строгая безопасность на уровне полей:
Не предоставляйте стандартную безопасность на уровне полей. Ведь если у пользователя есть доступ FLS (Field Level Security) к полю, он может добраться до него другими путями, например через:
- Представления списков
- Отчеты
- Поиск

Создайте компонент Lightning Web (LWC), который работает в системном контексте и отображает поле по условию.
LWC отлично подходят для отображения данных, но при создании или редактировании записей с ними могут возникнуть сложности. Возможно, понадобится собственный экран редактирования внутри LWC.
Заключение
Защита полей в Salesforce крайне важна. В зависимости от требуемого уровня безопасности Salesforce предлагает разные варианты:
- Предоставляйте доступ только через наборы разрешений.
- Используйте условную видимость поля с ее встроенными ограничениями.
- При высоких требованиях к безопасности создайте компонент Lightning Web.
Спасибо
Спасибо, что были с нами. Помните: безопасность превыше всего, а понимание безопасности на уровне полей помогает сохранять данные Salesforce конфиденциальными и в правильных руках.
Следите за новостями здесь, на www.SteveTechArc.com, и на YouTube-канале @SteveTechArc (opens in a new tab).
Помогаем менять мир, делясь интересными мыслями с коллегами-архитекторами и теми, кто идет по пути к профессии архитектора!
Расшифровка сделана с помощью ИИ
STA 4.5