0

Ich versuche, OAuth 2.0 Authorization Code Flow in einer Multi-Tenant-Anwendung zu implementieren.Zugriffstoken von OAuth 2.0 nicht erhalten. Berechtigungscode-Ablauf

Ich bat erste Genehmigung für "openid Profil E-Mail" Umfang bei login.microsoftonline.com/organizations/oauth2/v2.0/authorize und verwenden dann den Code, den ich mit grant_type=authorization_code erhalten entlang, CLIENT_ID, client_secret, redirect_uri für einen Zugriffstoken an login.microsoftonline.com/organizations/oauth2/v2.0/token

Die Antwort, die ich bekam, enthielt nur id_token und token_type=Bearer. Warum habe ich die Felder access_token und expired_at nicht erhalten?

Ich versuchte, den Bereich erneut beim Token-Aufruf bereitzustellen, aber die Antwort kam wieder dasselbe. Die spec besagt, dass es das Zugriffstoken enthalten sollte. Ich habe auch versucht,/gemeinsame Endpunkte, aber die Dinge sind die gleichen.

+0

Das Bearer-Token ist das Zugriffstoken. – BenV

Antwort

1

Sie verwenden den Azure AD v2.0-Endpunkt. Sie können dies an der Tatsache erkennen, dass Ihre URL v2.0 enthält.

Wenn Sie im v2.0-Endpunkt nur nach Bereichen fragen, die im id_token enthalten sind (z. B. openid-Profil-E-Mail) und nicht nach anderen Bereichen fragen (d. H. https://outlook.office.com/contacts.read), erhalten Sie nur ein id_token zurück. Das liegt daran, dass Sie Azure AD im Grunde sagen, dass Sie nur Profilinformationen haben möchten und nicht mit einer API kommunizieren. Daher benötigen Sie kein Zugriffstoken.

Auf der anderen Seite, wenn Sie einen Bereich für eine API (d. H. https://outlook.office.com/contacts.read) enthalten, erhalten Sie einen access_code zurück.

+0

Ich wollte auf die Discovery-API und die Dropbox für die Business-API zugreifen, scheint aber im v2.0-Endpunkt von https://azure.microsoft.com/en-us/documentation/articles/active-directory-v2 nicht unterstützt zu werden -limitations/Sieht so aus, als müsste ich stattdessen den v1.0-Endpunkt verwenden. – bugzpodder

Verwandte Themen