Поделиться через


Когда следует использовать настраиваемое правило для утверждений

Вы пишете настраиваемое правило утверждения в службы федерации Active Directory (AD FS) (AD FS) с помощью языка правила утверждения, который является платформой, используемой подсистемой выдачи утверждений для программного создания, преобразования, передачи и фильтрации утверждений. Используя настраиваемое правило, вы можете создавать правила с более сложной логикой, чем с помощью стандартного шаблона правил. Рассмотрите возможность использования настраиваемого правила, когда требуется выполнять следующее.

  • Отправлять утверждения на основе значений, извлекаемых из хранилища атрибутов языка SQL.

  • Отправлять утверждения на основе значений, извлекаемых из хранилища атрибутов протокола LDAP с помощью настраиваемого фильтра LDAP.

  • Отправлять утверждения на основе значений, извлекаемых из настраиваемого хранилища атрибутов.

  • Отправлять утверждения только в том случае, если имеется не менее двух входящих утверждений.

  • Отправка утверждения только в том случае, если значение входящего утверждения соответствует сложному шаблону.

  • Отправлять утверждения со сложными изменениями значения входящего утверждения.

  • Создавать утверждения для использования только в последующих правилах, без фактической отправки этих утверждений.

  • Строить исходящее утверждение на основе содержимого нескольких входящих утверждений.

Вы также можете использовать настраиваемое правило, когда значение исходящего утверждения должно строиться на значении входящего утверждения, но с дополнительным содержимым.

Язык правил для утверждений основывается на правилах. Он имеет часть условий и выполняемую часть. Используя синтаксис языка правил для утверждений, вы можете перечислять, добавлять, удалять или изменять утверждения в соответствии с потребностями вашей организации. Дополнительные сведения о том, как работает каждая из этих частей, см. в разделе "Роль языка правила утверждения".

В следующих разделах содержатся основные сведения о правилах утверждений. В них также говорится о том, когда следует использовать настраиваемые правила для утверждений.

Общие сведения о правилах утверждения

Правило для утверждения представляет экземпляр бизнес-логики, который принимает входящее утверждение, применяет к нему условие (если X, то Y) и создает исходящее утверждения на основе параметров условия.

Внимание

  • В оснастке управления AD FS правила утверждений можно создавать только с помощью шаблонов правил утверждений.
  • Правила утверждений обрабатывают входящие утверждения непосредственно от поставщика утверждений (например, Active Directory или другой службы федерации) или из выходных данных правил преобразования принятия для отношения доверия с поставщиком утверждений.
  • Правила утверждений обрабатываются подсистемой выдачи утверждений в хронологическом порядке в пределах заданного набора правил. Установив приоритет правил, можно дополнительно уточнять или фильтровать утверждения, созданные предыдущими правилами в данном наборе правил.
  • Шаблоны правил для утверждений всегда требуют указывать тип входящего утверждения. Однако вы можете обрабатывать несколько значений утверждений с одним типом утверждения, используя одно правило.

Дополнительные сведения о правилах утверждений и наборах правил утверждений см. в разделе "Роль правил утверждений". Дополнительные сведения о том, как обрабатываются правила, см. в разделе "Роль обработчика утверждений". Дополнительные сведения об обработке наборов правил утверждений см. в разделе "Роль конвейера утверждений".

Создание правила

Вы создадите это правило, сначала создав синтаксис, необходимый для вашей операции с помощью языка правила утверждения, а затем вставив результат в текстовое поле, предоставленное в шаблоне "Отправить утверждения с помощью пользовательского правила" для свойств доверия поставщика утверждений или доверия проверяющей стороны в оснастке управления AD FS.

Этот шаблон правил предоставляет следующие возможности.

  • указание имени правила утверждения;

  • Введите одно или несколько необязательных условий и инструкцию выдачи с помощью языка правила утверждения AD FS

Дополнительные инструкции по созданию настраиваемого правила с помощью этого шаблона см. в разделе "Создание правила для отправки утверждений с помощью настраиваемого правила " в руководстве по развертыванию AD FS.

Для лучшего понимания принципов работы языка правил для утверждений просмотрите синтаксис языка правил для утверждений в других правилах, которые уже существуют в оснастке, перейдя на вкладку Просмотр языка правил в окне свойств для этого правила. Используя сведения данного раздела и информацию о синтаксисе на этой вкладке, можно глубже понять процесс создания собственных настраиваемых правил.

Дополнительные сведения об использовании языка правил утверждений см. в разделе "Роль языка правил утверждений".

С помощью языка правил утверждений

Пример. Объединение имен и фамилий на основе значений атрибута имени пользователя

Следующий синтаксис правила объединяет имена и фамилии из значений атрибутов в указанном хранилище атрибутов. Обработчик политик формируют декартово произведение совпадений для каждого условия. Например, выходные данные для имени {"Frank", "Alan"} и фамилии {"Миллер", "Шен"} — {"Фрэнк Миллер", "Фрэнк Миллер", "Фрэнк Шен", "Алан Миллер", "Alan Shen"}:

c1:[type == "http://exampleschema/firstname" ]
&&  c2:[type == "http://exampleschema/lastname",]
=> issue(type = "http://exampleschema/name", value = c1.value + "  " + c2.value);

Пример. Выдача утверждения о руководителе на основе наличия у пользователей подчиненных

Следующее правило выдает утверждение о руководителе только в том случае, если пользователь имеет подчиненных.

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] => add(store = "SQL Store", types = ("http://schemas.xmlsoap.org/claims/Reports"), query = "SELECT Reports FROM dbo.DirectReports WHERE UserName = {0}", param = c.value );
count([type == "http://schemas.xmlsoap.org/claims/Reports"] ) > 0 => issue(= "http://schemas.xmlsoap.org/claims/ismanager", value = "true");

Пример. Выдача утверждения PPID на основе атрибута LDAP

Следующее правило выдает утверждение с частным личным идентификатором (PPID) на основе пользовательских атрибутов windowsaccountname и originalissuer в хранилище атрибутов LDAP.

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
 => issue(store = "_OpaqueIdStore", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier"), query = "{0};{1};{2}", param = "ppid", param = c.Value, param = c.OriginalIssuer);

Ниже перечислены общие атрибуты, которые могут использоваться для идентификации пользователя для данного запроса.

  • идентификатор безопасности пользователя

  • windowsaccountname

  • Samaccountname