Возможно ли объединение строк правил требований ADFS?

Я новичок в правилах утверждений adfs, но мне удалось настроить нормальное сопоставление. Теперь мой клиент попросил меня добавить 4 статических буквы, например "1234", перед входящим атрибутом LDAP. Например, добавьте "1234" перед атрибутом "Адреса электронной почты". Я прочитал о синтаксисе языка правил утверждений, но не смог найти функцию добавления.

1 ответ

Решение

Примеры правил ниже.

@RuleName = "add temp claim email to pipeline as a var for processing"
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
 => add(store = "Active Directory", types = ("http://temp.org/emailaddress"), query = ";mail;{0}", param = c.Value);

@RuleName = "massage var to issue real email claim"
c:[Type == "http://temp.org/emailaddress"]
 => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", Value = "1234" + c.Value);

Это приведет к выдаче электронного письма со значением 1234john@contoso.com, если атрибут почты AD имеет значение атрибута john@contoso.com.

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

Затем создайте проверяющую сторону Claimsxray согласно https://adfshelp.microsoft.com/ClaimsXray/TokenRequest и проверьте свои правила. Когда у вас есть набор правил, которые работают, вы можете использовать их на реальной предполагаемой проверяющей стороне.

Другие вопросы по тегам