2017-06-14 4 views
0

Ich versuche, die Microsoft Graph-API mit App-Authentifizierung zu verwenden, um einem neu erstellten Benutzer eine Office365-Lizenz zuzuweisen. Meine App hat die App-Berechtigungen "Directory.Read.All" und "User.ReadWrite.All". Ich kann Benutzer erfolgreich erstellen (POST/Benutzer) und löschen (DELETE/users/$ id) und ich bin in der Lage, die Liste der Abonnements (GET/subscribedSkus) zu erhalten. Aber wenn ich versuche, eine Lizenz zu vergeben, erhalte ich eine 403-Antwort mit:Graph API assignLicense: Unzureichende Berechtigungen zum Abschließen des Vorgangs

https://graph.microsoft.com/v1.0/users/ $ upn/assignLicense

{ 
    "error": { 
    "code": "Authorization_RequestDenied", 
    "message": "Insufficient privileges to complete the operation.", 
    "innerError": { 
     "request-id": "...", 
     "date": "..." 
    } 
    } 

jedoch nach der Graph API documentation die App Erlaubnis "User.ReadWrite.All" sufficent sein sollte . Meine Anfrage Körper sieht wie folgt aus:

{ 
    "addLicenses": [ 
    { 
     "disabledPlans": [], 
     "skuId": "..." 
    } 
    ], 
    "removeLicenses": [] 
} 

Jede Idee, warum „User.ReadWrite.All“ Zugriffsrechte sufficent nicht, obwohl der Graph API doc sagt etwas anderes?

+0

Es scheint, dass Sie dem App-Objekt eine Administratorrolle zuweisen müssen (z. B. Global Administrator oder User Account Administrator). Ich habe das noch nicht getestet. – phatoni

+1

funktioniert es mit Directory.ReadWrite.All? Da dies die einzigen hier genannten Berechtigungen sind https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference, mit denen Sie Lizenzen verwalten können ... vielleicht gibt es also einen Fehler im assignLicense-Dokument, oder in der API selbst ... – andresm53

+0

Guter Punkt, ich werde Directory.ReadWrite.All versuchen. Ich wollte nur den minimalen Satz der erforderlichen Berechtigungen geben und nutzte deshalb User.ReadWrite.All, aber da ich gerade eine globale Administratorrolle zuweisen möchte, spielt es keine Rolle. – phatoni

Antwort

0

Ich kann jetzt bestätigen, dass AssignLicense funktioniert, wenn die App Directory.ReadWrite.All der App gewährt wird. Die Berechtigung "User.ReadWrite.All" ist nicht ausreichend, um "AssignLicense" auszuführen.

Verwandte Themen