集群开启 SAML 验证

最近更新时间:2025-12-10 11:13:21

我的收藏
腾讯云 ES 集群支持开启 SAML 验证登录,本文介绍通过控制台开启 SAML 登录验证的相关说明和操作。Elasticsearch 官方对 SAML 的说明请参见

前提条件

启用 SAML 验证前需要集群 License 为白金版且开启了集群内网访问的 HTTPS 协议。

启用 SAML 验证当前不支持 icon 和 name 的自定义。


步骤1:配置 idp 生成 metadata.xml 文件

1. 创建基础配置

以使用 Okta 作为身份提供者为例,在配置 SAML 应用时按以下方式填写:

Single sign on URL: 对应的是 kibana 的回调地址。
在 ES 7.13.4 及之前版本中默认是"http://{kibana公网域名}:5601/api/security/v1/saml"
在 ES 7.13.4 之后版本中默认是"http://{kibana公网域名}:5601/api/security/saml/callback"
Audience URI : 对应的是 kibana 的公网地址:"http://{kibana公网域名}:5601"。

2. 反馈配置

点击“Show Advanced Settings”,配置 Attribute Statements 并返回给 ES 以唯一标识一个当前登录用户。

默认用户名的 Name: "urn:oid:0.9.2342.19200300.100.1.1", Value: user.lastName 或可按需求自定义。
默认用户 group 的 Name: "urn:oid:1.3.6.1.4.1.5923.1.5.1.", Value: 可按需求自定义处理。
完成上述配置后,okta 就可以生成一份对接 ES 的 metadata.xml 文件。


步骤2:配置 ES 集群对 SAML 协议的支持

1. 启用单点登录

进入集群详情页,点击单点登录的编辑按钮,将步骤 1 中的 metadata.xml 的 URL 地址填写到此处即可开启 SAML 登录。


2. 公网访问策略录入出口 IP

将允许通过公网访问 Kibana 的 IP 地址录入至公网访问策略 IP 白名单中。


3. 配置 role mapping

进入kibana公网地址,先选择 “Log in with Elasticsearch” 登录,即使用创建集群时设置的 Elastic 用户名密码登录,进入 devtools 中,录入 SAML 对应的 role_mapping。完成以下配置后,选择 SAML 登录的用户默认就是“superuser”的 role。


7.x 及以上操作步骤
PUT /_security/role_mapping/saml1
{
"roles": [ "superuser" ],
"enabled": true,
"rules": {
"field": { "realm.name": "saml1" }
}
}

GET /_security/role_mapping/saml1


6.x 操作步骤
PUT /_xpack/security/role_mapping/saml-kibana
{
"roles": [ "superuser" ],
"enabled": true,
"rules": {
"field": { "realm.name": "saml1" }
}
}

GET /_xpack/security/role_mapping/saml-kibana
完成上述配置后,即可选择 Log in with saml/saml1 登录方式。