Ich implementiere Oauth 2-Authentifizierung für Office 365-Konto in einer Java-basierten serverseitigen Anwendung. Nach dem Lesen der Dokumentation habe ich folgende Dinge getan:Token in Office 365 Oauth2-Authentifizierung abrufen
- Ich habe Office 365-Abonnement.
- Ich habe eine App in Azure erstellt Actve-Verzeichnis, das zur Authentifizierung von Web-App mit Office 365-Konto erforderlich ist.
- Ich habe Client-ID und geheim. Ich habe auch alle Berechtigungen für die Azure App gegeben. mit der URL
- Ich Autorisierungscode suche nach:
https://login.microsoftonline.com/common/oauth2/authorize?client_id= {client_id} & response_type = Code & redirect_uri = {redirect url} & response_mode = Abfrage
Als Reaktion dieser Ich erhalte den Autorisierungscode wie erwartet:
http://localhost:8080?code={authorication code}&session_state=259479e4-84aa-42ea-91e9-9e919cc99587
Jetzt muss ich Token mit dem Benutzernamen (Benutzer-ID, aus der der Benutzer in angemeldet ist) abrufen, da ich den Benutzernamen für die weitere Verarbeitung benötigen. Dazu verwende ich die hier beschriebene Methode:
https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/
dass eine POST-Anfrage wie folgt verwendet:
POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=2d4d11a2-f814-46a7-890a-274a72a7309e
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrqqf_ZT_p5uEAEJJ_nZ3UmphWygRNy2C3jJ239gV_DBnZ2syeg95Ki-374WHUP-i3yIhv5i-7KU2CEoPXwURQp6IVYMw-DjAOzn7C3JCu5wpngXmbZKtJdWmiBzHpcO2aICJPu1KvJrDLDP20chJBXzVYJtkfjviLNNW7l7Y3ydcHDsBRKZc3GuMQanmcghXPyoDg41g8XbwPudVh7uCmUponBQpIhbuffFP_tbV8SNzsPoFz9CLpBCZagJVXeqWoYMPe2dSsPiLO9Alf_YIe5zpi-zY4C3aLw5g9at35eZTfNd0gBRpR5ojkMIcZZ6IgAA
&redirect_uri=https%3A%2F%2Flocalhost%2Fmyapp%2F
&resource=https%3A%2F%2Fservice.contoso.com%2F
&[email protected]
Jetzt ist das Problem, dass, wann immer ich sende Diese Post Anfrage, bekomme ich immer Fehler mit Fehlercode einige Male 400 oder 402 usw. Ich auch Benutzer POST Mann in Chrom, um die Antwort des Anrufs zu überprüfen. Es Rückkehr immer Fehler wie folgt aus:
{
"error": "invalid_grant",
"error_description": "AADSTS65001: The user or administrator has not consented to use the application with ID. Send an interactive authorization request for this user and resource.\r\nTrace ID: b834315e-ccb3-4533-b7c9-4af7b34054b9\r\nCorrelation ID: 784f18da-5479-4b69-b939-0067abfcc460\r\nTimestamp: 2016-08-02 07:28:22Z",
"error_codes": [
65001
],
"timestamp": "2016-08-02 07:28:22Z",
"trace_id": "b834315e-ccb3-4533-b7c9-4af7b34054b9",
"correlation_id": "784f18da-5479-4b69-b939-0067abfcc460"
}
(Anmerkung: Ich habe alle Anwendungen registriert mit Administrator-Login) ich viel versucht haben, um herauszufinden, was falsch ist hier los ist. Ich habe mehrere Apps in Azure Active Directory hinzugefügt, bekomme aber immer ähnliche Antworten.
Ich fordere Fachleute auf, mir zu helfen. . . ! Eigentlich möchte ich zulassen, dass Benutzer auf eine Schaltfläche im Office 365-Web-Add-In klicken und die oauth2-Authentifizierung verwenden, um sich bei unserem System anzumelden. Es wird toll sein, wenn jemand mir ein gutes Tutorial vorschlägt, um dies erfolgreich umzusetzen.