我正試圖從外部應用程序訪問SharePoint [Online] REST API。我使用管理員帳戶在Azure中註冊了它,併爲其分配了適當的用戶委託權限(Office 365 SharePoint Online
)。使用ADAL進行Azure AD OAuth身份驗證:資源ID是什麼?
我使用ADAL.js撥打acquireToken
並在我的Authorization
標頭中使用該標記。一個看上去有效的令牌越來越連接,但我發現下面的401錯誤的響應:
Exception of type 'Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException' was thrown
的acquireToken()方法確實需要一個resource
PARAM,並從我在線閱讀,SharePoint API的此值應爲https://[tenant].sharepoint.com
,但該值僅返回一個不記名不記名令牌。
我做了什麼(會觸發先前的401錯誤)是簡單地將資源設置爲在Azure中生成的應用程序ID。這最終被設置爲我的localStorage緩存中的一個令牌。所以不記名令牌確實會返回,但我得到了異常。
兩個問題:
什麼是資源字符串,什麼是正確的值就acquireToken()調用,看到我的應用ID調用它(同樣的事情,我使用的我的ADAL配置中的客戶端ID)是唯一一個成功返回承載令牌的值?是否有適用於每個Microsoft API的資源字符串列表?我一直無法找到有關此主題的文檔。
Azure上的配置有問題嗎?
謝謝!
你有想過嗎?我有同樣的問題。我看到一個額外的響應標題被返回(x-ms-diagnostics:3000003; reason =「無效的聽衆Uri'f8f8d2ad-7c9d-4aac-80eb-3f00a263c879'。」; category =「invalid_client」) – Russellg