gpt4 book ai didi

使用服务主体更新数据集的 PowerBI API 错误

转载 作者:行者123 更新时间:2023-12-04 17:19:10 27 4
gpt4 key购买 nike

需求:通过服务主体使用 Powershell 脚本更新 PowerBI 数据集计划。使用 PowerBI API。引用:MicrosoftDocs
错误信息 :“消息”:“应用程序无法访问API”
我做了什么:

  • 在 Azure AD 中提供 PowerBI 应用程序 API 权限。在 PowerBI 工作区中授予服务主体的管理员访问权限。
    API Permissions
  • 将 SP 放在 AD 组中。将此 AD 组设为 Power BI 工作区和数据集的管理员(在 Power BI 管理设置下)
  • 使用服务主体生成的访问 token 。 API 请求的 Invoke-RestMethod。
    $SecPasswd = ConvertTo-SecureString $ClientSecret -AsPlainText -Force
    $ClientCred = New-Object System.Management.Automation.PSCredential($ClientId,$SecPasswd)

    Connect-PowerBIServiceAccount -Tenant $tenantId -ServicePrincipal -Credential $ClientCred
    $accessToken = Get-PowerBIAccessToken
    $authHeader = @{'Content-Type'='application/json','Authorization'= $accessToken.Authorization}
    $uri="https://api.powerbi.com/v1.0/myorg/datasets/$datasetId/refreshSchedule"
    Invoke-RestMethod -Uri $uri –Headers $authHeader –Method Patch -Body ($jsonBase | ConvertTo-Json) -ContentType "application/json"

  • 观察:
    使用我的工作区的 datasetId 并运行脚本。 2 场景:
  • 在授权 header 中使用服务主体访问 token 。得到 - Forbidden 403 Error. "Message":"API is not accessible for application .
  • 在 Authorization header 中使用使用我的用户凭据生成的访问 token 时,脚本成功运行。
  • 在其他工作区尝试了各种数据集

  • 我缺少使用服务主体更新数据集计划的哪些权限?

    最佳答案

    Microsoft API 文档中的 URL 对于服务主体是错误的。
    您还需要在 URL 中包含工作区 ID,请参见下文

    https://api.powerbi.com/v1.0/myorg/groups/{WorkspaceID}/datasets/{DatasetId}refreshes

    关于使用服务主体更新数据集的 PowerBI API 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67259841/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com