2017-08-07 2 views
0

Diese Arbeit über meinen Antrag auf localhost gehostet authentifiziert:Microsoft Graph, laden zu Sharepoint-Laufwerk: Der Anrufer nicht

"https://graph.microsoft.com:443/v1.0/sites/test.sharepoint.com,edc2dd46-cea8-4b10-a872-cd1a55ba4529,b14c0787-d4c1-4f4a-9a6c-7e010d794be9/drives/b!Rt3C7ajOEEuocs0aVbpFKYcHTLHB1EpPmmx-AQ15S-nygMtHkkWNRaaOc2GebusJ/items/01VI7PMEF6Y2GOVW7725BZO354PWSELRRZ?%24filter=folder ne null&%24select=id%2cfolder%2cname%2cparentReference%2cwebUrl" 

"https://graph.microsoft.com:443/v1.0/sites/test.sharepoint.com,edc2dd46-cea8-4b10-a872-cd1a55ba4529,b14c0787-d4c1-4f4a-9a6c-7e010d794be9/drives/b!Rt3C7ajOEEuocs0aVbpFKYcHTLHB1EpPmmx-AQ15S-nygMtHkkWNRaaOc2GebusJ/items/01VI7PMEF6Y2GOVW7725BZO354PWSELRRZ?%24filter=folder ne null&%24select=id%2cfolder%2cname%2cparentReference%2cwebUrl" 

"https://graph.microsoft.com:443/v1.0/sites/test.sharepoint.com,edc2dd46-cea8-4b10-a872-cd1a55ba4529,b14c0787-d4c1-4f4a-9a6c-7e010d794be9/drives/b!Rt3C7ajOEEuocs0aVbpFKYcHTLHB1EpPmmx-AQ15S-nygMtHkkWNRaaOc2GebusJ/root:/Presentation.en-GB.pptx:/microsoft.graph.createUploadSession" 

Aber wenn ich auf dem Produktionsserver auf azur als Webapp die Anwendung hochgeladen haben.

Ich bekomme diesen Fehler, indem ich versuche, Sharepoint-Site nach ID zu finden und Upload-Sitzung zu erstellen.

Außen: Microsoft.Graph.ServiceException: Code: itemNotFound Nachricht: Die Ressource konnte nicht gefunden werden.

Inner: Microsoft.Graph.ServiceException: Code: unauthenticated Nachricht: Der Anrufer nicht authentifiziert ist.

Warum funktioniert es auf localhost und nicht meine azurblaue App? Die App-Registrierung unterscheidet sich für Entwicklung und Produktion, aber die Berechtigungen sind identisch.

Der einzige Unterschied, den ich weiß, ist, dass ich Sites.Read.All Erlaubnis später und nicht, wenn ich die App für die Produktion registrierte in https://apps.dev.microsoft.com/ hinzugefügt.

Ich verwende den Microsoft Graph-Client, um das Zugriffstoken abzurufen. Ich habe auch versucht, alle Offline-Tokens zu löschen, aber es funktioniert nicht.

Wenn ich mich recht erinnere, wenn ich die Erlaubnis Sites.Read.All hinzugefügt Ich habe eine neue Zustimmung Anfrage.

Permission in der App aktiviert: E-Mail, Files.Read, Files.ReadWrite, File.ReadWrite.AppFolder, offline_access, OpenID, Profil, Site.Read.All, User.Read

Ist etwas nicht in Ordnung?

Produktion Anmeldung:

{ 
typ: "JWT", 
alg: "RS256", 
kid: "VWVIc1WD1Tksbb301sasM5kOq5Q" 
}. 
{ 
aud: "f53962c3-2bd4-4302-adcf-49d9a93ccef0", 
iss: "https://login.microsoftonline.com/GUID/v2.0", 
iat: 1502142424, 
nbf: 1502142424, 
exp: 1502146324, 
aio: "ATQAy/8DAAAAo99zdMc3jCP7sR8Zw0iKijdu1Nv2AeJOpJ65OHtXb0o8QjTm9O320mHxIAv5tWJw", 
c_hash: "APreKq7N3Y0oG8SP6ipZdA", 
name: "First name Last name", 
nonce: "636377394901824543.ZWQ4MGVkYmEtYTMzMS00ZDUyLTgzZmYtYWFjMmRkNWRjNzhhNTAxMWUyYzItOGNhNi00N2IzLTk5MGEtMTVmYTlhYzBkNDVk", 
oid: "4f64d4db-8115-4f19-8554-bedf20688226", 
preferred_username: "[email protected]", 
sub: "rxGHRTX9YHogzaC_HgOmXvoKJ0Xye6Rk5HPAjLphQRc", 
tid: "34e9a1f3-23e1-4ead-b2fd-41660c25cc47", 
ver: "2.0" 
}. 

Lokale Anmeldung:

{ 
typ: "JWT", 
alg: "RS256", 
kid: "VWVIc1WD1Tksbb301sasM5kOq5Q" 
}. 
{ 
aud: "36d2abdd-2363-4ff9-b597-77d41e0e3b81", 
iss: "https://login.microsoftonline.com/GUID/v2.0", 
iat: 1502173871, 
nbf: 1502173871, 
exp: 1502177771, 
aio: "ATQAy/8EAAAA2JCq8vpq6La3M0KIKWw1vgJOfhDQyurYRhbCR47qSjByGzPkyZX0zi5y9uYCQS+q", 
c_hash: "3JkkVwHgmYiHvR-gVdb22w", 
name: "First name Last name", 
nonce: "636377709651517241.MDNkOWNhYzMtYjk4NC00OTBkLWI2Y2EtYzU5NmM0NWZjOGExNWQxZmU3MTgtN2RhYS00NjVlLTkwZDgtZjIwOGY4NTcyNTZi", 
oid: "4f64d4db-8115-4f19-8554-bedf20688226", 
preferred_username: "[email protected]", 
sub: "MRN4y1TZ-qG1uxrL7ozf8KbBm0VbcbH7djaKK187qH8", 
tid: "34e9a1f3-23e1-4ead-b2fd-41660c25cc47", 
ver: "2.0" 
}. 

Auch Kommentare, um weitere Informationen zu lesen.

+0

Sie haben bestätigt, dass die Bereiche in Ihrem Token enthalten sind? Sie können das JWT unter http://calebb.net/ analysieren. –

+0

@ MarcLaFleur-MSFT Hallo, ich werde calebb.net morgen versuchen, danke. Aber ich habe bestätigt, dass beide web.config den gleichen Umfang enthalten. Ich kann einfach nicht herausfinden, was anders ist als Produktion und lokal, damit es nicht funktioniert. Übrigens kann das Produkt, das ich entwickle, sowohl in OneDrive als auch in SharePoint speichern, wo das erste auf beiden Umgebungen arbeitet, während das zweite gerade auf dem lokalen arbeitet. – XzaR

+0

Gleiche SharePoint Server-Instanz oder separate Prod und Test? Kurios, wenn das Problem hier Konfiguration statt Code ist. –

Antwort

1

Ich habe den Fehler gefunden, indem ich auf dem Token nach der Anmeldung verwendet habe.

Die Azure App Registrierung fehlte eine Erlaubnis, Files.ReadWrite.All aber Entwicklung hatte es nicht, aber die Berechtigungen wurde irgendwie in den Anwendungsbereich aufgenommen.

Fehler in Azure? Wenn ich mich richtig erinnere, hatte ich viele Berechtigungen in die App-Registrierung aufgenommen und dann die meisten von ihnen einschließlich Files.ReadWrite.All entfernt.

Auch wenn meine WebApp nicht die Berechtigung in den Bereich und die App-Registrierung enthalten, die Berechtigung Dateien.ReadWrite.All wurde im Bereich für vorhandene Benutzer pro App-Registrierung beibehalten. Deshalb funktioniert es in der Entwicklungsumgebung.

Danke Marc LaFleur - MSFT.

+0

Ich bin nicht klar bei _exactly_ was hier passiert ist, aber ich bin froh, dass es funktioniert hat. Ich werde sagen, dass ich im Allgemeinen die Verwendung des v2-Endpunkts empfehle und Ihre Bereiche dynamisch anfordere (d. H. In der Anfrage). Dies macht es viel einfacher zu debuggen und migrieren zwischen Entwickler/Test und Produktion. –

+1

@ MarcLaFleur-MSFT Ich war in Eile schreibe meine Antwort Ich denke, es kam falsch jetzt sollte es leichter zu verstehen, ich hoffe. Danke, ich werde in v2 Endpoint schauen. – XzaR

Verwandte Themen