阅读以下文章后:
我尝试按照以下文档实现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注册了我的应用,并完成了所有步骤。我在微软的登录屏幕,然后是权限屏幕,当它重定向回我的网站并点击mod_auth_openidc时,我收到一条错误消息:
错误:
OpenID Connect Provider返回错误:处理响应类型时出错。
在我的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端是否存在错误或配置问题?
答案 0 :(得分:1)
MS网页上的示例在身份验证请求中使用不同的响应模式和响应类型:
&response_mode=form_post&response_type=code+id_token
这两个都受mod_auth_openidc
支持,因此您可以通过包含以下内容来应用类似内容:
OIDCResponseType id_token
OIDCResponseMode form_post
在Apache配置中或在使用多个提供程序时使用Microsoft的.conf
文件中的关联基元。