亚马逊AWS官方博客
向使用 SAML 和 Okta 的 Open Distro for Elasticsearch Kibana 添加单点登录 (SSO)
Open Distro for Elasticsearch Security 使用 SAML 2.0 协议的 Web 浏览器单点登录 (SSO) 配置文件。这使您能够使用任何符合 SAML 2.0 的身份提供商 (IdP) 配置联合访问。在前一篇博文中,我讨论了如何使用 Microsoft Active Directory Federation Services (ADFS) 设置基于 SAML 的 SSO。在此博文中,我将讨论特定于 Okta 的配置。
先决条件
- 安装并配置 Open Distro for Elasticsearch
- 安装并配置 Kibana。记下 Kibana 服务器完全符合条件的域名 (FQDN),设置为 kibana_base_url 和 kibana_port(默认值为 5601)。
- 在 Elasticsearch 和 Kibana 上启用 SSL – 大多数身份提供者都会如此要求。
- 创建或获取您的 Okta 账户的详细信息。
- 在 Okta 中创建用户并分配到组。本文中,我已创建三个用户 – esuser1、esuser2 和 esuser3 – 和两个组 – ESAdmins 和 ESUsers。组成员关系在此显示:
用户 | Okta 组 | Open Distro Security 角色 |
esuser1 | ESAdmins | all_access |
esuser2 | ESUsers | readall |
esuser3 | 无数据 | 无数据 |
Okta 配置
在您的 Okta 账户中,点击应用程序 -> 添加应用程序 -> 创建新应用程序。
在下一个屏幕中,将 Web 应用程序选为类型,将 SAML 2.0 选为身份验证方法,并点击创建。在下一个屏幕中,键入应用程序名称并点击下一步。
在 SAML 设置中,设置单点登录 URL 和受众 URI(SP 实体 ID)。输入下面的 kibana url
作为 单点登录 URL。
https://<kibana_base_url>:<kibana_port>/_opendistro/_security/saml/acs
确保将 kibana_base_url
和 kibana_port
替换为先决条件中提到的实际 Kibana 配置。在我的设置中,此配置为 https://new-kibana.ad.example.com:5601/...
。
为受众 URI 添加一个字符串。您可以在此选择任何名称。我使用的是 kibana-saml
。您将在 Elasticsearch Security 插件 SAML 配置中使用此名称作为 SP-entity-id
。
您将使用 Okta 的组属性声明将用户的组成员关系从 Okta 传递到 Elasticsearch。将名称设置为“角色”。您选择的名称必须与 Open Distro Security 配置中定义的 roles_key
匹配。点击下一步和完成。
在应用程序设置屏幕中,点击身份提供商元数据链接下载元数据 XML 文件并将其复制到 Elasticsearch 配置目录。将 Open Distro Security 的 config.yml
文件中的 idp.metadata_file
属性设置为 XML 文件的路径。该路径必须相对于 config
目录予以指定(您也可以不指定文件
,而是指定 metadata_url
)。
此元数据文件包含 idp.entity_id
。
要完成 Open Distro for Elasticsearch Security 的配置,请参阅我的上一篇博文使用 ADFS 添加单点登录。按照该博文中的步骤将 Open Distro Security 角色映射到 Okta 组,更新 Open Distro Security 配置和 Kibana 配置并重新启动 Kibana。Security 配置文件与 Okta 集成的副本如下:
...
http_enabled: true
transport_enabled: true
order: 1
http_authenticator:
type: saml
challenge: true
config:
idp: metadata_file: okta-metadata.xml entity_id: http://www.okta.com/exksz5jfvfaUjGSuU356 sp: entity_id: kibana-saml kibana_url: https://new-kibana.ad.example.com:5601/
exchange_key: 'MIIDAzCCAeugAwIB...'
authentication_backend:
type: noop
...
重新启动 Kibana 后,您便可以测试集成。您应遵照 ADFS 博文中所述的相同行为。
小结
本文中,我讨论了使用 Okta 的 Kibana 单点登录的 SAML 身份验证。您可以使用类似的程序来配置与任何符合 SAML 2.0 的身份提供商的集成。有关使用 SAML 配置 Open Distro for Elasticsearch Security 的其他配置选项,请参阅 Open Distro for Elasticsearch 文档。
有问题或疑问? 希望参与讨论? 您可以在我们的论坛上获得帮助并讨论 Open Distro for Elasticsearch。您可以在这里提出问题。