Google OpenID Connect:在提供" max_age"时收到500错误验证请求的参数

时间:2015-04-20 12:59:13

标签: php authentication google-oauth google-openid openid-connect

根据Google的要求,我们正在尝试完成从Google之前的OpenID身份验证流程到新OpenID Connect实施的迁移。在我们尝试使用max_age参数(在openid-connect-core spec中定义)之前,所有内容都相对简单,该参数用于替换OpenID pape扩展参数:max_auth_age

提供max_age参数并不会立即中断身份验证请求,但只有在用户成功通过Google重新验证身份后才能解析;之后Google会返回500错误:

  
      
  1. 这是一个错误。
  2.         

    发生错误。请稍后再试。这就是我们所知道的。

放弃参数可以避免500错误,但不能解决问题,因为我们需要在进入我们网站的某些区域之前重新进行身份验证。

身份验证请求网址似乎已正确构建且有效。同样,没有max_age参数,它工作正常。 Example request with max_age=0

2 个答案:

答案 0 :(得分:1)

Google不尊重max_age参数,可能会被视为不属于该参数。然而,他们有合理的理由(参见:http://lists.openid.net/pipermail/openid-specs-ab/Week-of-Mon-20150323/005445.html)归结为这样一个事实,即他们不希望RP完全控制重新认证,其中一个尺寸适合所有& #34;功能和一些其他安全注意事项。

我希望谷歌的某些人能够在这里回复他们的计划,但是现在你无能为力。

答案 1 :(得分:1)

截至本周,Google接受max_age参数,并在auth_time通过时在ID令牌中返回max_age声明。

但是,无论max_time参数的值如何,都不会提示用户根据会话时间重新进行身份验证,因为这不是Google支持的模式。相反,只有在认为有必要时(例如,用户从新位置访问其帐户),才要求用户重新进行身份验证。

如果您需要在自己的网站上重新验证用户,建议您通过其他方式这样做。