Невозможно выполнить проверку подлинности с помощью пароля владельца ресурса OAuth2 для управления API в Azure - PullRequest
0 голосов
/ 18 сентября 2019

У меня есть мобильное приложение Flutter, которое требует аутентификации и доступа к функциям Azure, определенным в Azure API Management.Я настроил и протестировал его с предоставлением кода авторизации, и он работает нормально (использовал эту статью для руководства).Теперь я хочу посмотреть, сработает ли предоставление пароля владельца ресурса, и я не могу заставить его работать (в основном то же, что описано в упомянутой статье, но для предоставления пароля владельца ресурса).Я перенастроил настройку OAuth2 управления API следующим образом:

enter image description here enter image description here

Я также настроил мобильный клиент (в разделеКаталог по умолчанию - Регистрация приложений -> клиент моего мобильного приложения -> Поддерживаемые типы учетных записей) в качестве общедоступного клиента, чтобы разрешить поток учетных данных владельца ресурса (ROPC) (не уверен, требуется ли это).

enter image description here

Когда я выполняю аутентификацию (т. Е. Нажимаю на конечную точку токена, передавая пароль grant_type, client_id, пароль пользователя, идентификатор пользователя и области действия), я получаю следующую ошибку обратно (примечаниечто я в бесплатной пробной версии каталога по умолчанию, если это имеет значение):

Ошибка авторизации OAuth (invalid_request): AADSTS90002: Арендатор '' не найден.Это может произойти, если для арендатора нет активных подписок.Обратитесь к администратору подписки.

Но URI конечной точки токена, который я использую, содержит мой правильный идентификатор клиента, и если я выполняю поток кода аутентификации, используя те же идентификаторы клиента в URI авторизации и конечной точки токена, все работаетхорошо.

Не уверен, какую другую информацию предоставить для лучшей диагностики, поэтому спросите.

1 Ответ

0 голосов
/ 19 сентября 2019

Конфигурации верны, кроме значения области.Поскольку вы используете конечную точку v2.0, она должна быть api://{backendapp_clientId}/.default.

. Я протестировал ее на портале разработчика, и она работала, как и ожидалось.

enter image description here

Вы также можете проверить это, напрямую позвонив на конечную точку токена.

enter image description here

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