此错误的含义是什么:“只能使用一种机制提供客户端身份验证”

STL*_*key 4 authentication api session token onelogin

我正在到达以下端点

https://<my company>.onelogin.com/oidc/token
Run Code Online (Sandbox Code Playgroud)

有时我会收到以下错误响应,但我不确定这意味着什么。

{"error":"invalid_request","error_description":"client authentication must only be provided using one mechanism"}
Run Code Online (Sandbox Code Playgroud)

我将以下字段作为参数发送:

grant_type=授权码

代码=已编辑

redirect_uri=已编辑

client_id=已编辑

client_secret=已编辑

谁能解释一下为什么这个端点间歇性失败?

K.W*_*.Wu 6

我们已经弄清楚是什么导致了这个“单一机制”问题。我们向 OneLogin 技术支持团队发送了电子邮件并收到了以下回复:

正如您在我们的文档中看到的,“client_secret”的位置取决于您的令牌端点身份验证方法设置。API参考

如果身份验证方法 = POST,则正文中包含“client_secret”。

如果身份验证方法=基本,则“client_secret”被编码并放置在授权标头中。

您的应用程序当前在授权标头和 POST 正文中发送此值。在过去,这不会是一个问题,但随着规范的收紧,它将导致您的应用程序出现 400 错误。

他们很快就会更新他们的文档,但现在,请使用本指南来消除应用程序中的“单一机制”错误。