版本: 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);





