Попытка использовать конвергентную учетную запись Microsoft и Azure AD с mod_auth_openidc

Прочитав следующую статью:

http://blogs.technet.com/b/ad/archive/2015/08/12/azure-ad-microsoft-account-preview-sign-in-personal-and-work-accounts-using-a-single-stack.aspx

Я попытался реализовать поток кода OpenID Connect/Oauth согласно документации по адресу:

https://azure.microsoft.com/en-us/documentation/articles/active-directory-appmodel-v2-overview/

Я использую mod_auth_openidc в качестве своей проверяющей стороны (которая работает как с Google, так и с моим собственным поставщиком OpenID.

Я зарегистрировал свое приложение на https://apps.dev.microsoft.com/ и прошел все шаги. Я получаю экран входа в Microsoft, затем экран разрешений, и когда он перенаправляет обратно на мой сайт и нажимает mod_auth_openidc, я получаю сообщение об ошибке:

Ошибка:

Поставщик OpenID Connect возвратил ошибку: Ошибка в обработке типа ответа.

В моих журналах ошибок Apache я получаю: oidc_proto_validate_code_response: requested flow is "code" but no "access_token" parameter found in the code response, referer: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&scope=openid&client_id=xxx&state=yyy&redirect_uri=https%3A%2F%2Fdst-dev.mydomain.com%2Foauth2callback&nonce=zzz

а также

oidc_proto_resolve_code_and_validate_response: code response validation failed,

Я пытаюсь понять, в чем проблема. Есть ли проблема с тем, что Microsoft отправляет mod_auth_openidc, или есть ошибка или проблема конфигурации на стороне mod_auth_openidc?

1 ответ

Решение

Пример на веб-страницах MS использует другой режим ответа и тип ответа в запросе аутентификации:

&response_mode=form_post&response_type=code+id_token

оба поддерживаются mod_auth_openidc чтобы вы могли применить нечто подобное, включив:

OIDCResponseType id_token
OIDCResponseMode form_post

в конфигурации Apache или с помощью связанных примитивов в .conf файл для Microsoft при использовании нескольких провайдеров.

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