ADFS:将用户经理的电子邮件地址作为声明发送

时间:2019-05-31 23:46:30

标签: adfs windows-server

我将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 :(得分:0)

以下规则说明了如何发布邮件属性作为“ 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 ,并且您的测试用户确实指定了一些电子邮件。