簡體   English   中英

Power BI REST API-使用應用程序密鑰/服務主體時出現401授權錯誤

[英]Power BI REST API - 401 Authorization error when using app secret/service principal

我有一個控制台應用程序,該應用程序使用REST API來獲取數據集(然后向其中添加行)。 當我提供自己的用戶/密碼憑證時,此方法有效。

該應用已獲得以下委托權限:

Read and write all Datasets

View all Datasets

現在,我已將該應用程序注冊為Web / API應用程序,以便改用應用程序密鑰/秘密。 我可以獲得令牌,但是當我進行相同的REST調用時,我得到401 Unauthorized,仍然使用相同的權限。

因此,我嘗試在Power BI Service中為應用程序授予以下應用程序權限,因為文檔說這些適用於守護程序:

https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-permissions-and-consent#types-of-permissions

Read and write all content in tenant 

View all content in tenant

這些權限已由Azure管理員授予。

作為調試的一部分,我已經解碼了兩個令牌。

應用程序密鑰驗證的令牌包含以下內容:

"roles": [
"Tenant.ReadWrite.All",
"Tenant.Read.All"
],

而基於用戶的身份驗證令牌包含以下內容:

"scp": "Dataset.ReadWrite.All Workspace.ReadWrite.All",

我還研究了為應用程序/服務主體分配“貢獻者”角色,但是我不確定在哪個級別(“訂閱/資源組/資源”)。

我在想什么..?

我認為Power BI REST API不能使用此方法。

因此,我創建了一個特殊用戶(“ Power BI主帳戶”)。

首先,我認為在提出原始問題時不可能使用服務主體,因為幾個月前我沒有發現任何有用的信息來實現它。 但是之后,我碰到了這篇文章, 文章簡要解釋了如何使其工作,因此我能夠將“服務帳戶”的用法更改為服務主體方法。

因此,僅向Azure AD App授予權限是不夠的。 您還必須添加安全組,將應用添加到該安全組,在Power BI Admin Portal中啟用服務主體的使用,然后將安全組添加到工作區。 在那之后它應該工作。

暫無
暫無

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

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