Power BI REST API - 401 Ошибка авторизации при использовании секретного приложения / субъекта службы - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть консольное приложение, которое использует 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",

Я также рассмотрел назначение субъекту приложения / службы роли участника, но я не уверен, на каком уровне (подписка / группа ресурсов /Ресурс).

Чего мне не хватает ..?

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Прежде всего, я думаю, что использование принципалов службы было невозможно во время первоначального вопроса, так как пару месяцев назад я не нашел никакой полезной информации, реализующей его.Однако впоследствии я наткнулся на эту статью, в которой кратко объясняется, как заставить ее работать, чтобы я смог изменить использование «служебной учетной записи» для подхода принципала обслуживания.

Итак, в основном, предоставление разрешенийдля Azure AD App недостаточно.Вы также должны добавить группу безопасности, добавить свое приложение в эту группу безопасности, включить использование участников службы в Power BI Admin Portal, а затем добавить свою группу безопасности в рабочую область.После этого должно работать.

0 голосов
/ 28 января 2019

Я не верю, что этот метод можно использовать с Power BI REST API.

Поэтому я создал специального пользователя («Основная учетная запись Power BI»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...