将 PKCE 与 OpenID Connect 结合使用时,客户端是否可以使用
client_secret_basic
和 client_secret_post
作为身份验证方法,还是必须选择 None
?
这里可接受的做法是什么?是否将客户端密钥与 pkce 流程结合起来?
client secret
如果有可能暴露或不再信任客户端身份验证,则不应使用它,因此如果这是公共客户端,则最佳实践是不要使用它。
PKCE 和 客户端密钥 不 是互斥的。
它的目的与客户端身份验证略有不同,后者是为了防止任何拥有
authorization code
的人将其交易为access token
。相反,它必须是发送授权请求的同一个客户端。
如果安全地完成,客户端身份验证也具有此效果。但是,这是您已确定了客户的间接结果。