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

2年前 , 我发布了一个问题“应用程序类型(OpenID Connect)是否与客户端类型(OAuth 2.0)对应?”到Stack Overflow , 但我无法得到任何答案 。 所以我自己调查和回答 。 如果有兴趣请看 。

6.3 。 客户秘密

客户秘密的长度应该是多长时间?

例如 , “OpenAM管理指南”使用密码作为客户端机密值的示例 。 下面是12.4.1的截图 。 将OpenAM配置为授权服务器和客户端 。

似乎OpenAM允许用户使用短字符串作为客户端密钥 。

另一方面 , 在Authlete的实现中 , 客户端机密自动生成并变得像下面那样长 。

GBAyfVL7YWtP6gudLIjbRZV_N0dW4f3xETiIxqtokEAZ6FAsBtgyIq0MpU1uQ7J08xOTO2zwP0OuO3pMVAUTid

这个长度的原因是我想支持512位的对称签名和加密算法 。 例如 , 我想支持HS512作为JWS的签名算法 。 因为客户机密码必须具有512位或更多的熵以支持HS512 , 所以上述示例的长度是86 , 这是使用base64url编码512位数据的结果 。

推荐阅读