Вы находитесь здесь:
Параметры защиты и конфиденциальности для типов настраиваемых метаданных
Управляйте доступностью и полномочиями типов настраиваемых метаданных.
Требуемые версии
| Доступно в версиях: Salesforce Classic и Lightning Experience |
Доступно в версиях: Enterprise Edition, Performance Edition, Unlimited Edition и Developer Edition Вы можете создавать, редактировать и удалять записи типов настраиваемых метаданных из установленных пакетов в версиях: Версии Group Edition и Professional Edition |
Пакеты
Для конфиденциальных данных, например, секретов приложений, важно, чтобы типы настраиваемых метаданных были добавлены в управляемый пакет. Если они содержатся в управляемом пакете и установлены на «защищенный» или «пакет защищен», они недоступны организациям подписчика, что делает их хорошим местом для хранения определенных видов секретов.
Защищенные типы настраиваемых метаданных в неуправляемом пакете аналогичны общедоступным типам настраиваемых метаданных. Убедитесь, что секреты, персональные данные или любые личные данные хранятся в защищенных типах настраиваемых метаданных, установленных как часть управляемого пакета.
Доступность
Вы можете создать защищенные типы настраиваемых метаданных в организациях разработчика и стартовых организациях. Ниже перечислены параметры для типов настраиваемых метаданных.
- PackageProtected—Когда в управляемом пакете второго поколения, тип может видеть только код Apex в этом же управляемом пакете. Имя типа и запись отображаются, если на них ссылается формула.
- Защищено: при нахождении в управляемом пакете тип может просматриваться только кодом Apex в одном пространстве имен. Имя типа и запись отображаются, если на них ссылается формула.
- Общедоступный: вне зависимости от типа пакета (управляемый или неуправляемый), они имеют доступ.
- Apex
- Формулы
- Потоки
- API для пользователей с полномочием «Настройка приложения» или полномочиями, предоставленными посредством профилей или наборов полномочий. Тип настраиваемых метаданных, поля и незащищенные записи отображаются в настройках.
Параметры схемы
Параметр «Параметры схемы» «Ограничить доступ к типам настраиваемых метаданных» является единым параметром, ограничивающим доступ к типам настраиваемых метаданных. Этот параметр включен по умолчанию, и доступ для чтения API к типам настраиваемых метаданных должен быть явно предоставлен. Администраторы с полномочием «Настройка приложения» могут предоставлять доступ пользователям посредством профилей и наборов полномочий.
Алгоритм Apex, Visualforce и Aura
Существуют разные режимы кода выполнения в Salesforce, влияющие на доступность типов настраиваемых метаданных.
Код Apex, выполняемый в системном режиме, игнорирует полномочия пользователя, а код Apex имеет доступ ко всем объектам и полям. Полномочия объекта, безопасность поля и правила общего доступа не применяются к текущему пользователю. Выполнение в системном режиме обеспечивает отсутствие сбоев кода из-за скрытых полей или объектов для пользователя.
В режиме пользователя такие функции, как компоненты Visualforce, шаблоны эл. почты Visualforce и Aura, выполняются в отношении полномочий пользователя и общего доступа к записям.
with sharing в классе Apex не влияет на поведение запроса (например, isAccessible() и isCreatable()). Если значение поля извлекается в Apex и назначается переменной, не являющейся sObject, алгоритм будет одинаковым вне зависимости от включения или отсутствия параметра.Если функции выполняются в режиме пользователя, например, компоненты Visualforce, шаблоны эл. почты Visualforce и Aura, у вас должно быть полномочие на доступ к типам настраиваемых метаданных. Например, без авторизации поля на страницах Visualforce, к которым у вас нет доступа, не отображаются. Глобальная переменная $Setup (доступна в Visualforce и формулах) продолжает загружать значения по прямой ссылке (то есть данные, назначенные типу sObject), вне зависимости от текущего пользователя.
Рассмотрим этот сценарий:
- (1) Apex загружает запись, являющуюся строкой, добавленной в переменную (например,
MyCMT__c). - (2) Visualforce отображает
MyCMT__c.MyPath__c. - (3) Проверка доступа выполняется при загрузке страницы.
- (4) Но проверки не выполняются в системном режиме, что является стандартным алгоритмом Visualforce. Пользователи без полномочия на тип настраиваемых метаданных не могут отобразить страницу Visualforce, поскольку Visualforce повторно инициирует проверку доступа.
В этом сценарии, если пользователю не разрешено полномочие на тип настраиваемых метаданных, есть два обходных пути. Вы можете создать строку для каждого объекта, через которую можно пройти, или создать класс обработки. Используйте эти параметры вместо назначения переменной, например, MyCMT__c, а потом отображения myCMT.Path__c myCMT.Name. Например,
class DataHolder{
public string path {get;set;}
public boolean active {get;set;}
}При загрузке строк в коллекцию проверки Visualforce пропускаются, поскольку типом является тип данных вместо sObject.
Ниже указан пример, содержащий примечание к @AuraEnabled контроллера компонентов Aura или Lightning.
class with sharing MyController {
@AuraEnabled
public static List<My__mdt> thisWillNotWork() {
return [select developername from my__mdt];
}
@AuraEnabled
public static List<String> thisWill() {
List<String> retVal = new List<String>();
for(My__mdt config: [select developername from my__mdt]) {
retVal.add(config.DeveloperName);
}
return retVal;
}
}Извлечение сведений о типе настраиваемых метаданных
При извлечении записей типов настраиваемых метаданных или количества типов настраиваемых метаданных количество, возвращаемое SOQL, Apex, формулами, потоками или API, может отличаться от числа в пользовательском интерфейсе. Это отличие обусловлено параметрами доступности типа настраиваемых метаданных и доступом пользователя к типу на основе профилей и полномочий.
