Проблема с токеном доступа в Azure AD и Power

Я работаю с REST API Power Bi, для чего мне нужен рекламный токен Azure.

Я установил приложение в Azure AD и настроил его как.

а. Я намерен использовать этот токен доступа в своем приложении для реагирования, поэтому я настроил его как SPA. б. я разрешил поток публичного клиента. ** Я не проверял флажки «токен доступа» и «токен идентификатора», так как использую msal 2.0.

в. также указали URI перенаправления как http://localhost:4200 д. также дал ему все разрешения, необходимые мне для доступа к моему контенту powerbi (мне нужен «Dataset.ReadWrite.All)

ЭТО КОНЕЧНЫЕ ТОЧКИ ПРИЛОЖЕНИЯ AZURE

Я УСТАНОВИЛ СВОЕ ПРИЛОЖЕНИЕ REACT КАК: Я использую библиотеки @azure/msal-browser и @azure/msal-react.

Это мой объект msalConfig-

const configuration: Configuration = {
  auth: {
      clientId: "myclientidhere",//,
      authority: "https://login.microsoftonline.com/mytenantidhere",
      redirectUri: "http://localhost:4200/",
  },
  cache: {
    cacheLocation: "localStorage",
    storeAuthStateInCookie: false,
  },

}

и это моя область:

    export const loginRequest = {
  scopes: ["Dataset.ReadWrite.All"]
};

после запуска приложения я вижу всплывающее окно авторизации. я положил свои учетные данные в нем. и вдруг он выдает эту ошибку-

invalid_client: AADSTS650053: The application 'dashboard.xyz.work' asked for scope 'Dataset.ReadWrite.All' that doesn't exist on the resource '00000003-0000-0000-c000-000000000000'. Contact the app vendor. Trace ID: 77e47883-fdd3-444a-bdd3-9f3a53bc1500 Correlation ID: aa77d724-0d9f-41aa-8e47-251c6b6f9293 Timestamp: 2023-02-09 13:51:46Z

я предоставил такое же разрешение в своем рекламном приложении Azure. однако моему приложению не было предоставлено «согласие администратора», но моя учетная запись как пользователь имеет разрешение на использование этой области в powerbi.

ПРИМЕЧАНИЕ. Если я изменю свою область на «user.read» или любой другой ресурс API графа ms, я смогу получить токен доступа этой области для доступа к ресурсу API графа. но я не могу получить токен доступа для доступа к своим ресурсам powerbi.

В AZURE AD ВСЕ ВЫГЛЯДИТ ПРЕКРАСНО.

Я ГДЕ-ТО ПРОЧИТАЛ, ЧТО ЭТОТ РЕСУРС '00000003-0000-0000-c000-000000000000' указывает на ресурс graph.microsoft.com. и я нажимаю https://login.microsoftonline.com/{myTenantId}. это конечные точки моего приложения.

Я не уверен, относятся ли ресурсы powerbi к ресурсу graph.microsoft.com ('00000003-0000-0000-c000-000000000000)!!??

также на странице разрешений API моего приложения, которую я прочитал, они относятся к https://analysis.windows.net/powerbi/api, то есть 00000009-0000-0000-c000-000000000000??

я попал не в ту конечную точку или проблема в чем-то другом??

Я не разработчик React, но где-то вы должны установить область доступа для токена, и в этом случае это должно быть https://analysis.windows.net/powerbi/api/.default.

Andrey Nikolov 10.02.2023 07:19

да вы правы. по умолчанию, если мы устанавливаем какую-либо область в лазурной рекламе без имени хоста, это по умолчанию рассматривается как разрешение API графа. если мы хотим использовать любую другую область службы Microsoft, нам нужно указать ее с именем хоста. так что в моем случае я написал https://analysis.windows.net/powerbi/api/dataset.ReadWrite.A‌​ll и это сработало. примечание: разные конечные точки предназначены для разных служб ms. это только для powerbi.

navinrangar 10.02.2023 13:10
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
2
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Чтобы устранить ошибку, попробуйте следующее:

Я создал приложение Azure AD SPA и добавил разрешения API:

Примечание. Обязательно укажите область действия как https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All для доступа к содержимому PowerBI

Я сгенерировал код авторизации, используя следующую конечную точку:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/authorize?
client_id=ClientID
&response_type=code
&redirect_uri=https://jwt.ms
&response_mode=query
&scope=https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All
&state=12345
&code_challenge=codeChallenge
&code_challenge_method=S256

Поскольку согласие администратора на разрешения API не предоставляется, вы увидите экран согласия, как показано ниже:

Код авторизации был успешно сгенерирован без каких-либо ошибок, как показано ниже:

Теперь я сгенерировал токен доступа, используя следующие параметры:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

grant_type:authorization_code
client_id:ClientID
scope:https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All
code:code
redirect_uri:https://jwt.ms
code_verifier:S256

Токен доступа успешно сгенерирован с областью действия Dataset.ReadWrite.All, как показано ниже:

Чтобы устранить ошибку, измените код, как показано ниже:

   export const loginRequest = {
  scopes: ["https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All"]
};

Если проблема не устранена, попробуйте область действия как https://analysis.windows.net/powerbi/api/.default.

вы спасли меня. ты спасаешь всех. большое большое спасибо

navinrangar 10.02.2023 13:01

Рад, что проблема решилась :)

Rukmini 10.02.2023 13:03

Другие вопросы по теме

Похожие вопросы

HTTP POST для Microsoft DevOps API возвращает 404
Как получить доступ к файлу хранилища BLOB-объектов с помощью ссылки, созданной рабочим процессом приложения логики. создать URL-адрес SAS по URL-адресу пути, который не работает
Я хочу скопировать файлы из файловой системы в другую файловую систему на основе страны. Пробовал с GetMetadata, но поглощал только один файл в целевом объекте
Get-AzStorageFileContent: не удается найти учетные данные хранилища Azure
Материализованное представление в базе данных Marketing Performance DB в базе данных Azure SQL
Как получить токен с помощью ClientId и Client Secret приложения AD с библиотекой проверки подлинности Microsoft (MSAL)
Azure-ad-b2c — Как предотвратить повторное использование кода авторизации Oauth?
Как установить свойство logAnalyticsDestinationType в объекте параметров диагностики Azure Monitor?
Автоматизируйте создание правила NSG для групп безопасности сети в Azure: введите ошибку из Get-AzNetworkSecurityGroup
Azure AKS — возможно ли совместное использование агента oms и параметров диагностики?