簡體   English   中英

創建了 Powershell 並使用 Invoke-PowerBIRestMethod 來安排 Power BI Refresh 但引發 403 錯誤

[英]Created Powershell and using Invoke-PowerBIRestMethod to schedule Power BI Refresh but throws 403 error

我正在使用下面的代碼。 我已經用 XXXX 替換了憑據和其他 GUID。 如果我遺漏了什么,請告訴我。 正如我的安全團隊所提到的,服務主體對數據集、報告和工作區具有讀/寫權限。

Connect-PowerBIServiceAccount -ServicePrincipal -CertificateThumbprint XXXX -ApplicationId XXXX -Tenant XXXX 

$jsonbody = '{
  "value": {
    "days": [
      "Sunday",
      "Tuesday",
      "Friday",
      "Saturday"
    ],
    "times": [
      "07:00",
      "11:30",
      "16:00",
      "23:30"
    ],
    "localTimeZoneId": "UTC",
    "enabled": true
  }
}'

Invoke-PowerBIRestMethod -Url 'https://api.powerbi.com/v1.0/myorg/groups/XXXX/datasets/XXXX/refreshSchedule' -Method PATCH -Body $jsonbody -ContentType application/json

Resolve-PowerBIError -Last

上面的腳本拋出以下錯誤

Powershell 錯誤

服務負責人的權限

在與 Microsoft 產品團隊取得聯系后,我能夠破解該問題。

第一個問題是服務主體應該是“應用程序權限”類型而不是“委托”類型。 委托服務主體將拋出 400 錯誤。

第二部分,403 - Forbidden 錯誤的主要原因是我需要接管數據集。 這意味着我不應該只是工作區的管理員,我需要首先使用 Power BI REST API 接管數據集。 接管后,我可以使用服務主體身份驗證執行其他與數據集相關的任務。

總體順序將是

  1. 收購數據集
  2. 綁定數據網關 (服務主體將需要訪問網關中的此數據源。這部分工作有很多步驟)
  3. 更新參數(如果有)
  4. 更新刷新計划

如果有人試圖類似的東西,那么我已經發布了詳細的實施和步驟,包括PowerShell腳本一個博客在這里

暫無
暫無

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

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