Ich habe eine Multitenant-App unter registriert, da die Eingabeaufforderung "Administratorzustimmung" in den Azure AD-Apps nicht verfügbar war. Die Zustimmung unserer Administratoren ist erforderlich, damit unsere App Informationen über Nutzer und deren Kalender abrufen kann.Microsoft Graph-API - Zugriffstoken kann nicht aktualisiert werden
Ich kann von einem völlig anderen Mandanten als dem, von dem diese App registriert ist, Admin-Zustimmung geben und das bereitgestellte Zugriffstoken verwenden, um alle notwendigen Informationen abzurufen, die jedoch offensichtlich nach einer Stunde ablaufen und wir Offlinezugriff benötigen.
Ich habe versucht, die mandentId anstelle von "common" im https://login.windows.net/common/oauth2/token
Endpunkt, aber die gleiche Nachricht wie unten erhalten.
folgenden werden die Daten in json Format zu dem Token-Endpunkt übermittelt worden ist (im Knoten umgewandelt codierten Format zu bilden, vor der Unterbreitung):
{ grant_type: 'refresh_token', client_id: 'e5c0d59d-b2c8-4916-99ac-3c06d942b3e3', client_secret: '(redacted)', refresh_token: '(redacted)', scope: 'openid offline_access calendars.read user.read.all' }
Beim Versuch, das Zugriffstoken aufzufrischen I eine Empfangs Fehler:
{ "error":"invalid_grant", "error_description":"AADSTS65001: The user or administrator has not consented to use the application with ID 'e5c0d59d-b2c8-4916-99ac-3c06d942b3e3'. Send an interactive authorization request for this user and resource.\r\nTrace ID: 2bffaa08-8c56-4872-8f9c-985417402e00\r\nCorrelation ID: c7653601-bf96-46c3-b1ff-4857fb25b7dc\r\nTimestamp: 2017-03-22 02:17:13Z", "error_codes":[65001], "timestamp":"2017-03-22 02:17:13Z", "trace_id":"2bffaa08-8c56-4872-8f9c-985417402e00", "correlation_id":"c7653601-bf96-46c3-b1ff-4857fb25b7dc" }
Dieser Fehler tritt auf, auch wenn die Standard Zustimmung verwendet wird. Ich habe auch versucht, die Node-Adal-Bibliothek anstelle von Raw HTTP-Anfragen, die genau das gleiche Ergebnis erzeugt.
Ich stelle fest, dass "offline_access" keine Erlaubnis ist, die ich innerhalb des MS Apps-Portals einstellen kann, aber ich denke, die Tatsache, dass ich ein Refresh-Token zurückbekomme bedeutet, dass ich das Access Token aktualisieren kann? Folgendes ist der Knoten-adal Code, den ich verwendet, um zu sehen, ob ich etwas falsch zu machen war
Für die Aufzeichnung:
var self = this;
var authenticationContext = new AuthenticationContext('https://login.windows.net/common');
authenticationContext.acquireTokenWithRefreshToken(
self.refreshToken,
self.clientId,
self.clientSecret,
'https://graph.microsoft.com/',
function(a) {
console.log(a);
}
);
Jede Hilfe in immer diese Auffrischverfahrens Arbeits wird geschätzt!
Hallo Fei, danke für die Antwort. Ich habe dies mit zwei völlig separaten Mandanten mit dem gleichen Ergebnis wie der erste Post versucht. Wir verwenden keine "externen Nutzer" wie in Ihrem Beitrag erwähnt. Mein Prozess: 1. Registrieren Sie die App von MS-Portal als Benutzer1 in Mandant1 2. Ausführen des OAuth2-Zustimmungsprozesses für Benutzer2 in Tenant2 3. Empfangstoken und Aktualisierungstoken für Tenant2.Das Zugriffs-Token funktioniert während der 60 Minuten vor dem Ablauf für den Mandanten2. 4. Versuch, das Zugriffstoken für tenant2 mit dem angegebenen Aktualisierungstoken zu aktualisieren und die im ursprünglichen Post beschriebene Fehlermeldung zu erhalten. – laurieodgers
Um dies weiter oben zu erklären, haben sich diese zwei Mieter von dem Mieter unterschieden, der die App registriert hat. – laurieodgers
Ich kann dieses Problem immer noch nicht reproduzieren. Auf der Grundlage des ursprünglichen Posts scheint der Token-Endpunkt nicht korrekt zu sein. Da Sie die App über das Portal https://apps.dev.microsoft.com registrieren, müssen wir den Azure AD V2.0-Endpunkt verwenden. Weitere Informationen finden Sie in [v2.0-Protokolle - OAuth 2.0-Autorisierungscode-Fluss] (https://docs.microsoft.com/de-de/azure/active-directory/develop/active-directory-v2-protocols-oauth-code# refresh-the-access-token) über die Detailanfrage. Bitte lassen Sie mich wissen, wenn es hilft. –