Попытка использовать конвергентную учетную запись Microsoft и Azure AD с mod_auth_openidc
Прочитав следующую статью:
Я попытался реализовать поток кода 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 при использовании нескольких провайдеров.