Microsoft Graph Azure AD用户不同步

时间:2017-08-05 16:08:13

标签: azure-active-directory microsoft-graph

当我使用我的Microsoft帐户登录Microsoft Graph Explorer并运行以下查询https://graph.microsoft.com/v1.0/users/时,我会返回正确的用户。

在Azure AD上(使用相同的登录名)我使用密钥创建了一个应用程序,当我使用带有资源https://graph.microsoft.com标记的Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredentials通过c#登录并运行时查询我得到一个完全不同的用户。他们不同步,我很困惑。

有什么想法吗?我是否应该创建一个新的Azure帐户,因为我从第1天开始拥有Azure帐户,而我现在只是为了测试客户端请求。

1 个答案:

答案 0 :(得分:0)

不要创建新的Azure帐户。使用Graph Explorer时,是否使用Azure AD租户中的用户登录?如果没有,Graph Explorer将默认使用演示租户进行查询。

另外(如果您有多个租户),您需要确保选择正确的租户作为令牌获取的一部分(来自https://login.microsoftonline.com/{tenantId | tenantDomain}。如果您希望结果在Graph Explorer和您的之间匹配app,已登录用户所属的租户(对于Graph Explorer案例),您的应用使用的租户需要相同。

根据以下评论进行更新:

我想我知道这里发生了什么。在图表浏览器中,您使用个人帐户登录 - 它会显示该个人帐户的个人资料数据,包括Microsoft帐户系统中此帐户的唯一ID。在这种情况下,您根本不会登录Azure AD租户。 Microsoft Graph支持从个人和商业帐户进行访问。

现在,另外,我猜你注册Azure订阅时,你使用了这个个人帐户。执行此操作时,它会创建Azure AD租户,并在该租户中创建一个来宾用户(链接到)您的个人帐户 - 此帐户也配置为管理员帐户。此机制允许您使用个人帐户(由Microsoft帐户系统进行身份验证)登录Azure AD租户,因为个人帐户会映射到租户中的此来宾用户。在您的应用程序中,您将获得Azure AD租户的应用程序令牌。当您向用户查询租户时,您没有看到任何具有与图浏览器相同的ID或电子邮件地址的用户。但是,如果您实际查看userPrincipalName,您将看到它应该是您个人帐户的原始电子邮件地址的错误形式。这表示租户中的此Azure AD用户帐户是访客/外部用户(类似于外部委托人)。

希望这有帮助,