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

版本: 7.7-8.9

简而言之,当Elasticsearch无法对SAML(安全断言标记语言)消息进行Base64解码时会出现此错误,这是因为消息没有正确使用Base64编码。这可能是由于身份提供商提供的SAML断言存在问题,或者是Elasticsearch配置错误造成的。要解决此问题,您可以:1) 验证来自身份提供商的SAML断言,确保它已正确进行Base64编码。2) 检查Elasticsearch的SAML配置设置是否存在错误。3) 如果问题仍然存在,考虑重新配置您的SAML设置或联系您的身份提供商以获取进一步的帮助。

日志上下文 #

日志 “SAML message cannot be Base64 decoded” 的类名是 SamlAuthnRequestValidator.java. 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的用户参考:

private byte[] decodeBase64(String content) {
 try {
 return Base64.getDecoder().decode(content.replaceAll("\s+"; ""));
 } catch (IllegalArgumentException e) {
 logger.info("Failed to decode base64 string [{}] - {}"; content; e);
 throw new ElasticsearchSecurityException("SAML message cannot be Base64 decoded"; RestStatus.BAD_REQUEST; e);
 }
 }  private byte[] inflate(byte[] bytes) {
 Inflater inflater = new Inflater(true);