【问题标题】:Power BI REST API - 401 Authorization error when using app secret/service principalPower BI REST API - 使用应用程序机密/服务主体时出现 401 授权错误
【发布时间】:2018-12-20 10:08:29
【问题描述】:

我有一个控制台应用程序,它使用 REST API 来获取数据集(然后向其中添加行)。当我提供自己的用户/密码凭据时,此方法有效。

该应用已获得以下委派权限:

Read and write all Datasets

View all Datasets

现在我已将该应用程序注册为 Web/API 应用程序,以便改用应用程序密钥/秘密。我可以获得一个令牌,但是当我进行相同的 REST 调用时,我得到 401 Unauthorized,仍然使用相同的权限。

所以我尝试在 Power BI 服务中为应用授予以下应用程序权限,因为文档说这些适用于守护程序应用程序:

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

我还考虑为应用/服务主体分配贡献者角色,但我不确定在哪个级别(订阅/资源组/资源)。

我错过了什么..?

【问题讨论】:

    标签: azure powerbi


    【解决方案1】:

    首先,我认为在最初提出问题时使用服务主体是不可能的,因为几个月前我没有找到任何有用的信息来实现它。但是后来我遇到了this 文章,该文章简要说明了如何使其工作,因此我能够将“服务帐户”的用法更改为服务主体方法。

    所以,基本上授予 Azure AD App 权限是不够的。您还必须添加安全组,将您的应用添加到该安全组,在 Power BI 管理员门户中启用服务主体的使用,然后将您的安全组添加到工作区。之后它应该可以工作了。

    【讨论】:

    • 谢谢。你是这个拼图中有用的一块。
    【解决方案2】:

    我不相信可以将此方法与 Power BI REST API 一起使用。

    所以我创建了一个特殊用户(“Power BI 主帐户”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 2023-02-08
      • 2018-02-19
      • 1970-01-01
      相关资源
      最近更新 更多