MS Graph, Daemon App 401 nicht autorisiert auf Files.ReadWrite.All Anrufe

8

UPDATE: Ich habe von Microsoft erfahren, dass dieses Problem ein Fehler in der Graph-API ist. Sie arbeiten an einer Lösung.

Ich bin mit dem neuen v2.0 OAuth Fluss zu meiner App für die Verwendung mit Microsoft Graph zu authentifizieren, um es in der Lage zu machen alle Benutzer Dateien aufzulisten, Download und Upload von Dateien in beliebigen Benutzer Microsoft Onedrive und Berechtigungen auf Dateien. Dies geschieht, ohne dass der Benutzer angemeldet ist, der es als Dienstkonto / Daemon ausführt.

Ich habe im neuen Application Registration Portal eine neue "Converged-Anwendung" eingerichtet. Ich habe alle erforderlichen Bereiche / Anwendungserlaubnis gesetzt, einschließlich Files.ReadWrite.All . (Ich habe tatsächlich alle möglichen Boxen überprüft ...). In den Microsoft Graph-Dokumenten sollte dies der einzige Bereich sein, der notwendig ist, um die Endpunkte aufzurufen, an denen ich interessiert bin:

%Vor%

Dann habe ich die Dokumentation für das gefolgt Client-Anmeldeinformationen fließen in , einschließlich der Zustimmung des Administrators zur App für die Verwendung in meinem Mandanten.

Ich erhalte erfolgreich ein Zugriffs-Token. Nach Erhalt des Zugriffstokens habe ich an jwt.io überprüft, dass das Token tatsächlich alle Bereiche enthält (inkl.% Co_de%).

Ich kann dieses Zugriffstoken verwenden, um das Laufwerk eines Benutzers abzurufen und alle Benutzerdateien aufzulisten (die ersten beiden oben aufgeführten Endpunkte). Ich habe auch versucht, Thumbnails aller Benutzerdateien zu erhalten, die gut funktionieren. Aber sobald ich versuche, eine Datei herunterzuladen, Berechtigungen zu einer Datei hinzuzufügen oder einen Sharing-Link zu erstellen (die letzten drei oben aufgeführten Endpunkte), erhalte ich einen Files.ReadWrite.All -Fehler. Davon ausgehend nehme ich an, dass der Bereich 401 Unauthorized einwandfrei funktioniert, der Bereich Files.Read.All jedoch nicht funktioniert.

Wie zu dem, was ich aus dem Scopes Dokumentation , die Bereiche Ich versuche, zu benutzen sollte funktionieren. Im Abschnitt "Nur für App-Berechtigungen, die eine Zustimmung des Administrators erfordern" wird Files.ReadWrite.All als:

beschrieben
  

Ermöglicht der App zu lesen, erstellen, aktualisieren und löschen Sie alle Dateien in allen Websitesammlungen ohne in Benutzer unterzeichnet.

Ich habe eine Wand getroffen. Gibt es Einschränkungen für den neuen v2.0 OAuth-Token und / oder Microsoft Graph über App-Only-Zugang, dass ich fehle?

    
Elias Selinder 24.02.2017, 12:48
quelle

1 Antwort

0

Die Schleife für diejenigen schließen, die über diese Frage stolpern. There war ein Problem mit Files.ReadWrite.All in Nur-App-Szenarien, wenn es zum Hochladen oder Ändern von Berechtigungen einer Datei kam.

Das Problem beim Herunterladen ist nicht relevant. Autorisierungsfehler beim Herunterladen einer Datei stammen von der Übergabe eines Autorisierungsheaders in der Downloadanforderung. Der '/ content / Endpunkt gibt eine URL zurück, mit der die Datei heruntergeladen werden kann. Dies ist eine vorautorisierte URL, die für eine kurze Zeit existiert. Das Übergeben eines Autorisierungsheaders in dieser Anforderung führt zu einem Fehler, da ein solcher Header nicht erwartet wird, und kann nicht bestimmen, welche Anmeldeinformationen er verwenden soll ( super-vereinfachung, aber dies ist die allgemeine Idee ).

    
Marc LaFleur 14.02.2018 19:56
quelle