2017-11-23 7 views
1

Wir versuchen, eine Liste der Räume in der Organisation über user_findrooms auf der Beta-API zu holen.Microsoft Graph API FindRooms ErrorAccessDenied

Ich benutze die php-connect-sample und wurde hier nach dem Erstellen einer issue dort gerichtet.

Unsere Anwendung ist registriert und verfügt über die erforderlichen Berechtigungen. Der Benutzer ist angemeldet und korrekt umgeleitet. Ich kann den /me Endpunkt

erfolgreich, wenn ich versuche, den /me/findRooms Endpunkt wie folgt zu erhalten:

$graph = new Graph(); 
$graph->setApiVersion('beta'); 
$graph->setAccessToken($_SESSION['access_token']); 

$rooms = $graph->createRequest("get", "/me/findRooms") 
         ->setReturnType(Model\EmailAddress::class) 
         ->execute(); 

dann bekomme ich die folgende Fehlermeldung:

Client error: GET https://graph.microsoft.com/beta/me/findRooms resulted in a 403 Forbidden response: { "error": { "code": "ErrorAccessDenied", "message": "Access is denied. Check credentials and try again.", (truncated...)

So scheint es eine Erlaubnis zu sein Error.

Wir haben folgende Graph Berechtigungen für unsere App:

delegierte Berechtigungen: User.ReadBasic.All und User.Read.All

Applikationsrechte: Calendars.ReadWrite und User.Read.All

Welche sind zusätzliche Berechtigungen erforderlich /me/findRooms zugreifen ?

+0

Wenn Sie dies nur in Anwesenheit eines Benutzers ausführen, müssen Sie keine App-Berechtigungen angeben. Es sieht so aus, als ob die von Ihnen definierten delegierten Berechtigungen ausreichen, um nach Räumen auf dem Beta-Endpunkt abzufragen, aber es gibt ein anderes Auth-Problem. Für zusätzlichen Kontext: Verwenden Sie [AAD V2 auth] (https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-scopes)? Wenn Sie [Token entschlüsseln] (http://jwt.calebb.net/), was sehen Sie dann in der 'scp' Sammlung? –

+0

Danke für die Antwort @DmitryPimenov Ja, ich bin mit dem Endpunkt Azure AD v2.0 die OAuth-Token zu bekommen Wenn ich dekodieren das Token es folgende unter scp enthält: '„Calendars.ReadWrite User.Read“ ' – karel

Antwort

Verwandte Themen