0

Ich habe eine Anwendungsregistrierung in Azure AD, für die einige grafische API-delegierte Berechtigungen festgelegt sind.Azure AD + Graph-API: Wie können Sie nach neuen Berechtigungen erneut eine Anfrage stellen?

Die Anwendung ist einfach eine Seite in SharePoint, die den Graph aufruft und sich mit der ADAL.js-Bibliothek authentifiziert.

Ich möchte jetzt einen zusätzlichen Graph-Aufruf auf der Seite zu einem neuen Graph-API-Endpunkt machen, so dass ich der Anwendung eine zusätzliche Berechtigung zuweisen muss. Ich setze diese Berechtigung in Azure AD und speichere. Der Benutzer, der auf die SharePoint-Seite zugreift, wird jedoch nie aufgefordert, die neuen Berechtigungen erneut zu senden. Daher schlägt der neue Graph-Aufruf mit einer nicht autorisierten 401-Nachricht fehl.

Ich habe dies mit einer Reihe von verschiedenen Endpunkten und Berechtigungen versucht, und ich bin sicher, dass ich die richtigen Berechtigungen in der Anwendung einstellen.

Wie kann ich den Zustimmungsdialog für Benutzer automatisch anzeigen lassen, wenn sich die Anwendungsberechtigungen ändern?

Admin Zustimmung ist keine Option.

+0

Verwenden Sie Azure AD v1 oder v2? –

+0

Sorry, ich bin mir nicht sicher - wie kann ich das überprüfen? Ich benutze die neue Azure-Schnittstelle, wenn Sie das fragen ... – Submits

+0

Ich habe gerade etwas Interessantes entdeckt: Die App erscheint auf aad.portal.azure.com, aber nicht auf apps.dev.microsoft.com. Ich bin mir nicht sicher, was der Unterschied ist, aber das kann Ihre Frage beantworten. – Submits

Antwort

3

Ich erinnere mich daran, mit einem Mitglied des Azure AD-Teams vor einiger Zeit eine Diskussion darüber geführt zu haben, und das hatte er damals vorgeschlagen (obwohl ich es nie ausprobiert habe, funktioniert es vielleicht nicht).

Wesentlichen, was er vorgeschlagen, dass, wenn Sie Unauthorized (401) Fehlermeldung erhalten, können Sie den Benutzer zu Azure AD Login umleiten wieder heißt OAuth Autorisierungsablauf wieder folgen, sondern umfassen prompt=consent im Zeichen in URI. Dadurch wird dem Benutzer eine Zustimmungsseite mit den neuesten Berechtigungen angezeigt. Sobald der Benutzer der neuesten Berechtigung zustimmt, können Sie den Benutzer zurück zu Ihrer Anwendung umleiten. Sie können diesen Link hilfreich zum Verständnis verschiedener Werte für propmpt Parameter finden: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code.

Wieder habe ich das nicht persönlich versucht, so dass es möglicherweise nicht funktioniert. Wenn nicht, lass es mich wissen und ich werde meine Antwort entfernen.

+0

Danke, das macht Sinn. Ich werde es versuchen und zu dir zurückkommen. – Submits

+0

Dieser Ansatz sollte funktionieren - lassen Sie es uns wissen. Wenn Sie den Endpunkt v2 für die Authentifizierung verwenden, wird dieser Vorgang etwas einfacher, da er "inkrementelle Zustimmung" unterstützt. Sie müssten immer noch mit "Unauthorized (401)" umgehen, aber Sie würden einfach eine Anfrage an den autorisierten Endpunkt stellen, in der Sie die zusätzlichen Bereiche anfordern, die Sie benötigen - dies würde den Endbenutzer automatisch erneut auffordern -Zustimmung. –

Verwandte Themen