Проблемы с аутентификацией веб-приложения Azure AD Oauth2/OpenID Connect

У меня возникают проблемы с проверкой подлинности нашего кода в Azure AD. Я настроил приложение и настроил наш код для запроса "кода" авторизации. Это работает, но когда я пытаюсь обменять "код" на "access_token", я попадаю во множество ошибок. Сначала я получаю сообщение об ошибке "отсутствует ресурс". Я копался в Манифесте и извлекал идентификатор ресурса для прохождения, но затем я получаю ошибку "пропущенный client_secret".

Но я не уверен, что иду по правильному пути здесь. Во-первых, я не уверен, к каким ресурсам, если таковые имеются, мне нужно получить доступ. Так как мы просто пытаемся аутентифицироваться, я не думаю, что мне нужно запрашивать доступ к любым другим API, не так ли? Может быть, но я не уверен, что или что я буду делать с ними.

Кроме того, я нашел этот пост в блоге, который выглядел обнадеживающим: http://www.andrewconnell.com/blog/azure-ad-oauth2-openid-connect

Он заставляет это выглядеть так, будто я должен иметь возможность запросить и "код", и идентификатор OpenID Connect в первоначальном запросе авторизации. Что на первый взгляд, кажется, все, что мне нужно сделать. Но когда я пытаюсь добавить "+ id_token" к параметру "code" resource_type, как он предлагает, я получаю ошибку "отсутствует одноразовый номер". Если я включаю параметр "nonce" со случайной строкой, он проходит без ошибок, и он попадает в мой redirect_uri, но я не получаю никаких данных обратно в ответе и, конечно, не информацию о профиле, которую он указывает, которую я должен видеть в сообщении в блоге.,

2 ответа

Решение

Позволяет ли добавление response_mode=form_post вашему приложению получать код и id_token?

Пример запроса на вход (GET)

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code+id_token&response_mode=form_post&scope=openid&client_id=insert-client-id&nonce=insert-nonce&redirect_uri=insert-redirect-uri

Если вы хотите аутентифицироваться, вы определенно хотите использовать OpenId Connect - OAuth2 предназначен для авторизации вашего приложения в качестве клиента для другого ресурса, а не для получения токена для входа в систему. Я рекомендую взглянуть на http://aka.ms/aaddev для обзоров и кратких обзоров. В частности, ознакомьтесь с объяснением топологии и кратким описанием процедуры проверки подлинности openid connect.

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