【问题标题】:Azure AD authentication failing when using ms live accounts other than my AAD acount使用我的 AD 帐户以外的 ms 实时帐户时 Azure AD 身份验证失败
【发布时间】:2017-12-01 06:08:17
【问题描述】:

我试图从他们的 Microsoft 真实帐户中读取用户数据。我写的代码如下:

    public void GetUserData(){
        var authContext = new AuthenticationContext("https://login.microsoftonline.com/common/");
        var result = _authenticationContext
                .AcquireTokenAsync("https://graph.microsoft.com", "<my client/app ID>", "<redirect URI>", new PlatformParameters(PromptBehavior.RefreshSession))
                .Result;    
        var accessToken = result.AccessToken;

        var httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",accessToken);
        var userResponse = httpClient.GetStringAsync("https://graph.microsoft.com/beta/me/").Result;

        //DO SOMTHING WITH DATA
    }

当我使用我的 AAD 凭据时,我的代码工作正常,但是当我使用我的个人帐户时,它给出了以下错误。

AADSTS50020:来自身份提供商的用户帐户“XXXX@outlook.com” 租户“默认目录”中不存在“live.com”并且不能 访问其中的应用程序“XXXXXXXXXXXXXXXXX” 租户。该帐户需要添加为外部用户 租户优先。注销并使用不同的 Azure Active 重新登录 目录用户帐户。

截图如下:

类似于this question。有人可以帮帮我吗?

【问题讨论】:

标签: c# azure azure-active-directory microsoft-graph-api


【解决方案1】:

v1 端点要求用户是目录中的成员。

您可能应该为此使用 v2.0 端点:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-appmodel-v2-overview

如果您希望只有消费者 MS 帐户登录,您可以将授权 URL 指定为:

https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize

【讨论】:

    【解决方案2】:

    首先,对于您问题中的错误消息,您需要先将实时帐户添加到您的目录中,然后尝试使用 Azure AD v2 端点进行身份验证。 您不能使用不在该目录中的外部帐户登录应用

    我假设您希望任何 Microsoft 真实帐户都可以使用您的应用。

    基于这个需求,我建议你可以使用Azure AD B2C来实现。 Azure AD B2C 可以让您的应用程序使用任何 Microsoft 帐户进行身份验证。您可以将 Microsoft 帐户添加为社交身份提供者。这样任何真实帐户都可以通过 Azure AD B2C 注册和登录您的应用程序。

    您可以查看有关使用 Microsoft 帐户 in this official document 向消费者提供注册和登录的更多详细信息。

    希望这会有所帮助。

    【讨论】:

    • 虽然您在使用 B2C 时不能使用 MS Graph API 来获取用户信息,对吧?这听起来确实像是 v2.0 + 消费者端点的最佳方案。
    • 嗨,@jununas,对,我也同意你的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多