OAuth2与CAS 6.1.4:PKCEauthorization_code授予类型是否需要客户端密码?

时间:2020-03-04 15:39:30

标签: oauth-2.0 cas pkce

我正在尝试使用CAS 6.1.4的OAuth2功能,尤其是 authorization_code 授予类型的证明密钥交换(PKCE)变体:我进行了所有设置,并 authorization_code 既可以使用其基本形式,也可以使用PKCE变体。

但是,即使使用PKCE变体,似乎也必须提供 client_secret 请求参数 –我没有找到避免这种情况的方法。这似乎是违反直觉的,因为PKCE是为无法安全保存客户机密的公共客户引入的。 RCF 7636 specsdocumentation on the Apereo site对客户端授权是否应认证 authorization_code 请求没有任何意见。

请告诉我我是否错过某件事。

1 个答案:

答案 0 :(得分:1)

在这里回答我自己的问题,以防万一有人偶然发现了这个问题。

事实证明,您可以在CAS中定义公共客户端,只需省略相应CAS服务的clientSecret字段即可。 (有关CAS 6.1.x的OAuth2客户端定义的完整说明,请参见here。)。
公开客户端不需要client_secret请求参数,并且可以执行 authorization_code 授予类型而无需提供该参数(是否提供PKCE变体)。

这不是写在任何地方的,我是通过很好的反复试验发现的。