0

我正在尝试使用 CAS 6.1.4 的 OAuth2 功能,特别是授权代码授权类型的证明密钥代码交换 (PKCE) 变体:我设置了所有内容,并且授权代码在其基本形式和 PKCE 变体中均有效。

但是,即使使用 PKCE 变体,似乎也必须提供client_secret请求参数——我还没有找到避免这种情况的方法。这似乎违反直觉,因为 PKCE 是为无法安全保存客户机密的公共客户引入的。Apereo 网站上RCF 7636 规范和文档对是否应该通过客户端密钥进行身份验证授权码请求保持沉默。

如果我错过了什么,请告诉我。

4

1 回答 1

3

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

事实证明,您可以通过简单地省略相应 CAS 服务的字段来在 CAS 中定义公共客户端。(有关OAuth2 客户端定义的完整描述,clientSecret请参见此处,从 CAS 6.1.x 开始。)。
公共客户端不需要client_secret请求参数,并且可以在不提供该参数(PKCE 变体与否)的情况下行使授权代码授权类型。

并不是说这是在任何地方写的,我是通过良好的旧试验和错误发现的。

于 2020-05-13T14:36:35.620 回答