【发布时间】:2018-12-28 08:40:32
【问题描述】:
有一个行为不端的 OpenID Connect“兼容”iDP(它现在应该保持无名) - 在使用范围 openid 和任何包含 id_token 的 response_type 时会引发错误。这肯定是已报告的错误。
当范围包括 openid 并且 response_type 只是“token”时,相同的 iDP 也会在隐式流中返回 id_token。这弄乱了广泛使用的 oidc-client npm 包,它报告了一个错误“Not expecting id_token in response”——根据 OIDC 规范,这是严格正确的
但这引出了一个有趣的问题:
鉴于 OIDC 规范第 1 节的基本前提:
OpenID Connect 将身份验证作为 OAuth 的扩展来实现 2.0授权流程。客户端通过在授权中包含 openid 范围值来请求使用此扩展 请求。
3.2.2.1 节说
注意:虽然 OAuth 2.0 还定义了令牌响应类型值 隐式流,OpenID Connect 不使用此响应类型, 因为不会返回任何 ID Token。
因此将两者一起使用应该是错误的吗?或者 openid 在范围内的事实是否应该导致实现默认“添加” id_token 到隐式流的 response_type ?
【问题讨论】:
标签: openid-connect oidc-client-js