如何设置Kibana SSO(通过OAuth)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置Kibana SSO(通过OAuth)?相关的知识,希望对你有一定的参考价值。
我的公司非常努力为所有第三方服务保留SSO。我想让Kibana使用我们的Google Apps帐户。那可能吗?怎么样?
Kibana让您实现安全。我相信Elastic的Shield产品支持安全性即插件,但我没有浏览订阅模型或对其进行了大量研究。
我处理这个问题的方法是使用oauth2 proxy application并使用nginx将代理转换为Kibana。
server {
listen 80;
server_name kibana.example.org;
# redirect http->https while we're at it
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
# listen for traffic destined for kibana.example.org:443
listen 443 default ssl;
server_name kibana.example.org;
ssl_certificate /etc/nginx/ssl/cert.crt;
ssl_certificate_key /etc/nginx/ssl/cert.key.pem;
add_header Strict-Transport-Security max-age=1209600;
# for https://kibana.example.org/, send to our oauth2 proxy app
location / {
# the oauth2 proxy application i use listens on port :4180
proxy_pass http://127.0.0.1:4180;
# preserve our host and ip from the request in case we want to
# dispatch the request to a named nginx directive
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 15;
proxy_send_timeout 30;
proxy_read_timeout 30;
}
}
请求进入,触发一个nginx指令,该指令将请求发送到ouath应用程序,后者又处理SSO资源并重定向到服务器localhost上的侦听Kibana实例。这是安全的,因为无法直接与Kibana建立联系。
来自Elasticsearch,Kibana 5.0,屏蔽插件(安全插件)嵌入在x-pack(付费服务)中。所以从Kibana 5.0你可以:
- 使用X-Pack
- 使用Search Guard
这两个插件都可以与基本身份验证一起使用,因此您可以应用像this one这样的Oauth2代理。一个额外的代理将转发请求与正确的Authorization
标头与摘要base64(username:password)
该程序在this article中描述为x-pack。所以你将拥有:
我在this repo中设置了一个docker-compose配置,用于使用带有Kibana / Elasticsearch 6.1.1的searchguard或x-pack:
以上是关于如何设置Kibana SSO(通过OAuth)?的主要内容,如果未能解决你的问题,请参考以下文章
带有oauth2 sso和angular 2 CORS问题的spring zuul网关
Spring Oauth2 SSO:使用 AuthorizationServer 授予的权限
比较SSO协议: WS-Fed, SAML, and OAuth