2017-12-01 3 views
0

Ich versuche, Benutzerdaten von ihrem Microsoft Live-Konto zu lesen. Ich habe, wie unten geschrieben Code:Azure AD-Authentifizierung fehlgeschlagen, wenn MS Live-Konten anders als mein AAD-Konto verwendet werden

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 
    } 

mein Code funktioniert gut, wenn ich meine AAD-Anmeldeinformationen verwendet, aber wenn ich mein persönliches Konto verwendet wird, werden folgende Fehler geben.

AADSTS50020: Benutzerkonto ‚[email protected]‘ von Identitätsanbieter ‚live.com‘ existiert nicht in Mieter Standardverzeichnis 'und kann nicht Zugriff auf die Anwendung ‚XXXXXXXXXXXXXXXXX‘ in diesen Mietern. Das Konto muss zuerst als externer Benutzer in den Mandanten hinzugefügt werden. Melden Sie sich ab und erneut mit einem anderen Active Directory-Benutzerkonto Azure Active an. Hier

ist der Screenshot:

enter image description here

Es ist ähnlich wie this question. Könnte mir jemand helfen?

+0

Haben Sie den persönlichen Mehr Live-Konto in Ihrem azurblauen aktiven Verzeichnis? –

+0

überprüfen Sie diesen Link aus - https://StackOverflow.com/Questions/37255819/azure-native-Application-Common-Authentication – MethodMan

+0

@Wayne Yang, kein Konto der azurblauen Anzeige hinzugefügt. Ich möchte, dass meine App für jedes Live-Konto funktioniert. –

Antwort

1

Zuerst müssen Sie für die Fehlerbehandlung in Ihrer Frage zuerst das Live-Konto in Ihr Verzeichnis einfügen und dann versuchen, den Azure AD v2-Endpunkt zur Authentifizierung zu verwenden. Sie können die App nicht mit dem externen Konto anmelden, das sich nicht in diesem Verzeichnis befand.

Ich nehme an, dass Sie möchten, dass Microsoft Live-Konto Ihre App verwenden kann.

Basierend auf dieser Anforderung, schlage ich vor, Sie können Azure AD B2C verwenden, um dies zu erreichen. Mit Azure AD B2C können Sie Ihre Anwendung mit jedem Microsoft-Konto authentifizieren. Sie können Microsoft Account als Anbieter sozialer Identität hinzufügen. So können sich alle Live-Accounts anmelden und Ihre App über Azure AD B2C anmelden.

Sie können weitere Details zum Bereitstellen von Sign-up und Anmelden bei Verbrauchern mit Microsoft-Konten in this official document sehen.

Hoffe, das hilft.

+0

Obwohl Sie MS Graph API nicht verwenden können, um Informationen über Benutzer zu erhalten, wenn Sie B2C richtig verwenden? Das klingt wirklich nach dem optimalen Szenario für den Endpoint v2.0 + consumer. – juunas

+0

Hallo, @ Jununas, Richtig, ich stimme auch mit Ihrer Meinung überein. –

Verwandte Themen