ADFS - Ошибка авторизации авторизации выпуска

В нашей системе у нас есть пользователи, зарегистрированные из разных доменов (скажем, их почтовый адрес: @gmail.com, @outlook.com, @yahoo.com). У меня есть требование ограничить доступ пользователей к RP на основе домена, из которого он поступает. Для этой настройки я попытался настроить правило авторизации эмиссии в ADFS (разрешить пользователям только из определенного домена) с приведенным ниже правилом

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", Value =~ "gmail.com$"]
 => issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");

Я передал заявку на адрес электронной почты через вкладку правила авторизации выдачи, поэтому я не инициализировал ввод в наборе правил авторизации, как указано в ссылке на технологию (в разделе " Отправка вывода выполнения в секцию конвейера претензий")

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

Но разрешение, похоже, не работает.

1 ответ

Требования, настроенные на первой вкладке (правила преобразования выпуска), не передаются на вторую вкладку (правила авторизации выдачи).

Поэтому нам нужно снова повторить процесс во второй вкладке (адрес электронной почты адрес электронной почты → адрес электронной почты), как показано ниже.

Теперь пользовательское правило работает отлично.

Если вам нужно добавить еще несколько доменов электронной почты в критерии приема, просто используйте "|" символ:

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", Value =~ "yahoo.com$|gmail.com$"]
=> issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");

licensed under cc by-sa 3.0 with attribution.