我正試圖從具有以下作用域的圖中請求一個 accesstoken AppRoleAssignment.ReadWrite.All。我已經授予了API所需的作用域--所以這不應該是一個問題。
span class="hljs-keyword">const ccrRequest = {
scopes: ["https://graph.microsoft.com/AppRoleAssignment.ReadWrite.All"/span>],
}
const accessToken = await cca.acquireTokenByClientCredential(ccrRequest)
這個cca是一個ConfidentialClientApplication,我已經三番五次地檢查了我的配置是否正確。
當我試圖獲取我的范圍時,我得到了以下錯誤:
1002012 - [2021-09-15 12:15:42Z]: AADSTS1002012。為范圍https://graph.microsoft.com/AppRoleAssignment.ReadWrite.All openid profile offline_access提供的值無效。客戶端憑證流必須有一個以/.default為后綴的資源識別符號(應用ID URI)的范圍值。 '
顯然,這個錯誤告訴我應該使用./default范圍,(我真的不知道為什么)。但是根據檔案,./default范圍應該給我所有的應用程式作用域。然而,這并沒有發生:
0:'https://graph.microsoft.com/.default'/span>
1:'openid'。
2:'profile'。
3:' offline_access'
上面是當我請求https://graph.microsoft.com/.default范圍時,與我的accesstoken一起提供的作用域。當然,這并不代表我在門戶中授予 API 的權限。
當我執行我的fetch()請求時,我得到了以下錯誤:
沒有足夠的權限來完成該操作。
我在這里是否遺漏了一些關于 ClientCredentials 流程的基本資訊?
uj5u.com熱心網友回復:
你需要進入應用注冊的 API 權限選項卡,添加你在 Microsoft Graph API 上需要的 應用權限(不是委托權限),然后至少以應用管理員的身份運行管理同意。然后你應該能夠使用 /.default 范圍,并在訪問令牌的角色要求中獲得所需的權限。
。Openid、profile 和 offline_access 作用域在客戶憑證方案中沒有意義。 沒有用戶,所以 openid 和 profile 作用域沒有任何作用。 由于你不需要重繪 令牌,所以不需要 offline_access 作用。你有憑證,可以在需要新憑證的時候使用它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/310197.html
標籤:
