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


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

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

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

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

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

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

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

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

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

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

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

Передавать все значения требования

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

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

Преобразование утверждения

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

Например, как показано на следующем рисунке, когда устанавливается правило с условием замены входящего значения на значение другого исходящего утверждения, все входящие утверждения с типом "Группа" сопоставляются с новыми типами исходящих утверждений "Роль". В этом случае значение входящего утверждения "Покупатель" заменяется на новое значение исходящего утверждения "Администратор".

when to use a transform

Это правило также можно использовать для применения условия, которое приведет к замене всех входящих утверждений с указанным значением суффикса электронной почты новым значением. Например, можно задать в этом правиле условие для изменения всех значений утверждений с суффиксом sales.corp.fabrikam.com на fabrikam.com.

Настройка этого правила для отношения доверия с поставщиком утверждений

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

Настройка этого правила в отношениях доверия с проверяющей стороной

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

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

Это правило создается с помощью языка правила утверждения или с помощью шаблона правила преобразования правила входящего утверждения в оснастке управления AD FS. Этот шаблон правила предоставляет следующие возможности настройки:

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

  • преобразование определенного типа входящего утверждения в указанный тип исходящего утверждения;

  • Передавать все значения требования

  • Замена значения входящего утверждения на значение другого исходящего утверждения

  • Заменять суффикс электронной почты входящих утверждений новым суффиксом электронной почты

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

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

Если исходящее утверждение должно состоять из содержимого нескольких входящих утверждений, необходимо использовать настраиваемое правило. Если значение исходящего утверждения должно строиться на значении входящего утверждения, но с дополнительным содержимым, в этом контексте также следует использовать настраиваемое правило. Дополнительные сведения см. в разделе When to Use a Custom Claim Rule.

Примеры создания синтаксиса правила преобразования

При использовании синтаксиса языка правил утверждений для преобразования утверждений можно задать в свойстве преобразованного утверждения новое литеральное значение. Например, следующее правило изменяет значение утверждений роли с "Администратор istrators" на "root" при сохранении того же типа утверждения:

c:[type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/role", value == "Administrators"]  => issue(type = c.type, value = "root");

Для преобразования утверждений также можно использовать регулярные выражения. Например, следующее правило будет задавать в утверждениях имени пользователя Windows в формате "домен\пользователь" домен FABRIKAM:

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] => issue(type = c.type, value = regexreplace(c.value, "(?<domain>[^\\]+)\\(?<user>.+)", "FABRIKAM\${user}"));

Рекомендации по созданию настраиваемых правил

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

Свойство утверждения Description
Type, Value, ValueType Эти свойства наиболее часто используются для назначения. Для итогового преобразованного утверждения должны быть заданы как минимум тип и значение.
Издатель Хотя язык правил утверждений позволяет настроить издателя утверждения, это обычно не рекомендуется. Издатель утверждения не сериализуется в токене. При получении токена издателя всех утверждений свойству Issuer всех утверждений присваивается идентификатор сервера федерации, подписавшего токен. Таким образом, настройка издателя утверждения в правилах не повлияет на содержимое токена, и эта настройка будет потеряна после упаковки утверждения в токене. Единственный сценарий, где настройка издателя утверждения имеет смысл, — когда задано конкретное значение в наборе правил поставщика утверждений и набор правил проверяющей стороны создается из правил, которые ссылаются на это конкретное значение. Если свойство Издателя не задано явным образом в качестве значения в правиле утверждений, подсистема выдачи утверждений задает для него значение LOCAL AUTHORITY.
OriginalIssuer Как и свойству Issuer, свойству OriginalIssuer значение обычно не назначается явно. В отличие от Issuer, свойство OriginalIssuer сериализуется в токене, но потребители токена ожидают, что если оно задано, то будет содержать идентификатор сервера федерации, изначально выдавшего утверждение.
Свойства Как описано в предыдущем разделе, контейнер свойств утверждения не сохраняется в токене, поэтому назначения свойств должны выполняться, только если последующие локальные политики будут ссылаться на данные, хранящиеся в свойстве.

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