从microsoft graph获取domain \ username

时间:2018-03-22 13:29:57

标签: azure-active-directory microsoft-graph

我们有一个应用程序,我们以[{1}}格式存储用户登录名。我们通过Windows进行身份验证,然后通过匹配我们从用户获得的domain\username到我们的数据库,从我们的数据库中获取更多信息。

现在他们想要迁移到云端。我们通过Azure AD中的应用对用户进行身份验证。但是,我们获取的domain\username标识符为user

我已经摆弄了first.last@domain.com和select命令,试图让“老”'名称。 Howev,呃我还没​​有发现如何得到它。

他们迁移到云端的原因是他们正在合并两个广告。因此,一些用户将是DomainA和一些DomainB,但在同一个租户中。所以我的第一个想法是尝试将邮件转换为其他格式。但是,这两种不同的AD具有不同的命名标准。一个有https://graph.microsoft.com/v1.0/users/email(名字中的两个首字母和姓氏的两个首字母),另一个有DOMAINA\fila。尝试以这种方式解决它也感到非常难看。

是否可以通过Microsoft Graph获取格式为DOMAINB\firlas的用户登录名?

1 个答案:

答案 0 :(得分:3)

使用图表的beta版本,您可以从onPremisesDomainNameonPremisesSamAccountName媒体资源中获取用户的域名和用户名:

/beta/users?$select=userPrincipalName,onPremisesDomainName,onPremisesSamAccountName

域名存储为FQDN,因此您需要进行一些翻译。例如,domainName.ad.contoso.com可能会转换为domainName\)。

这将为您提供一种解决方法,以便您可以将用户与内部数据库进行匹配。然而,这只是一个临时解决方案。从长远来看,确实希望迁移到使用userPrincipalName。这是主要用户标识符,并保证在给定租户中是唯一的。

Azure AD与旧版Active Directory略有不同。传统AD中的某些概念(如组织单位(OU),组策略对象(GPO),Kerberos身份验证,轻量级目录访问协议(LDAP),多个域之间的域信任以及其他几个概念在云中不存在)。