ROPC - Получение ошибки «invalid_grant» с описанием как «AADSTS50126: Неверное имя пользователя или пароль» - PullRequest
1 голос
/ 05 марта 2019
POST /{{AAD}}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: 611fa720-e1f4-5bbc-e0f7-b7620bab24af

client_id={{client_id}}
&username=username@domain.com
&password={{password}}
&grant_type=password
&scope=https%3A%2F%2Fgraph.microsot.com%2FMail.Read
&redirect_uri=https%3A%2F%2Flocalhost%3A1234

На приведенный выше запрос я получаю ответ, как,

"error": "invalid_grant",
    "error_description": "AADSTS50126: Invalid username or password.\r\nTrace ID: a0bd31e0-59e3-4836-b654-8e449d491c00\r\nCorrelation ID: de329d02-e714-48bb-a876-387167034ba3\r\nTimestamp: 2019-03-05 11:12:51Z",
    "error_codes": [
        50126
    ]

Я использую тот же пароль для входа в почту организации. Но все же я получаю эту ошибку. И я вижу, что имя пользователя доступно в каталоге. Делегированные разрешения также предоставляются. Может кто-нибудь объяснить, что мне не хватает?

Что-нибудь ниже причины этой ошибки?

  1. Я создал приложение в своей личной учетной записи Outlook, используя https://apps.dev.microsoft.com и я пытаюсь прочитать почту организации.

  2. Наша организация использует единый знак для

1 Ответ

0 голосов
/ 05 марта 2019

Вот точный пример того, как вы можете получить токен, используя Учетные данные для пароля владельца ресурса (ROPC)

Шаг 1:

Установите URL-адрес вашего запроса следующим образом:

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

Смотрите снимок экрана

enter image description here

Вы можете получить свое имя арендатора прямо в верхней части портала Azure. Посмотрите на

снимок экрана ниже:

enter image description here

Шаг 2:

Формат заголовка запроса

enter image description here

Шаг 3:

Установите тело запроса в соответствии с информацией о заявке в следующем формате:

client_id: Ваш идентификатор клиента

client_secret: Секрет вашего приложения

имя пользователя: Ваше имя пользователя для этого приложения

пароль: Ваш пароль для этого приложения

grant_type: пароль

область действия: https: // graph.microsoft.com/.default или предпочитаемая область действия

См. Снимок экрана ниже для формата тела запроса:

enter image description here

В ответ я получил свой токен, как и ожидалось. Смотрите картинку ниже:

enter image description here

Возможная причина вашей проблемы :

  1. Личный кабинет не может быть использован для этого потока кода

  2. Это может произойти, если вы изменили секрет приложения и попытались использовать старый.

  3. Ваше имя пользователя и пароль могут не совпадать с текущим арендатором.

Вы можете попробовать этот пример выше, чтобы получить ваш запрос, как ожидалось. Вы также можете проверить портал Azure, чтобы убедиться, что ваше приложение успешно создано. Для получения дополнительной информации вы можете посмотреть на здесь

Примечание: Вы используете личный кабинет, который не подходит для этого потока. см. снимок экрана ниже: Подробнее см. официальный документ Microsoft здесь

enter image description here

...