我已经为 OpenID 配置了 opendistro_security。当我尝试对用户进行身份验证时,它失败了。大概是因为该用户没有权限。如何授予 openid 用户权限?我似乎找不到使用 internal_user.yml 的明显方法。
1 回答
我解决了。对于后代,除了 Kibana.yml 文件中的 openis 设置之外,还需要执行以下操作。
1:在我的每个 Elasticsearch 节点上的 config.yml 文件中,我需要添加以下内容:
authc:
openid_auth_domain:
http_enabled: true
transport_enabled: true
order: 0
http_authenticator:
type: openid
challenge: false
config:
subject_key: email
roles_key: roles
openid_connect_url: https://accounts.google.com/.well-known/openid-configuration
authentication_backend:
type: noop
由于我使用谷歌作为我的身份提供者,我需要确保我的 subject_key 是“电子邮件”
2:需要在每个节点上运行安全配置脚本:
docker exec -it elasticsearch-node1 /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh -cacert /usr/share/elasticsearch/config/root-ca.pem -cert /usr/share/elasticsearch/config/kirk.pem -key /usr/share/elasticsearch/config/kirk-key.pem -cd /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/ -icl && docker exec -it elasticsearch-node2 /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh -cacert /usr/share/elasticsearch/config/root-ca.pem -cert /usr/share/elasticsearch/config/kirk.pem -key /usr/share/elasticsearch/config/kirk-key.pem -cd /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/ -icl
3:我需要配置我想要访问管理员访问角色的用户:
all_access:
reserved: false
backend_roles:
- "admin"
users:
- "name@email.com"
description: "Maps an openid user to all_access"
现在我可以从 Kibana 分配其他用户