当你有很多中间件时,你可能会需要在每个中间件都配置账号密码,但更好的做法是使用其中一个中间件作为登录中心,一般来说,我们会选用代码仓库,你可以没有其他中间件,但你不可能没有代码仓库吧!
Elastic如何集成GitLab
我这里有两篇文档:
1、https://www.elastic.co/guide/en/cloud/current/ec-secure-clusters-oidc.html
2、https://gitlab.com/.well-known/openid-configuration
相信你作为工程师,有这两个东西已经能自己搞定了~
如果还不行,我这里还有两份配置配置样例
这是kibana的
xpack.security.authc.providers:
oidc.oidc1:
order: 0
realm: gitlab
description: "Log in with GitLab"
icon: "your_icon_url"
basic.basic1:
order: 1
icon: "logoElasticsearch"
这是elasticsearch的
xpack.security.authc.realms.oidc.gitlab:
order: 2
rp.client_id: "YOUR_CLIENT_ID"
rp.response_type: code
rp.redirect_uri: "YOUR_KIBANA_URL/api/security/oidc/callback"
op.issuer: "https://gitlab.com"
op.authorization_endpoint: "https://gitlab.com/oauth/authorize"
op.token_endpoint: "https://gitlab.com/oauth/token"
op.jwkset_path: https://gitlab.com/oauth/discovery/keys
op.userinfo_endpoint: "https://gitlab.com/oauth/userinfo"
rp.post_logout_redirect_uri: "YOUR_KIBANA_URL/security/logged_out"
claims.principal: sub
claims.groups: "https://gitlab.org/claims/groups/developer"
我使用的是gitlab.com
作为代码仓库,如果你是本地部署的,请改为你自己的地址。
我使用的是Elastic Cloud, 如果你是本机部署的,请多看看官方文档,找一找你的client_secret应该配在哪里。有可能是文件里配个:rp.client_secret 就好了
文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.13/security-settings.html#ref-oidc-settings
如果你想做权限控制的话,可以使用gitlab的group来做,不同的group给不同的权限,在role_mappings配置