尝试将融合的Microsoft帐户和Azure AD与mod_auth_openidc一起使用

时间:2015-09-11 21:18:54

标签: azure-active-directory windows-live-id 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注册了我的应用,并完成了所有步骤。我在微软的登录屏幕,然后是权限屏幕,当它重定向回我的网站并点击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端是否存在错误或配置问题?

1 个答案:

答案 0 :(得分:1)

MS网页上的示例在身份验证请求中使用不同的响应模式和响应类型:

&response_mode=form_post&response_type=code+id_token

这两个都受mod_auth_openidc支持,因此您可以通过包含以下内容来应用类似内容:

OIDCResponseType id_token
OIDCResponseMode form_post

在Apache配置中或在使用多个提供程序时使用Microsoft的.conf文件中的关联基元。