我正在为OpenID Connect协议编写自己的代码。基本上,我打算通过Objectify库使用Jersey和Google的数据存储在Google App Engine的平台上编写我自己的提供商和相关内容。
我正在实施(访问/刷新)令牌端点,并且我需要处理此客户端身份验证。我只是想知道是否有预设的身份验证方案'如果客户端在注册过程中没有设置client_secret_basic
(或者数据存储条目中设置的任何内容),我可以发送的关键字。
对于使用以下方法的失败客户端身份验证,该方案在WWW-Authenticate标头(401)中用作响应:
client_secret_basic
:Basic
,client_secret_post
:???,client_secret_jwt
:???,private_key_jwt
:???,none
:显然没有。我已经看过一些开源实现,nimbus'和OAuth-Apis',但他们似乎没有处理这个小问题(他们只回应OAuth2 rfc6749#section-5.2.中定义的一般错误响应)
如果没有预定义的关键字,那么我想我必须自己编造。但如果它们存在就会很棒。
答案 0 :(得分:0)
authoritative list在IANA上。在那里,您可以找到这些工具:
其中哪个是client_secret_post
,client_secret_jwt
和private_key_jwt
?没有。您需要将它们映射到上面注册列表中的一个,或者返回您自己的值。更好的是,您可以将草稿提交给OAuth工作组或OpenID基金会,以使上述IANA注册中心得到更新,以解决这些遗漏的情况。然后,我们都可以互操作:-)