📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7.6-8.9

简要来说,当Elasticsearch在OAuth 2.0身份验证过程中无法交换授权码以获取ID令牌时,就会发生此错误。这可能是由于客户端凭据不正确、重定向URI无效或网络问题造成的。要解决此问题,请确保客户端ID和密钥正确,重定向URI与在OAuth 2.0提供者处注册的URI匹配,并且Elasticsearch服务器能够访问OAuth 2.0提供者的令牌端点。此外,请检查服务器日志以获取更详细的错误信息。

Log Context #

Log “Failed to exchange code for Id Token” class name is OpenIdConnectAuthenticator.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考:

tokenErrorResponse.getErrorObject().getCode();
 tokenErrorResponse.getErrorObject().getDescription()
 )
 );
 } else {
 tokensListener.onFailure(new ElasticsearchSecurityException("Failed to exchange code for Id Token"));
 }
 } else {
 final OIDCTokenResponse oidcTokenResponse = OIDCTokenResponse.parse(
 JSONObjectUtils.parse(EntityUtils.toString(entity; encoding))
 );