2017-08-10 4 views
2

Ich versuche meine API mit Dynamics 365 crm zu verbinden. Wenn ich das Token mit Postboten bekomme, kann ich darauf zugreifen, aber wenn ich es mit ADAL erhalte, gibt die Anfrage 401 nicht autorisiert zurück. Wenn ich den Token mit Postbote auf meiner App hartcodiere, funktioniert es gut. ich sah, dass Postbote liefert mir Informationen, dass ADALnot (wie refresh_token, token_id)ADAL Authentication Token verschieden von Postman Token Oauth2

Get token with postman

Lassen Sie sich mit ADAL Token

string resource = "https://******.crm2.dynamics.com/"; 
string clientId = "**************"; 
string clientSecret = "************"; 
string authority = "https://login.microsoftonline.com/*****/oauth2/authorize"; 

ClientCredential credential = new ClientCredential(clientId, clientSecret); 
AuthenticationContext authContext = new AuthenticationContext(authority, true); 
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, credential); 

Antwort

0

Mit Postbote Sie erwerben Token OAuth 2.0 authorization code flow verwenden. Azure AD gibt bei einer erfolgreichen Antwort ein Zugriffstoken, ein Aktualisierungstoken und ein ID-Token zurück.

Mit ADAL authContext.AcquireTokenAsync(resource, credential); Funktion erwerben Sie Token mit client credentials flow. Mit diesem Ablauf zeigt die Anwendung ihre Clientanmeldeinformationen dem ausstellenden OAuth2-Token an und erhält im Gegenzug ein Zugriffstoken, das die Anwendung selbst ohne Benutzerinformationen darstellt. Daher erhalten Sie das id_token nicht, da keine Benutzerinformationen vorhanden sind. Darüber hinaus muss die Anwendung kein Aktualisierungstoken abrufen. Wenn das Zugriffstoken abläuft, wird einfach zum ausstellenden OAuth2-Token zurückgekehrt, um einen neuen zu erhalten.

Sie könnten Token mit Autorisierungscode-Fluss mit ADAL erwerben, klicken Sie bitte auf here für Codebeispiel.