簡體   English   中英

如何使用 azure msal 庫訪問 azure 服務管理 api?

[英]How do I use the azure msal library to access azure service management apis?

microsoft azure 站點上所有與客戶端應用程序或有權訪問 azure apis 的服務主體有關的示例都以圖形 apis 為例。 我讓那些工作,但我需要做的是訪問 Azure 服務管理 api。

如果我使用適用於圖形 api 的身份驗證令牌並將其用於服務管理 api,我會收到“身份驗證失敗”。 錯誤。

我已將“azure 服務管理”的 api 權限和 user_impersonation 委托權限類型添加到我的公共客戶端應用程序,但管理 api 仍然失敗。

我在這一切都錯了嗎? 我認為服務管理 api 以不同的方式進行身份驗證,因為在任何身份驗證示例中絕對沒有提到在任何地方使用它們。

我想您正在使用客戶端應用程序或服務主體來訪問 Azure 資源。 如果是這樣,您使用的是客戶端憑據流,但Azure Service Management API 的user_impersonationdelegated權限,它不會在此流中生效。

該權限用於登錄AD App的用戶的同意,例如在auth code流程中,當得到用戶的同意后,App就可以代表用戶訪問azure資源,注意權限來自用戶,而不是應用程序。 因此,如果要使用此流程,用戶應該在訂閱或特定資源中具有角色。

要使用客戶端應用程序或服務主體訪問 Azure 資源,只需在訂閱或特定資源的Access control (IAM)中將服務主體添加為 RBAC 角色,無需在 Azure AD 中添加任何 API 權限,請參閱此鏈接 然后服務主體將能夠訪問 Azure 資源。

當您獲取令牌以訪問 azure 資源時,例如調用 REST API,范圍應該是https://management.azure.com/.default ,而不是https://graph.microsoft.com/.default ,您一次只能獲取一個資源的token。

暫無
暫無

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

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