「应用安全」OAuth和OpenID Connect的全面比较( 九 )

但是 , OpenID Connect已将id_token添加为response_type的新值 , 并明确允许将code , token和id_token的任意组合作为response_type的值 。 此外 , 也没有添加 。 详情见“3 。 身份验证“OpenID Connect Core 1.0和OAuth 2.0多响应类型编码实践” 。

它需要进行重大更改才能修改在假定选择或选择的情况下编写的现有代码 , 以便它可以处理可能值和混合流的任意组合 。 因此 , 如果将来有可能支持OpenID Connect , OAuth库的实现者应该从头开始用OpenID Connect编写它 。 换句话说 , 现有的OAuth库无法在不进行重大修改的情况下支持OpenID Connect 。

例如 , Spring Security OAuth 。 此库尚未支持OpenID Connect(截至2016年6月) 。 对于要支持OpenID Connect的库 , 首先 , 请求参数response_type必须能够采用除代码和令牌之外的其他值 。 对它的请求被列为“问题#619处理其他response_types” , 但它尚未得到解决 , 并且该主题的最后一条评论是“任何评论都非常受欢迎 , 因为事实证明(正如我预测的那样)a大型重构练习 。 “我阅读了一些相关的源文件 , 发现支持OpenID Connect需要进行大的修改才是真的 。 除非一些公司在财务上支持该项目 , 否则我担心该项目需要很长时间才能支持OpenID Connect 。

推荐阅读