欢迎光临散文网 会员登陆 & 注册

Keycloak是什么

2023-03-13 14:26 作者:bfyxzls  | 我要投稿

登录及身份认证keycloak

登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种场景而生。

Keycloak是什么

Keycloak是一种面向现代应用和服务的开源IAM(身份识别与访问管理)解决方案。

Keycloak提供了单点登录(SSO)功能,支持OpenID ConnectOAuth 2.0SAML 2.0标准协议,拥有简单易用的管理控制台,并提供对LDAP、Active Directory以及Github、Google等社交账号登录的支持,做到了非常简单的开箱即用。

官网: https://www.keycloak.org/

Keycloak常用核心概念介绍

首先通过官方的一张图来了解下整体的核心概念

这里先只介绍4个最常用的核心概念:

1. Users: 用户,使用并需要登录系统的对象

2. Roles: 角色,用来对用户的权限进行管理

3. Clients: 客户端,需要接入Keycloak并被Keycloak保护的应用和服务

4. Realms: 领域,领域管理着一批用户、证书、角色、组等,一个用户只能属于并且能登陆到一个域,域之间是互相独立隔离的, 一个域只能管理它下面所属的用户

Keycloak服务安装及配置

3.1 安装Keycloak

Keycloak安装有多种方式,这里使用Docker进行快速安装

登录后复制

docker run -d --name keycloak \

    -p 8080:8080 \

    -e KEYCLOAK_USER=admin \

    -e KEYCLOAK_PASSWORD=admin \

    jboss/keycloak:13.0.0

访问http://localhost:8080并点击Administration Console进行登录

 


3.2 创建Realm

首先,我们需要创建一个Realm。Realm是一个隔离的概念,Realm A中的用户与Realm B中的用户完全隔离。创建一个新的realm: demo,后续所有的客户端、用户、角色等都在此realm中创建。

 


3.3 创建客户端

3.3.1 创建前端应用客户端

创建一个新的客户端:KeycloakAuthaspnet,Access Type选择confidential。

3.3.2 关于客户端的访问类型(Access Type)

上面创建的客户端的访问类型分别是confidential,那么为什么分别选择这种类型,实际不同的访问类型有什么区别呢?

事实上,Keycloak目前的访问类型共有3种:

· confidential:适用于服务端应用,且需要浏览器登录以及需要通过密钥获取access token的场景。典型的使用场景就是服务端渲染的web系统。

· public:适用于客户端应用,且需要浏览器登录的场景。典型的使用场景就是前端web系统,包括采用vue、react实现的前端项目等。

· bearer-only:适用于服务端应用,不需要浏览器登录,只允许使用bearer token请求的场景。典型的使用场景就是restful api。

Access Type 里面选 Confidential,然后才有 Client Secret ,保存之后,会出现Credentials的Tab,记录下这里的secret,后面要用到

3.4 创建用户和角色

3.4.1 创建角色

创建2个角色:admin、user


还可以创建全局的角色


3.4.2  创建用户

创建1个用户:geffzhang


 绑定用户和角色

3.4.3 用户分配角色

总结

Keycloak部署及接入简单,轻量的同时功能又不失强大,非常适合企业内部的SSO方案。

Keycloak是什么的评论 (共 条)

分享到微博请遵守国家法律