Kibana单点登录
# 说明
Elasticsearch支持通过SAML协议单点登录Kibana。本文为您介绍IDaaS配置基于SAML协议配置本地部署的Elasticsearch,实现单点登录Kibana。
elastic官方配置文档 (opens new window)
# 集成条件
实现SAML认证,需要Elastic Stack产品安装xpack插件,版本在5.0以后的版本该插件为付费产品。
Elasticsearch的Elasticsearch.yml文件中开启xpack.security.enabled: true
# 认证配置
# IDaaS配置
添加预集成应用Kibana。
配置认证参数。
参数 说明 SP Entity ID Kibana实例的唯一标识符,Kibana实例的基本URL作为实体ID 断言消费地址 用来接受来自IdP的身份验证消息,此ACS端点仅支持SAML HTTP-POST绑定,通常配置为{kibana-url}/api/security/v1/saml ,其中{kibana-url}为Kibana基础URL。 NameID 账号名 NameID Format 默认 Audience URI 同SP Entity ID Single Logout URL {kibana-url}/logout 关于断言消费地址,在Elasticsearch 7.10版本中使用 /api/security/v1/saml时,Kibana日志中会产生warn日志: The "/api/security/v1/saml" URL is deprecated and will stop working in the next major version, please use "/api/security/saml/callback" URL instead. ,说明低版本在陆续弃用 /api/security/v1/saml, 8.0版本将彻底不支持,建议使用 /api/security/saml/callback代替。
映射配置-添加映射。
进入应用详情-授权管理-应用账号,点击添加账号按钮,选择授权用户。
# Kibana和Elasticsearch配置
登录Kibana控制台,选择Management-Stack Management,Stack Management页面,选择Security-Roles,创建角色,角色名称自定义,如saml,添加Elasticsearch、Kibana 特权。
将创建好的自定义角色与IDaaS SAML做映射,选择Management-Dev Tools,在Console标签下执行如下示例代码。
PUT /_security/role_mapping/zhuyunidaas { "roles": [ "saml" ], "enabled": true, "rules": { "field": { "realm.name": "saml1" } } }
1
2
3
4
5
6
7
8其他高阶配置,请参见官方文档 Configuring role mappings (opens new window)。
配置Elasticsearch和Kibana的YML配置文件,下载IDaaS IDP元数据IDPMetadata.xml 文件,上传至Elasticsearch的config/saml路径下,获取IDaaS的IDP元数据请参考获取IDP sp元数据。
Elasticsearch.yml配置示例如下:
xpack.security.authc.token.enabled: true xpack.security.authc.realms.saml.saml1: order: 2 idp.metadata.path: saml/IDPMetadata.xml idp.entity_id: "https://竹云IDaaS域名.bccastle.com/api/ams/saml/idp" sp.entity_id: "{kibana-url}" ## 8.0版本,建议使用 {kibana-url}/api/security/saml/callback代替 sp.acs: "{kibana-url}/api/security/v1/saml" sp.logout: "{kibana-url}/logout" attributes.principal: "nameid" attributes.groups: "roles"
1
2
3
4
5
6
7
8
9
10
11
12
13Kibana.yml配置示例如下,更多配置信息请参见Configuring Kibana (opens new window):
xpack.security.authc.selector.enabled: true ## 登录帮助地址 xpack.security.loginHelp: "**Help** info with a [link](...)" xpack.security.authc.providers: basic.basic1: order: 0 icon: "logoElasticsearch" hint: "Typically for administrators" saml.saml1: order: 1 realm: saml1 description: "Log in with SSO" ## logo地址 icon: "https://my-company.xyz/saml-logo.svg"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18修改完配置后,重启ElasticSearch和Kibana。
# 登录验证
访问Kibana控制台,单击Log in with SSO。
跳转至IDaaS认证页面。
输入用户名密码后,进入Kibana控制台。