2016-10-06 6 views
0

Gehen von code provided by Microsoft (ich nehme an), ich bin nicht in der Lage, meine Azure Active Directory abzufragen. Jedes Mal, wenn ich die folgenden Aufruf, erhalte ich eine Antwort von {Authorization Required.}:Zugriff erforderlich Antwort von Azure Active Directory

ActiveDirectoryClient client = AuthenticationHelper.GetActiveDirectoryClient(); 
IPagedCollection<IUser> pagedCollection = await client.Users.ExecuteAsync(); 

Ich bin neu in Azure Active Directory und ich bin neu in die Grafik und dachte, dass die zur Verfügung gestellten Proben funktionieren würden. Sie nicht und ich hoffe, dass jemand hier mir entweder sagen kann, was mit dem Code falsch ist oder wie gewähre ich mir selbst Autorisierung für mein eigenes Verzeichnis? Ich dachte der AccessKey wäre die Authentifizierungsmethode, aber anscheinend ist das nutzlos, da es in ihren Beispielen nicht verwendet wird.

Antwort

2

Um den von Azure AD geschützten REST aufzurufen, der OAuth2.0 zur Autorisierung der Anwendung von Drittanbietern unterstützt, müssen wir grundsätzlich ein Bearer-Token übergeben.

Und um durch das Codebeispiel zu gehen, stellen Sie bitte sicher, dass Sie die Schrittliste von README.md befolgt haben.

Hinweis: Es ist etwas nicht klar in der README.md über Config die Erlaubnis. Das Codebeispiel verwendet die Azure AD Graph anstelle von Microsoft Graph, müssen wir wählen Windows Azure Active Directory anstelle von Microsoft Graph. Und ich habe diese Ausgabe here melden.

Sie können sehen, dass es ein statischer abgelegt ist Token in Klasse AuthenticationHelper benannt, die den Wert festgelegt werden, wenn die Benutzer-Anmelde des Code in Startup.Auth.cs wie unter Verwendung :(nicht mit cert)

// Create a Client Credential Using an Application Key 
ClientCredential credential = new ClientCredential(clientId, appKey); 
string userObjectID = context.AuthenticationTicket.Identity.FindFirst(
    "http://schemas.microsoft.com/identity/claims/objectidentifier").Value; 

AuthenticationContext authContext = new AuthenticationContext(Authority, new NaiveSessionCache(userObjectID)); 
AuthenticationResult result = authContext.AcquireTokenByAuthorizationCode(
            code, new Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential, graphResourceId); 

AuthenticationHelper.token = result.AccessToken; 

Und hier sind die erzielten Fortschritte das Token über den OAuth 2.0-Code Zuschuss Fluss zu erwerben: enter image description here

Weitere Einzelheiten zu dieser Strömung Sie here bezieht.

Verwandte Themen