Когда следует использовать правило пропуска или фильтрации утверждений

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

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

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

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

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

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

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

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

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

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

пропуск всех значений утверждений;

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

Фильтрация утверждения

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

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

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

Например, как показано на следующем рисунке, если правило установлено с условием для фильтрации только входящих утверждений, которые имеют тип утверждения UPN и заканчиваются @fabrikam.com , все остальные входящие утверждения игнорируются, если они не соответствуют этому критерию. Сюда входит входящее утверждение с типом заявки адрес электронной почты, хотя его значение утверждения заканчивается на @fabrikam.com . В этом случае Nick@fabrikam.com проверяющей стороне отправляется только утверждение, содержащее значение.

when to use pass through

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

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

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

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

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

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

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

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

  • пропуск всех значений утверждений;

  • пропуск только конкретного значения утверждения;

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

  • Пропускать только значения утверждения, начинающиеся с указанного значения

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

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

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

Примеры создания синтаксиса правила пропуска или фильтрации

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

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"]  => issue(claim  = c);

Фильтры можно логически объединять с помощью оператора AND. Например, следующее правило примет все утверждения электронной почты со значением johndoe@fabrikam.com :

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value == "johndoe@fabrikam.com "]  => issue(claim  = c);

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

  • == — равно (с учетом регистра)

  • != — не равно (с учетом регистра)

  • =~ — соответствует регулярному выражению

  • !~ — не соответствует регулярному выражению

Например, следующее правило будет принимать все утверждения электронной почты, которые не были выданы сервером федерации и имеют суффикс boeing.com:

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value =~ "^.*@boeing\.com$" , issuer != "LOCAL AUTHORITY"]  => issue(claim  = c);

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

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

Свойство утверждения Описание
Тип Тип утверждения (обычно в виде URI) отражает неявное соглашение между партнерами в федерации о том, какого рода информация передается в утверждении. Например, утверждения типа http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress будут содержать адрес электронной почты пользователя.
Применение Значение требования. Например, утверждение типа http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress может иметь значение johndoe@fabrikam.com
ValueType Значение ValueType представляет способ интерпретации информации, содержащейся в значении утверждения. Обычно для ValueType будет задано http://www.w3.org/2001/XMLSchema#string значение, но значением утверждения может быть данные в кодировке Base64Binary (например, изображение) или Дата, логическое значение и т. д.
Издатель Издатель представляет сторону, ранее выдавшую утверждения о пользователе. Если утверждения получены на сервере федерации поставщика утверждений, то издателю всех заявок будет присвоено значение "локальный центр". Если утверждения были получены сервером федерации поставщика федерации, в качестве издателя утверждений будет установлен идентификатор поставщика утверждений, подписавшего токен. Таким образом, при обработке правил в утверждениях, полученных от поставщика утверждений, в качестве издателя всех утверждений будет установлено одно и то же значение. При создании правил для проверяющей стороны свойство Issuer (издатель) может использоваться, чтобы различать утверждения, исходящие от разных поставщиков утверждений.
OriginalIssuer Это свойство утверждения предназначено для передачи сведений о сервере федерации, изначально выдавшем утверждение. Поскольку в качестве свойства Issuer утверждений устанавливается последний сервер федерации, подписавший токен, сведения об исходном издателе полезны в сценариях, когда утверждение проходит через несколько серверов федерации (например, проверяющей стороне, которая получает токен от сервера федерации поставщика федерации, может быть нужно знать, какой конкретный сервер федерации поставщика утверждений выполнил проверку подлинности пользователя).
Свойства Помимо пяти свойств, описанных выше, каждое утверждение также имеет контейнер свойств, в котором могут храниться названные свойства. Эти свойства не сериализуются в токене и имеют смысл только для передачи сведений между компонентами конвейера выдачи утверждений в рамках области одного сервера федерации. Например, можно задать свойство во время обработки правил поставщика утверждений, а затем ссылаться на это свойство в правилах проверяющей стороны.