Keycloak是一个开源软件产品,旨在为现代的应用程序和服务,提供包含身份管理和访问管理功能的单点登录工具。截至2018年3月,红帽公司负责管理这一JBoss社区项目,并将其作为他们RH-SSO产品的上游项目。从概念的角度上来说,该工具的目的是,只用少量编码甚至不用编码,就能很容易地使应用程序和服务更安全。
Keycloak的第一个生产版本发布于2014年9月,其开发始于大约一年前。2016年,红帽公司将其RH SSO产品由基于PicketLink框架,切换为基于Keycloak上游项目。在此之前,PicketLink的代码已经被并入了Keycloak。
某种程度上,Keycloak现在也可以被认为是红帽公司JBoss SSO开源产品的一个替代,在这之前JBoss SSO是被PicketLink所取代的。截至2018年3月年JBoss.org是将旧的jbosssso子站点重定向到Keycloak网站的。JBoss这一名称是一个注册商标,红帽公司改变了其上游开源项目的名称,以避免使用JBoss,JBoss AS被更名为更具有辨识度的WildFly。
功能
Keycloak的众多功能包括:
- 用户注册
- 社会化登录
- 单点登录/登出,在同一Realm中可跨所有应用(Realm是Keycloak中定义的概念)
- 双重认证
- LDAP集成
- Kerberos代理
- 多组织中,每个Realm可自定义皮肤
组件
Keycloak有2个主要组件:
- Keycloak服务器
- Keycloak应用适配器
- 登录Keycloak后台,查看relam setting中name(若没有自行创建)
- 添加clents,输入clentID(自己定义的名称,以grafana为例)与grafana访问地址
- 之后配置后查看其设置
- 进入Clients---->Credentials查看Client_secret
- 修改grafana配置文件/usr/share/grafana/conf/default.ini,配置内容如下
[auth·generic_oauth]
enabled = true
name = master #之前name
allow_sign_up = true
client_id = grafana #之前创建的client_id
client_secret = f1d3950c-1961-4456-56b0-63ert35626aa #secret
scopes = openid email name
auth_url =
http://mykeycloak.com/auth/realms/master/protocol/openid-connect/auth #修改为keycloak的域名
token_url = http://mykeycloak.com/auth/realms/master/protocol/openid-connect/token #
api_url = http://mykeycloak.com/auth/realms/master/protocol/openid-connect/userinfo #
3.再修改如下配置
```ini
protocol = http
http_port = 3000 # Grafana对外的访问端口
domain = mygrafana.com # Grafana对外的访问域名
4·进入grafana登录界面,发现登录界面能看到"Sign in with xxxx",点击进入即可。
热门跟贴