簡體   English   中英

Microsoft Graph,上傳到共享點驅動器:調用方未通過身份驗證

[英]Microsoft Graph, upload to sharepoint drive: The caller is not authenticated

這項工作適用於托管在localhost上的我的應用程序:

"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"

但是,當我將應用程序以webapp的形式上傳到Azure上的生產服務器上時。

我通過嘗試通過ID查找共享點站點並創建上傳會話而收到此錯誤。

外部: Microsoft.Graph.ServiceException:代碼:itemNotFound消息:找不到資源。

內部: Microsoft.Graph.ServiceException:代碼:未經身份驗證的消息:調用方未經身份驗證。

為什么它可以在localhost而不是我的azure應用程序上工作? 對於開發和生產,應用程序注冊不同,但權限相同。

我知道的唯一區別是,我后來添加了Sites.Read.All權限,而不是在https://apps.dev.microsoft.com/中注冊了用於生產的應用程序時。

我正在使用Microsoft Graph客戶端來獲取訪問令牌。 我也嘗試刪除所有脫機令牌,但是它不起作用。

如果我還記得添加權限Sites.Read.All時的提示,那么我收到了新的同意請求。

在應用中啟用的權限:電子郵件,Files.Read,Files.ReadWrite,File.ReadWrite.AppFolder,offline_access,openid,配置文件,Site.Read.All,User.Read

有什么問題嗎?

生產登錄名:

{
 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: "firstname.lastname@company.com",
 sub: "rxGHRTX9YHogzaC_HgOmXvoKJ0Xye6Rk5HPAjLphQRc",
 tid: "34e9a1f3-23e1-4ead-b2fd-41660c25cc47",
 ver: "2.0"
}.

本地登錄:

{
 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: "firstname.lastname@company.com",
 sub: "MRN4y1TZ-qG1uxrL7ozf8KbBm0VbcbH7djaKK187qH8",
 tid: "34e9a1f3-23e1-4ead-b2fd-41660c25cc47",
 ver: "2.0"
}.

另請閱讀評論以獲取更多詳細信息。

登錄后,我通過在令牌上使用http://calebb.net/找到了錯誤。

Azure應用程序注冊缺少一個文件Files.ReadWrite的權限,但開發人員都沒有該權限,但是權限以某種方式包含在范圍中。

在Azure中出錯? 如果我沒記錯的話,我已經在應用程序注冊中包含了許多權限,然后刪除了其中的大多數權限,包括Files.ReadWrite.All。

即使我的WebApp在范圍和應用程序注冊中未包含權限,對於每個應用程序注冊,現有用戶的權限Files.ReadWrite.All仍保留在范圍中。 這就是為什么它可以在開發環境中工作的原因。

謝謝Marc LaFleur-MSFT。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM