Запрос авторизации для получения доступа от имени пользователя приводит к странице cookiesDisabled - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь выполнить запрос на авторизацию, следуя документации об этом в Microsoft (Получение доступа от имени пользователя: https://docs.microsoft.com/en-us/graph/auth-v2-user). Я делаю запрос, используя Azure приложения Logi c. Я уже зарегистрировал приложение в Azure AD и дал ему следующие разрешения (раньше я использовал приложение для нескольких разных запросов, поэтому оно содержит много ненужных разрешений API). Мне уже удалось получить доступ без пользователя (https://docs.microsoft.com/en-us/graph/auth-v2-service). Теперь я действительно не знаю, что я делаю неправильно, поэтому, если у кого-то есть представление о том, что это, пожалуйста, дайте мне знать. Я постараюсь объяснить как можно более тщательно, используя скриншоты, чтобы вы, ребята, поняли, что я пытаюсь сделать.

На первом экране ниже вы можете видеть разрешение API, которое я добавил для регистрации моего приложения. Для этого запроса я запрашиваю авторизацию только со стрелкой рядом с ней (как вы увидите позже).

enter image description here

На втором На экране вы можете увидеть HTTP-запрос поста, который я пытаюсь сделать для конечной точки авторизации. Я размыл Арендатора и Client_id по соображениям конфиденциальности. Я только добавил необходимые параметры в теле, как описано Microsoft. В параметре scope вы можете видеть разрешение API, которое я запрашиваю.

HTTP POST request

На третьем снимке экрана вы можете увидеть результат запроса , Вместо того, чтобы получать код авторизации в соответствии с запросом, я получаю HTML тело.

enter image description here

Когда я вставляю это тело HTML в браузер, оно дает мне следующий результат:

enter image description here

Понятия не имею, что я делаю неправильно. Я трижды проверил, чтобы убедиться, что cookie-файлы включены, что сторонние cookie-файлы не отключены, и добавил login.microsoftonline на мои доверенные сайты.

Я начинаю думать, что делаю что-то очень простое неправильно, но я не могу понять, что именно. Любая помощь приветствуется! : D

1 Ответ

1 голос
/ 10 марта 2020

Извините, я не могу добавить комментарий, поэтому публикация в качестве ответа

То, что вы пытаетесь реализовать, это поток предоставления кода авторизации OAUTH 2.0. В потоке предоставления кода авторизации выполняются следующие шаги: 1) пользователю предоставляются области, которые требуются приложению при доступе к определенным ресурсам; 2) пользователь авторизует это. и пользователь перенаправляется на URL-адрес перенаправления. 3) Затем приложение обменивается кодом, отправленным с URL-адресом перенаправления, чтобы получить действительный токен, который в этом случае будет отправлен в Microsoft Graph для проверки. 4) Затем пользователь видит полученную информацию.

Основная суть потока предоставления кода авторизации заключается в том, что « Требуется авторизация пользователя ». Это означает, что этот поток используется при вызове. от клиента браузера, где пользователь фактически взаимодействует. Этот поток не должен go через Azure Logi c приложений. Если вы хотите, чтобы служба или демон имели доступ к ресурсам, в этом случае вам следует использовать поток грантов Client Credentials

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