У меня есть консольное приложение, которое использует 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",
Я также рассмотрел назначение субъекту приложения / службы роли участника, но я не уверен, на каком уровне (подписка / группа ресурсов /Ресурс).
Чего мне не хватает ..?