0

Azure Active Directory User Consent Settings

Für die Nutzung von in Azure Active Directory veröffentlichten Anwendungen ist unter Umständen eine Benutzerzustimmung (User Consent) erforderlich. Der Anwendung wird dann gestattet im Namen des jeweiligen Anwenders auf das Azure Active Directory zuzugreifen.

Ist die Benutzerzustimmung des Azure Active Directory deaktiviert, erscheint bei normalen Benutzerkonten stattdessen die Aufforderung einen Administrator zu kontaktieren um eine Administratorgenehmigung einzuholen.

Admin approval dialog

Doch wie kann das Admin approval erteilt werden? Der Link „Have an admin account?“ im Dialog suggeriert das damit das Admin approval erteilt wird. Dies ist jedoch nicht der Fall. Wird er entsprechende Link aufgerufen wird das Approval nur für den jeweiligen Admin erteilt nicht aber für andere Benutzerkonten.

Um das Admin approval gezielt auf ein oder mehrere Konten zu geben kann die Microsoft Graph Api verwendet werden. Diese kann über https://graphexplorer.azurewebsites.net angesteuert werden. Alternativ dazu funktioniert auch https://developer.microsoft.com/en-us/graph/graph-explorer. Zunächst ist ein Login auf einer der Seiten erforderlich. Anhand des Logins erkennt der Graph Explorer den entsprechenden Tenant.

Wie kann nun aber das Admin approval erteilt werden. Hat ein Administrator den Login zu einer Zielanwendung durchgeführt und seinem Konto das approval gegeben wird ein OAuth2 authorization grant erstellt. Über den Graph Explorer können die erteilten authorization grants ausgelesen werden. Dazu ist die „GET“ Methode mit folgender URL zu verwenden https://graph.windows.net/myorganization/oauth2PermissionGrants.

Die Ausgabe zeigt die erteilten authorization grants. Die „clientId“ entspricht dabei der „ObjectId“ der Anwendung im Azure Active Directory.

Hinweis

Die „clientId“ sollte nicht mit der „ApplicationId“ verwechselt werden.

Beispiel:

{

„clientId“: „b923ec8e-c783-4e27-b044-0eb0e53f89ff“,

„consentType“: „Principal“,

„expiryTime“: „2018-08-18T09:11:56.6975941“,

„objectId“: „RW8s2l_fPRH-L9t4S4VgPtlRPYMs“,

„principalId“: „fe113ddf-db2f-4b78-8560-3ed9513d832c“,

„resourceId“: „1b5b7557-8529-4c1e-8b66-be456f2cda5f“,

„scope“: „User.Read Directory.AccessAsUser.All“,

„startTime“: „0001-01-01T00:00:00“

}

Um das Admin approval für einen Benutzer zu erteilen kopiert man das authorization grant der entsprechenden Anwendung in einen Texteditor und passt diesen für die Verwendung mit einem anderen Benutzer an. Das geschieht in dem die „pricipalId“ angepasst wird. Die „principalId“ entspricht der „ObjectId“ des Benutzerkontos welches zugriff bekommen soll. Sollen allen Benutzern der Zugriff erteilt werden muss der „consentType“ auf „AllPrincipals“ und die „principalId“ auf „null“ (null ohne die entsprechenden Hochzeichen) gestellt werden.

Das authorization grant muss dann mit einem entsprechenden POST an die Graph Api übertragen werden.

Ist das geschehen ist der Admin consent erteilt. Benutzer müssen den Zugriff nicht weiter bestätigen. Soll der Admin Consent wieder entfernt werden muss das entsprechende authorization grant gelöscht werden.

Dazu ist die „DELETE“ Methode gefolgt vom Aufruf https://graph.windows.net/myorganization/oauth2PermissionGrants/<ObjectId>  auszuführen. Die ObjectId eines authorization grants wird beim anlegen automatisch vergeben. Um also das oben aufgeführte authorization grant zu löschen lautet die URL wie folgt:

https://graph.windows.net/myorganization/oauth2PermissionGrants/RW8s2l_fPRH-L9t4S4VgPtlRPYMs

Der anschließende Zugriff erfordert dann erneut eine Zustimmung.

 

beuermann

Schreibe einen Kommentar