2017-06-21 6 views
1

Wenn ich versuche, alle Listen in einer Sharepoint-Site mithilfe dieser Microsoft Graph-Abfrage aufzulisten, gibt es einen 401-Fehler zurück. Aber das Lesen einer Liste funktioniert gut.Microsoft Graph-Abruflisten in Websites gibt 401 zurück

{ 
"error": { 
    "code": "unauthenticated", 
    "message": "Access denied. You do not have permission to perform this action or access this resource.", 
    "innerError": { 
     "request-id": "6929864e-9d14-4911-9d7e-d0a29259e05f", 
     "date": "2017-06-21T21:00:15" 
    } 
} 

}

Danke

Antwort

1

In der Regel zeigt eine 401-Antwort an, dass die Informationen, die der Server authentifizieren muss Ihre API-Anfrage fehlt entweder in der Anfrage oder ist vorhanden, aber irgendwie ungültig. Ich würde vorschlagen, dass Sie:

1) Überprüfen Sie, dass die Authorization Header in der fehlgeschlagenen Anfrage vorhanden ist.

2) Falls vorhanden, überprüfen Sie, ob der Inhalt des Authorization Header in der Anforderung, ist identisch den Inhalt der in der Anfrage Header Autorisierung fehlschlägt, die erfolgreich ist.

Wenn Sie die gleiche Autorisierung Header in beiden Anfragen senden, würde ich nicht erwarten, dass der Server eine 401 Antwort für eine Operation, aber nicht die andere zurückgibt. (Wenn es sich um ein Berechtigungsproblem handelt - dh der Benutzer hat Rechte zum Ausführen von Operation-A, aber nicht von Operation-B, würde ich erwarten, dass der Server eine 403 Forbidden-Antwort für Operation-B zurückgibt - keine 401-nicht autorisierte Antwort .)


Update (einige zusätzliche Gedanken)

Es sieht aus wie beide Operationen eines dieser beiden Zugriffs Bereiche erfordern:

  • Sites.Read.All
  • Sites.ReadWrite.All

Sie sollten überprüfen, ob das Token, das Sie in den Authorization Header der versagenden Anforderung sind die Angabe mindestens eines dieser Bereiche (obwohl, wie ich bereits sagte, ich den Server erwarten würde, um 403 zurückzugeben, wenn Sie nicht den richtigen Zugriffsbereich hatten).

Wenn Sie das Zugriffstoken über OAuth erhalten haben, ohne dass ein Benutzer eine Autorisierung erteilt hat, können die Informationen in dieser Antwort hilfreich sein: How to use OAuth when there is no user delegation? -- Microsoft Graph API. In dem Szenario, das post beschreibt, gab der Server eine 401-Antwort zurück, da der Entwickler nicht explizit die Zustimmung des Administrators für die Operation erhalten hatte, die er auszuführen versuchte.

+0

@Nico - Ich habe meine Antwort aktualisiert, um zusätzliche Informationen hinzuzufügen. Haben Sie mit diesem Problem Fortschritte erzielt? –

Verwandte Themen