【问题标题】:Azure AD How to get the Tenant Id from the user when he authenticated to our applicationAzure AD 如何在用户对我们的应用程序进行身份验证时从用户那里获取租户 ID
【发布时间】:2017-12-06 14:00:56
【问题描述】:

我使用 OAuth2 创建了一个带有 Azure Active Directory 身份验证的 Asp.net 应用程序,并按预期工作。

现在,当用户登录到我的应用程序时,我正在获取用户数据,例如 用户电子邮件 ID 和提供商密钥

现在的要求是,我需要从响应中获取用户租户 ID。

是否有机会从响应中获取用户租户 ID?

这里我使用 GetExternalLoginInfoAsync() 来获取经过身份验证的用户数据。

  private IAuthenticationManager AuthenticationManager
    {
        get
        {
            return HttpContext.GetOwinContext().Authentication;
        }
    }
   var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

感谢您的帮助。

【问题讨论】:

  • 请分享代码。通常租户 ID 应该在结果对象中可用。
  • 感谢您的快速回复,因为我已经分享了我的代码 sn-p。你能调查一下吗?

标签: c# asp.net-mvc entity-framework azure


【解决方案1】:

现在的要求是,我需要从响应中获取用户租户 ID。

loginInfo.Login.LoginProvider 如下所示:

https://sts.windows.net/{tenant-Id}/

或者您可以通过以下代码 sn-p 检索租户 ID:

var tenantId = loginInfo.ExternalIdentity.FindFirst(c => c.Type == "http://schemas.microsoft.com/identity/claims/tenantid").Value;

并确保您的应用程序应具有以下权限: 1) 读取目录数据 2) 阅读所有用户的完整资料 3) 登录并阅读用户资料

【讨论】:

    猜你喜欢
    • 2017-04-23
    • 2023-02-09
    • 1970-01-01
    • 2020-08-26
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    相关资源
    最近更新 更多