1

阅读以下文章后:

http://blogs.technet.com/b/ad/archive/2015/08/12/azure-ad-microsoft-account-preview-sign-in-personal-and-work-accounts-using-a-single-堆栈.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 端是否存在错误或配置问题?

4

1 回答 1

1

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

&response_mode=form_post&response_type=code+id_token

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

OIDCResponseType id_token
OIDCResponseMode form_post

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

于 2015-09-11T21:36:30.663 回答