簡體   English   中英

使用我的AAD帳戶以外的ms真實帳戶時,Azure AD身份驗證失敗

[英]Azure AD authentication failing when using ms live accounts other than my AAD acount

我試圖從他們的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:來自身份提供者“ live.com”的用戶帳戶“ XXXX@outlook.com”在租戶“默認目錄”中不存在,並且無法訪問該租戶中的應用程序“ XXXXXXXXXXXXXXXXX”。 首先需要將該帳戶作為外部用戶添加到租戶中。 注銷並使用其他Azure Active Directory用戶帳戶再次登錄。

這是屏幕截圖:

在此處輸入圖片說明

這類似於這個問題 有人可以幫我嗎?

v1端點要求用戶是目錄中的成員。

您可能應該為此使用v2.0端點: https : //docs.microsoft.com/zh-cn/azure/active-directory/develop/active-directory-appmodel-v2-overview

如果只希望使用消費者MS帳戶登錄,則可以將授權URL指定為:

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

首先,為解決問題中的錯誤,您需要首先將真實帳戶添加到目錄中,然后嘗試使用Azure AD v2終結點進行身份驗證。 您無法使用不在該目錄中的外部帳戶登錄應用程序

我假設您希望任何Microsoft真實帳戶都可以使用您的應用程序。

基於此要求,建議您可以使用Azure AD B2C來實現此目的。 Azure AD B2C可以使您的應用程序使用任何Microsoft帳戶進行身份驗證。 您可以將Microsoft帳戶添加為社交身份提供者。 這樣,任何真實帳戶都可以通過Azure AD B2C進行注冊和登錄。

您可以在此官方文檔中查看有關使用Microsoft帳戶向消費者提供注冊和登錄的更多詳細信息。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM