【问题标题】:Graph Connect sample not working for multi tenancy in .Net core MVC appGraph Connect 示例不适用于 .Net core MVC 应用程序中的多租户
【发布时间】:2019-09-13 06:22:23
【问题描述】:

我已按照此示例 (https://github.com/microsoftgraph/aspnetcore-connect-sample) 让我的 .net 核心 mvc 应用程序使用 azure AD 连接到图形并获取用户图片和工作详细信息。

它让我使用一个租户登录,并获得所需的一切,但是当我尝试使用另一个租户/域登录时,AcquireTokenByAuthorizationCode 返回错误。 在调试中运行时,看起来当我第一次使用第一封电子邮件登录时,它使用了正确的 OpenIdConnectOption Authority(https://login.microsoftonline.com/common/v2.0)。 然后当我尝试使用另一个域登录时,权限 URL 已更改为 https://login.microsoftonline.com/{tenantid_of_first_logger}/v2.0,因此返回错误。

我遵循的代码与示例中的代码完全相同,只是使用了我自己的 azure AD 和应用注册。 基本上我无法进行多租户。 有没有人尝试将这个示例作为多租户成功运行?我在 Azure AD 中的应用注册有什么需要做的吗(再次按照示例中的步骤进行设置。)

【问题讨论】:

    标签: asp.net-core-mvc microsoft-graph-api openid-connect azure-ad-graph-api


    【解决方案1】:

    common 的 OIDC 权限是正确的。一旦用户输入他们的电子邮件,就会使用正确的租户(家庭领域发现)。另一方面,代币获取必须始终来自特定租户,而不是“普通”。

    您关于“使用另一个域登录”的说法有点令人困惑。您是指代币获取电话吗?无论如何,错误消息对于确定具体原因至关重要。

    https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes

    【讨论】:

    • 当我使用来自不同租户的用户登录时遇到的错误是:AADSTS700005:提供的授权码旨在用于其他租户,因此被拒绝。看起来授权 URL 具有登录的第一个租户的租户 ID,因此当来自不同租户的第二个用户登录时,它在授权 URl 中使用该租户 ID,因此我猜是错误消息?
    【解决方案2】:

    使用this 示例了解 Azure AD 中的多租户方案

    如需深入了解,请查看multi-tenant 示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      相关资源
      最近更新 更多