本文介绍如何通过配置安全断言标记语言SAML(Security Assertion Markup Language)的身份提供者IDaaS(Alibaba Cloud
Identity as a Service)和服务提供者Elasticsearch及Kibana,实现单点登录Kibana控制台。
背景信息
Elasticsearch支持SAML单点登录(SSO)到Kibana。在SAML术语中,Elasticsearch和Kibana作为服务提供者SP(Service
Provider),支持SAML 2.0 协议的Web浏览器SSO和SAML 2.0 Single Logout配置 ,这使您能够使用任何符合SAML 2.0 的身份提供者IDP(
IDentity Provider)访问阿里云Elasticsearch和Kibana,例如阿里云应用身份服务IDaaS(Alibaba Cloud Identity
as a Service)、联合身份验证服务ADFS(Active Directory Federation Services)等。本文以IDaaS为例进行介绍。
本文中涉及的术语解释如下:
- 阿里云应用身份服务IDaaS:是阿里云为企业用户提供的一套集中式身份、权限、应用管理服务,IDaaS支持多种产品,例如EIAM、CIAM等。详细信息请参见什么是IDaaS。
- 安全断言标记语言SAML:基于XML协议,使用包含断言(Assertion)的安全令牌,在身份提供者IDP和服务提供者SP之间传递身份信息,实现基于网络跨域的单点登录。SAML协议是成熟的认证协议,在公有云和私有云中有非常广泛的运用。详细信息请参见SAML。
- 单点登录SSO(Single Sign On):是指在多个应用系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统。详细信息请参见单点登录和身份联邦。
注意事项
目前,SAML单点登录仅支持后端手动配置,您需要先参考本文,在测试环境配置并测试成功后,再提交工单,将IDaaS SAML元配置文件、elasticsearch.yml和kibana.yml配置文件提供给技术人员帮您配置。
步骤一:配置IDaaS SAML应用
- 登录IDaaS管理平台,进入EIAM实例,添加SAML应用。
- 在添加应用(SAML)面板,单击目标SigningKey右侧的选择,配置IDP认证ID及SP认证信息。

您需要配置以下参数,其他参数保持默认。
参数 |
说明 |
应用名称 |
自定义SAML应用的名称。 |
IDP IdentityId |
在IDaaS中设置的认证参数,需要将此参数配置到SP中,可设置为IDaaS。 |
SP Entity ID |
服务提供者SP的访问URL。本文的服务提供者为Kibana,因此需要配置为Kibana服务的基础访问URL,并使用HTTPS协议。 |
SP ACS URL(SSO Location) |
断言消费服务ACS端点,一般为Kibana的URL,用来接收来自IDP的身份验证消息。此ACS端点仅支持SAML HTTP-POST绑定,通常配置为${kibana-url}/api/security/v1/saml ,其中${kibana-url} 为Kibana的基础访问URL。
|
NameldFormat |
名称标识格式类型。请设置为urn:oasis:names:tc:SAML:2.0:nameid-format:persistent。
|
Binding |
选择默认的POST方式。
|
Assertion Attribute |
断言属性。名称可自定义,值需要选择应用子账户。
|
账户关联方式 |
选择账户映射。
|
- 单击提交。
- 在系统提示弹出框中,单击立即授权,为应用授权。
说明 应用授权之前,请确保已经同步或创建应用侧账户信息,详细信息请参见
IDaaS账户。
- 参考下图,选择对应账户,单击保存,确认后完成授权。
- 从已创建的IDaaS应用中导出IDaaS SAML元配置文件。
- 将导出的文件通过提交工单的形式提交给阿里云Elasticsearch技术支持人员。
提交后,技术人员会将SAML元配置文件上传至elasticsearch的config/saml路径下,以备后用。您也可以在自建Elasticsearch环境中进行测试。
步骤二:创建自定义角色并配置elastic SAML
- 登录目标实例的Kibana控制台。
- 创建自定义角色。
- 将角色与SAML进行映射。
PUT /_security/role_mapping/idaas-test
{
"roles": [ "admin_role" ],
"enabled": true,
"rules": {
"field": { "realm.name": "saml1" }
}
}
说明 roles参数值需要替换为上一步创建的角色名称。
- 分别在Elasticsearch和Kibana的YML配置文件中,添加SAML信息。
- 将配置后的yml文件通过提交工单的形式提交给阿里云Elasticsearch技术支持人员。
提交后,技术人员会按照您提交的文件内容,在后端更新您集群的yml文件。
步骤三:验证Kibana单点登录
待技术人员配置完成后,验证Kibana单点登录。
- 进入Kibana控制台登录页面,单击Log in with saml/saml1。
- 输入IDaaS关联的账号,单击提交。
登录成功后的页面如下图。
