Пользовательское правило утверждения в ADFS - PullRequest
0 голосов
/ 17 мая 2018

В нашей ADFS есть правило для подачи заявки на отправку адреса электронной почты пользователя в виде NameID: -

c: [Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"] => проблема (Тип = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Эмитент = c.Issuer, OriginalIssuer = c.OriginalIssuer, Значение = c.Value, ValueType = c.ValueType, Свойства [" http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn: оазис: имена: TC: SAML: 1,1: NameID формат: EMAILADDRESS ");

но мы должны иметь возможность проверить адрес электронной почты, который мы прочитали из AD, перед отправкой этой информации, и если домен SMTP является внешним доменом SMTP, например @ Microsoft.com, нам нужно изменить значение, которое мы отправляем на быть UPN пользователя, а не электронная почта этого пользователя.

Это вообще возможно?

1 Ответ

0 голосов
/ 17 мая 2018

Не полный ответ, но методология будет следующей

  • Сначала сгенерируйте временную претензию с «добавлением» (вместо «выдачи»), проверив через RegExMatch.
  • Далее используйте директиву EXISTS, чтобы проверить наличие вышеуказанного временного типа заявки с предложением '&&' адреса электронной почты, и выполните эту проблему, как описано выше для nameID
  • Далее используйте директиву NOT EXISTS, чтобы проверить указанный выше тип заявки временного типа и '&&' с типом заявки UPN и выдать имя участника-пользователя в качестве nameID

Это предполагает, что у вас есть оба типа утверждений во входном рабочем наборе. Вот почему вам нужна директива '&&'. Если нет, то более простой подход заключается в непосредственном чтении Active Directory для решения проблемы. Вам не понадобится '&&' в этом случае.

https://social.technet.microsoft.com/wiki/contents/articles/4792.understanding-claim-rule-language-in-ad-fs-2-0-higher.aspx - отличная статья для более сложных преобразований с использованием языка правил утверждений.

Спасибо // Сэм (@MrADFS)

...