从Azure Active Directory获取mailNicknames

时间:2016-12-28 11:02:55

标签: azure active-directory azure-active-directory azure-ad-graph-api

在此链接中:https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations有一个名为mailNickname的字段,用于为活动目录中的用户添加电子邮件别名。

我的组织使用此功能。因此,1个用户将拥有2个邮件ID(code@company.com和alias@company.com)

如何通过azure活动目录中的API获取用户的别名列表?

我们已经实施了一个单点登录的网络应用程序,上述问题导致同一个用户创建了两个不同的帐户,两者都没有连接。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您正在将用户别名与用户电子邮件地址列表混合在一起。电子邮件别名是识别用户邮箱的唯一值,它通常不是电子邮件的必要组成部分。它是用户使用POP或IMAP访问其邮箱时使用的名称。

您称之为别名的电子邮件地址是proyAddresses中存储的电子邮件地址集合:https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/entity-and-complex-type-reference#user-entity

您不应将电子邮件用作标识用户的属性,而应使用userPrincipalName(UPN),因为这是用于标识用户的值。 UPN通常与电子邮件相同,但同样 - 它不一定是。

用户UPN但也可能会更改。它可以做到这一点并且它发生了,所以如果你想在某个地方存储这些信息,而不是UPN获得用户的 objectId 并存储它。

如果要实施基于Azure AD的SSO,则应使用类似ADAL.NET的库 - 它正在为您处理所有这些操作:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-libraries