Когда следует использовать правила преобразования утверждений
Это правило можно использовать в службы федерации Active Directory (AD FS) (AD FS), если необходимо сопоставить тип входящего утверждения с типом исходящего утверждения, а затем применить действие, которое определит, какие выходные данные должны происходить на основе значений, возникших в входном утверждении. При использовании этого правила вы пропускаете или преобразуете все утверждения, соответствующие следующей логике правила, на основе параметров, настроенных в правиле, как показано в следующей таблице.
Параметр правила | Логика правила |
---|---|
Пропуск всех входящих утверждений | Если входящее утверждение имеет указанный тип утверждения, а значение соответствует любому значению, то следует пропустить это утверждение с типом исходящего утверждения, равным указанному типу утверждения. |
Замена значения входящего утверждения на значение другого исходящего утверждения | Если входящее утверждение имеет указанный тип утверждения, а значение соответствует заданному значению утверждения, следует преобразовать утверждение, установив новое значение исходящего утверждения, соответствующее заданному значению утверждения, а тип исходящего утверждения соответствующим указанному типу утверждения |
Замена суффикса электронной почты входящих утверждений новым суффиксом электронной почты | Если входящее утверждение имеет указанный тип утверждения, а значение соответствует любому значению суффикса, следует преобразовать утверждение, установив новое значение исходящего утверждения, соответствующее заданному значению суффикса, а тип исходящего утверждения соответствующим указанному типу утверждения |
В следующих разделах содержатся основные сведения о правилах утверждений и предоставляются дополнительные сведения об использовании этого правила.
Общие сведения о правилах утверждения
Правило утверждения представляет экземпляр бизнес-логики, который предусматривает применение к входящему утверждению условия (если X, то Y) и создание исходящего утверждения на основе параметров условия. В следующем списке перечислены важные рекомендации в отношении правил утверждений, с которыми следует ознакомиться перед прочтением дальнейших сведений в этом разделе.
В оснастке управления AD FS правила утверждений можно создавать только с помощью шаблонов правил утверждений.
Правила утверждений обрабатывают входящие утверждения непосредственно от поставщика утверждений (например, Active Directory или другой службы федерации) или из выходных данных правил преобразования принятия для отношения доверия с поставщиком утверждений.
Правила утверждений обрабатываются подсистемой выдачи утверждений в хронологическом порядке в пределах заданного набора правил. Установив приоритет правил, можно дополнительно уточнить или отфильтровать утверждения, созданные предыдущими правилами в данном наборе правил.
Шаблоны правил утверждения всегда требуют указывать тип входящего утверждения. Тем не менее, можно обрабатывать несколько значений утверждений с одним типом утверждения, используя одно правило.
Дополнительные сведения о правилах утверждений и наборах правил утверждений см. в разделе "Роль правил утверждений". Дополнительные сведения о том, как обрабатываются правила, см. в разделе "Роль обработчика утверждений". Дополнительные сведения об обработке наборов правил утверждений см. в разделе "Роль конвейера утверждений".
Передавать все значения требования
При использовании этого действия все значения входящих утверждений, соответствующие указанному типу входящего утверждения, сопоставляются с указанным типом исходящего утверждения перед их отправкой в качестве исходящих утверждений в токены, подписанные вашей службой федерации.
Например, если правило установлено с вариантом логики Пропускать все значения утверждений, а также задан тип "Группа" для входящего утверждения и тип "Роль" для исходящего утверждения, то все значения входящих утверждений, поступающие от издателя, по отдельности копируются в новые исходящие утверждения с типом "Роль".
Преобразование утверждения
В AD FS преобразование утверждений означает заменить одно входящее значение утверждения другим исходящим значением утверждения. Эту функциональность обеспечивает правило преобразования входящего утверждения. В свойствах этого правила можно задать условия для замены входящих значений на значение другого исходящего утверждения на основе указанного типа входящего утверждения.
Например, как показано на следующем рисунке, когда устанавливается правило с условием замены входящего значения на значение другого исходящего утверждения, все входящие утверждения с типом "Группа" сопоставляются с новыми типами исходящих утверждений "Роль". В этом случае значение входящего утверждения "Покупатель" заменяется на новое значение исходящего утверждения "Администратор".
Это правило также можно использовать для применения условия, которое приведет к замене всех входящих утверждений с указанным значением суффикса электронной почты новым значением. Например, можно задать в этом правиле условие для изменения всех значений утверждений с суффиксом 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 сериализуется в токене, но потребители токена ожидают, что если оно задано, то будет содержать идентификатор сервера федерации, изначально выдавшего утверждение. |
Свойства | Как описано в предыдущем разделе, контейнер свойств утверждения не сохраняется в токене, поэтому назначения свойств должны выполняться, только если последующие локальные политики будут ссылаться на данные, хранящиеся в свойстве. |
Дополнительные сведения об использовании языка правил утверждений см. в разделе "Роль языка правил утверждений".