我们有一个应用程序,我们以[{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
的用户登录名?
答案 0 :(得分:3)
使用图表的beta
版本,您可以从onPremisesDomainName
和onPremisesSamAccountName
媒体资源中获取用户的域名和用户名:
/beta/users?$select=userPrincipalName,onPremisesDomainName,onPremisesSamAccountName
域名存储为FQDN,因此您需要进行一些翻译。例如,domainName.ad.contoso.com
可能会转换为domainName\
)。
这将为您提供一种解决方法,以便您可以将用户与内部数据库进行匹配。然而,这只是一个临时解决方案。从长远来看,确实希望迁移到使用userPrincipalName
。这是主要用户标识符,并保证在给定租户中是唯一的。
Azure AD与旧版Active Directory略有不同。传统AD中的某些概念(如组织单位(OU),组策略对象(GPO),Kerberos身份验证,轻量级目录访问协议(LDAP),多个域之间的域信任以及其他几个概念在云中不存在)。