我正在从Google OpenID 2.0迁移到OpenID Connect。我目前正在使用Microsofts ACS,它使用Googles折旧的OpenID 2.0进行身份验证。这意味着我的领域自动设置为“https://mywebsite.accesscontrol.windows.net:443/v2/openid”。
ACS没有升级计划,因此我已开始直接与Google OpenID Connect集成。我正在关注Googles migration documentation,它说我可以添加openid.realm
参数(设置为OpenID 2.0使用的域),然后获取映射现有用户帐户所需的openid_id。此外,它表示redirect_uri
需要与openid.realm
相同。我想出于安全原因。
所以我的问题是我无法将重定向uri设置为与领域相同,因为领域是ACS端点,例如
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=id.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fmywebsite.com%3A2018%2F&scope=openid%20profile%20email&state=state&openid.realm=https%3A%2F%2Fmywebsite.accesscontrol.windows.net%3A443%2Fv2%2Fopenid
我尝试将它们设置为不同但我收到错误
'Realm与redirect_uri / origin不匹配。错误代码:5'
Google计划支持此类案例吗?
有关如何解决这个问题的想法吗?
答案 0 :(得分:0)
老问题,但如果仍然很重要,我认为Google docs实际上说:
"找到您的应用程序redirect_uri
并进行更改(如有必要),使其与您的OpenID 2.0 openid.realm
值匹配,根据匹配规则在section 9.2 of the OpenID 2.0 spec"
归结为域匹配,redirect_uri
是openid.realm
中路径的子路径(如果有的话)。
由于您的openid.realm
包含了一条路径,我认为您已经搞砸了,您将不得不在服务器中设置某种重定向以将旧的redirect_url
映射到您的新路。值得庆幸的是,在我的情况下,我可以将redirect_url
设置为任何新路径,因为我的openid.realm
只有一个域名。