Получение 401 неавторизованного доступа при доступе к Power BI API

Вот скриншот вызова API в Postman. Я получаю токен и использую его здесь.

введите здесь описание изображения

Я получаю 401 Неавторизованный без ответа. Это из-за разрешений при регистрации приложения?

У меня есть следующие разрешения для службы Power BI и Windows Azure Active Directory:  введите описание изображения здесь введите описание изображения здесь

Но когда я нажимаю на предоставление разрешений, я получаю сообщение об ошибке:

введите здесь описание изображения

Итак, нужно ли администратору предоставлять разрешение для этого приложения (веб-приложения / API), чтобы оно работало?

ОБНОВЛЕНИЕ

Это API, который я вызываю, чтобы получить токен доступа.

https://login.microsoftonline.com/parkercorp.onmicrosoft.com/oauth2/token

ПОЧТОВЫЙ ТЕЛО:

client_id: app_registration_clientId
client_secret: app_registration_client_secret
grant_type: client_credentials
resource: https://analysis.windows.net/powerbi/api
scope: openid

Это декодированный токен, предложенный Томом Саном.

введите здесь описание изображения


person MAK    schedule 11.10.2018    source источник


Ответы (2)


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

person Jason P    schedule 11.10.2018
comment
Я снял отметку 2 в службе Power BI с надписью «Требуется администратор» и попытался щелкнуть по предоставлению разрешений, но получил сообщение об ошибке, в котором говорилось, что я не уполномочен предоставлять разрешения. - person MAK; 11.10.2018
comment
Есть ли у этого приложения разрешения для других API, требующих администратора? - person Jason P; 11.10.2018
comment
Это приложение предназначено только для API Power BI. - person MAK; 11.10.2018
comment
У вашего клиента AAD может быть включен параметр, запрещающий обычным пользователям предоставлять разрешения. Это означает, что это должен делать ваш администратор. - person juunas; 12.10.2018
comment
Джейсон, пожалуйста, проверьте ответ, который я опубликовал. Это было слишком долго для комментария. @juunas - person MAK; 16.10.2018

Итак, нужно ли администратору предоставлять разрешение для этого приложения (веб-приложения / API), чтобы оно работало?

Основная причина неудачного предоставления разрешения заключается в том, что вам необходимо согласие администратора, чтобы он мог это сделать.

Если вы хотите получить доступ к ресурсу powerBI, вам просто нужно проверить предварительное разрешение службы PowerBI.

Но, согласно вашему снимку экрана, вы пытаетесь вызвать Get Dashboard API.

ПОЛУЧИТЕ https://api.powerbi.com/v1.0/myorg/dashboards/ {dashboardKey}

В зависимости от документа необходимая область действия - Dashboard.ReadWrite.All или Dashboard.Read.All. Нет необходимости требовать согласия администратора.

введите здесь описание изображения

Ошибка 401 означает, что нет разрешения на доступ к ресурсу.

Мы могли бы использовать JWT.io для декодирования токена для проверки аудита и разрешений.

введите здесь описание изображения

Если возможно, вы можете добавить код, как получить токен, который будет более полезным.

person Tom Sun - MSFT    schedule 19.10.2018
comment
Я обновил свой вопрос. Я использую эту конечную точку для получения токена: login.microsoftonline.com/parkercorp .onmicrosoft.com / oauth2 / - person MAK; 19.10.2018
comment
Несмотря на то, что все разрешения, которые я предоставил этому приложению, не требуют наличия администратора, но всякий раз, когда я нажимаю на предоставление разрешений, я получаю сообщение об ошибке, в котором говорится, что не удалось предоставить разрешения. - person MAK; 19.10.2018
comment
Похоже, у вашего приложения есть разрешения для других API, требующих администратора. - person Tom Sun - MSFT; 22.10.2018
comment
Я не думаю, что это так. На скриншоте, который я предоставил, есть только служба Power BI и AD. - person MAK; 22.10.2018
comment
Согласно вашему токену декодирования, нет разрешения на Dashboard.Read.App или Dashboard.ReadWrite.All, попробуйте добавить его в свою область видимости. - person Tom Sun - MSFT; 24.10.2018
comment
В своем запросе я определил область действия: область действия - openid. Могу ли я заменить это? - person MAK; 24.10.2018
comment
пожалуйста, попробуйте добавить Dashboard.ReadWrite.All или Dashboard.Read.All в вашу область. - person Tom Sun - MSFT; 25.10.2018
comment
Да, я пробовал это, но "scp" по-прежнему не отображается, когда я декодирую токен - person MAK; 25.10.2018
comment
@MAK вы преодолели эту проблему? так как я столкнулся с той же проблемой - person mdargacz; 30.05.2019
comment
@mdargacz Да, я просто выбрал разрешения, не требующие администратора. Я хотел получить все информационные панели в своем рабочем пространстве. Настоящая причина, по которой я получал 401, заключалась в том, что наша учетная запись была федеративной, и мне пришлось использовать ADAL для получения данных из API. - person MAK; 30.05.2019
comment
@MAK, какой SDK вы использовали? Поскольку я пытался использовать github.com/microsoft/PowerBI-Developer-Samples. И пример NodeJs, и пример C # показывают мне 401. это разрешения i.imgur.com/0nTzXPG. png - person mdargacz; 30.05.2019
comment
@mdargacz Я использовал .NET SDK. Мне нравятся ваши разрешения. - person MAK; 30.05.2019