0

Wir haben eine Webapplikation, die openid connect mit azure als Identityprovider verwendet, um Benutzer anzumelden. So dass die Nutzer, wenn sie auf eine URL in ist die Unterzeichnung wie gesendet:admin_consent für openid connect und dynamische Bereiche

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?response_type=id_token+token&client_id=3{clientId}&response_mode=form_post&redirect_uri=http://localhost:8765/ms/oidc/signon/response&scope=openid+profile+https://graph.microsoft.com/user.read&state=1234&nonce={nonce} 

dies funktioniert gut, aber verlangt von den Nutzern unserer Anwendungen zustimmen Erlaubnis Tive das erste Mal, wenn sie es verwenden.

Wir möchten Office365 bieten Administratoren die Möglichkeit, im Namen ihrer gesamten Mieter einverstanden sind, so schicken wir sie an einen Endpunkt wie:

https://login.microsoftonline.com/common/adminconsent?client_id={clientId}&state=12345&redirect_uri=http://localhost:8765 

dies scheint auch gut zu funktionieren, und das Admin-i informiert, dass sie im Namen aller Nutzer in ihrem Mieter zustimmen werden. Dem Benutzer wird jedoch immer noch die Einverständniserklärung bei der ersten Anmeldung angezeigt. Dies macht Sinn, da die App nur mit der Erlaubnis user.read registriert ist, so dass, wenn wir stattdessen gesendet Typ festgelegt, um den Benutzer zu

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?response_type=token&client_id={clientId}&response_mode=form_post&redirect_uri=http://localhost:8765/ms/oidc/signon/response&scope=https://graph.microsoft.com/user.read&state={state}&nonce={nonce} 

ohne die dynamische Berechtigungsanfrage und Antwort nur, das Admin-Token Zustimmung funktioniert, und Benutzer werden nicht mit der Zustimmungsaufforderung dargestellt. Also, ich denke, ich habe 2 Fragen:

1) ist das, wie es funktionieren soll, oder gibt es eine Möglichkeit, Admin-Zustimmung zu den Profil und Openid Bereichen?

2) Fehle ich eigentlich etwas, indem ich diese (openid + profile) Berechtigungen nicht anfordere? Ich nehme nicht und id_token in der Antwort, aber scheint die authentication_token schon noch mehr Informationen enthält als die id_token tut sowieso

Antwort

1

1) ist dies, wie es funktionieren soll, oder ist es eine Möglichkeit zu Zustimmung zu den Profil- und Openid-Bereichen erteilen?

Es scheint ein Fehler in azur ad v2.0 Zustimmung Rahmen, bekannte Bereiche (openid, Profil) sollte standardmäßig gewährt werden, wenn Sie Administratorberechtigungen tun. Bitte beziehen Sie sich auf this link.

2) Fehle ich etwas tatsächlich nicht diese (openid + Profil) Berechtigungen anfordert? Ich nehme nicht und in der Antwort id_token, ist aber scheint die authentication_token schon noch mehr Informationen enthält als die id_token tut sowieso

Sie verwenden keine OpenID verbinden, da Sie die openid Umfang nicht hinzugefügt haben , so wird id_token nicht zurückgegeben. Aber da Sie die Berechtigung user.read von Microsoft Graph API haben, könnten Sie Microsoft Graph API verwenden, um die grundlegenden Informationen des Benutzers zu lesen. Id_token und Zugriffstoken sind unterschiedlich, das id_token wird verwendet, um den authentifizierten Benutzer zu identifizieren. Das access_token wird verwendet, um Zugriffsrechte auf geschützte Ressourcen nachzuweisen. Bitte klicken Sie auf here für weitere Details.

+0

Vielen Dank für die Antwort, rate ich muss warten, bis MS es beheben. Und in Bezug auf Punkt 2 verstehe ich den Unterschied zwischen oauth und openid connect, wir verwenden derzeit die openid connect Bereiche und bekommen ID_Token, so dass meine Fragen mehr im Sinne von, wenn es etwas durch die Verwendung von OIDC gewonnen in Dieser Kontext, da, wie Sie darauf hinweisen, wir bereits Benutzer anfordern.lesen, – vruum