Kibana的SAML认证

目标

在这篇文章中,我们将总结启用Kibana上的SAML验证(通过Okta)的步骤。

前提 tí)

    • SSLを使用したネットワークトラフィックの暗号化が設定されていること(以下URLを参照)。

 

    https://www.elastic.co/jp/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#prepare-logstash

程序

1. Okta的设置步骤

根据连接的Kibana信息提供的以下信息进行输入。

image.png

/api/security/v1/saml需要注意,似乎是固定的。

设置组属性的值。

image.png

2. Elasticsearch的配置步骤

请设置以下内容并重新启动Elasticsearch。

将元数据创建在/etc/elasticsearch/saml中。

# pwd
/etc/elasticsearch/saml
# ls -ll
total 4
-rw-r--r-- 1 root elasticsearch 2380 Mar 21 13:03 idp-metadata.xml

您可以通过以下方式获得idp-metadata.xml文件的内容:
[查看设置说明] -> [将以下IDP元数据提供给您的SP提供商。]
然后将其复制并粘贴到idp-metadata.xml文件中。

image.png

我們將修改elasticsearch.yml配置文件的值如下:

# ----------------------------------- SAML Setting ------------------------------------
xpack.security.authc.token.enabled: true
xpack.security.authc.realms.saml:
         saml1:
           order: 2
           attributes.principal: "nameid"
           attributes.groups: "groups"
           idp.metadata.path: saml/idp-metadata.xml
           idp.entity_id: "https://sso.example.com/"
           sp.entity_id:  "https://kibana.example.com/"
           sp.acs: "https://kibana.example.com/api/security/v1/saml"
           sp.logout: "https://kibana.example.com/logout"
           sp.acs: "https://sso.example.com/api/security/v1/saml"
           sp.logout: "https://sso.example.com/logout"

3. Kibana的设置步骤

请按照以下设定重新启动Kibana。

我們將編輯 kibana.yml,設定如下所示。basic.basic1用於配置基本認證。
這是為了當無法通過SMAL登錄到Kibana時的恢復所創建的。
據說可以通過KibanaIP:Port/login進行基本認證切換。

xpack.security.authc.providers:
  saml.saml1:
    order: 0
    realm: "saml1"
  basic.basic1:
    order: 1

4. 创建Okta用户和组。

创建一个名为OK_Kibana_Admin的群组,并将现有的Okta用户加入该群组中。

image.png

5. 将Okta组与Kibana的Roll进行关联

为了将现有的Kibana Roll(superuser)与Okta的组进行关联,
我们可以使用Kibana的DevTool来执行以下命令。
但是根据7.12版本,似乎不再使用Dev Tool,而是在GUI界面上进行编辑。
详情请参考https://www.elastic.co/guide/en/kibana/current/role-mappings.html

PUT /_security/role_mapping/saml-kibana-admins
{
   "enabled": true,
    "roles": [ "superuser" ],
    "rules": { "all" : [
        { "field": { "realm.name": "saml1" } },
        { "field": { "groups": "OK_Kibana_Admin" } }
    ]},
    "metadata": { "version": 1 }
}

就是这些了。

请提供相关链接

    • mappingの設定

 

    • 技術ブログ

 

    • kibana SAML設定

 

    • Elasticsearch SAML設定

 

    • SAMLの処理フロー

 

    • ElasticsearchのTLS化

 

    elasticの技術ブログ
bannerAds