ADFS: отправить адрес электронной почты менеджера пользователя в качестве претензии - PullRequest
2 голосов
/ 01 июня 2019

Я интегрировал SSO с ADFS, и мне нужно получить адрес электронной почты менеджера, который в данный момент входит в систему. Когда я отправляю через атрибут manager, используя:

query = ";manager;{0}"

Я получаю только имя менеджера и организацию.

Я пытался следовать этой статье: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff678048(v=ws.10)

Однако правила, приведенные в примере, приводят к синтаксической ошибке.

и пробовал различные методы из потоков, такие как: https://social.msdn.microsoft.com/Forums/expression/en-US/903e217b-a441-41d6-9400-661644820500/extract-manager-email-address?forum=Geneva

Я думаю, мне нужно как-то запросить менеджера, используя его имя, но у меня возникли проблемы с поиском решения. Я понимаю, что мне, вероятно, нужно несколько правил. Кто-нибудь может пролить свет на эту проблему? Спасибо

1 Ответ

0 голосов
/ 04 июня 2019

Следующее правило иллюстрирует, как вы можете выдать почтовый атрибут как утверждение «ManagerEmail»:

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
&& c1:[Type == "http://schemas.xmlsoap.org/claims/ManagerDistinguishedName"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/claims/ManagerEmail"), query = "(&(distinguishedName={0})(objectClass=user));mail;{1}", param = c1.Value, 
param = regexreplace(c1.Value, ".*DC=(?<domain>.+),DC=corp,DC=yourdomain,DC=com", "${domain}\username"));

Убедитесь, что менеджер пользователя находится в том же домене, что и пользователь, т. Е. corp.yourdomain.com в приведенном выше примере, и у вашего тестового пользователя определенная электронная почта указана.

...