Ошибка PowerBI API с использованием субъекта-службы в сценарии Powershell
Требование: обновите расписание набора данных PowerBI с помощью сценария Powershell. Используется PowerBI API. Обратитесь: MicrosoftDocs
Что я сделал:
- Предоставляет разрешения API приложения PowerBI в Azure AD. Доступ администратора предоставляется субъекту-службе в рабочих областях PowerBI.
2. Используемый токен доступа, созданный с помощью субъекта-службы. Invoke-RestMethod для запроса API. См. Код ниже.
$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 сценария:
- Использование токена доступа субъекта-службы в заголовке авторизации. Получил - Запрещенная ошибка 403. «Сообщение»: «API недоступен для приложения».
- Использование токена доступа, созданного с моими учетными данными в заголовке авторизации. Скрипт успешно выполняется. Расписание набора данных обновлено.
Какие разрешения мне не хватает для обновления расписания наборов данных с помощью субъекта-службы? Если кто-то реализовал запросы POST или Patch PowerBI API с помощью субъекта-службы, поделитесь своими мыслями.
2 ответа
URL-адрес в документации Microsoft API неверен для субъектов-служб.
Вам также необходимо включить идентификатор рабочей области в URL-адрес, см. Ниже
https://api.powerbi.com/v1.0/myorg/groups/{WorkspaceID}/datasets/{DatasetId}refreshes
Субъект-служба не поддерживается для доступа к моей рабочей области :
Соображения и ограничения
- Субъект-служба работает только с новыми рабочими областями.
- Моя рабочая область не поддерживается при использовании субъекта-службы.
- При переходе к производству требуется мощность.
- Вы не можете войти на портал Power BI с помощью субъекта-службы.
- Права администратора Power BI необходимы для включения субъекта-службы в настройках разработчика на портале администрирования Power BI.
- Встраиваемые приложения вашей организации не могут использовать субъект-службу.
- Управление потоками данных не поддерживается.
- Субъект-служба поддерживает только некоторые административные API, доступные только для чтения. Чтобы включить поддержку субъекта-службы для API-интерфейсов администратора только для чтения, необходимо включить параметры администратора службы Power BI в своем клиенте. Дополнительные сведения см. В разделе Включение аутентификации субъекта-службы для API-интерфейсов администратора только для чтения.
- При использовании субъекта-службы с источником данных служб Azure Analysis Services сам субъект-служба должен иметь разрешения экземпляра служб Azure Analysis Services. Использование для этой цели группы безопасности, содержащей субъект-службу, не работает.
Вам следует либо переместить набор данных в новую рабочую область , либо изменить метод аутентификации.