开源认证授权管理平台Keycloak初体验
上一篇文章简单介绍了Keycloak,反响不错。看来大家都对这个东西感兴趣,今天就来进一步的体验Keycloak,让我们对它有一个直观的认识,然后逐步深入,把它的设计理念和概念各个击破。
总体思路
因为事先已经知道Keycloak提供了Spring Security的适配器。先独立把Keycloak的核心概念弄清楚,然后再去研究它如何结合Spring Security的。
安装Keycloak
本文的Keycloak版本为
14.0.0
。
我向来不喜欢在安装上浪费时间,研究阶段能用Docker来安装是最省心的:
docker run -d -p 8011:8080 --name keycloak-server -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak
执行上述命令安装Keycloak,成功后打开http://localhost:8011/auth/admin
输入账号admin
和密码admin
,就进入了管理控制台。如果你感觉英文不爽可以根据下图改成中文:
改完之后你随便点点栏目了解一下,想象一下它们各自的功能和作用,这时候你要放轻松点不用想的太深就是了解一下全貌。
Realm
如果你接触过知名安全框架Shiro相信对这个概念不会陌生。realm
是管理用户和对应应用的空间,有点租户的味道,可以让不同realm
之间保持逻辑隔离的能力。
默认情况下,Keycloack提供了一个叫Master
的realm
,这个Master
不承担具体应用和用户的管理,它只用来管理其它realm
的生命周期。
登入Master
的realm
创建一个自定义域felord.cn
。
User
User
是能够登录到应用系统的实体,其实可以理解为账户。他们可以拥有与自己相关的属性,例如电子邮件、用户名、地址、电话号码和生日。可以为他们分配组成员身份并为其分配特定的角色。Keycloak
中的User
都有他们从属的realm
。接下来在我上面的自定义域felord.cn
中新建一个用户,步骤为:
- 菜单栏找到管理->用户,然后打开添加用户。
- 键入唯一的必填项
用户名(username)
。 - 开启(
ON
)邮件认证(Email Verified),然后保存。 - 点击凭据(Credentials)选项卡为新用户设置临时密码。此密码是临时的,用户将需要在第一次登录时更改它。如果您更喜欢创建永久密码,请将临时开关切换到关闭并单击设置密码。
然后注销当前用户admin
并到http://localhost:8011/auth/realms/felord.cn/account
以刚创建的用户felord
的身份登录到felord.cn
域。
有没有发现登录链接的特点?
到这里一个创建realm
和账户的流程就熟悉完了,不过我相信大多数同学看到这里还是懵逼的。怎么就手动了呢?不要急后面会结合代码来实现上述的流程以及更加符合应用场景的流程。
Keycloak的核心概念
接下来是我们在使用Keycloak时需要掌握的一些概念,上面已经提到了realm
和user
,这里就不再赘述了
authentication
识别和验证用户的过程。证明“你说的这个你就是你”。
authorization
授予用户访问权限的过程。标明“你可以干什么、不可以干什么”。
credentials
证明用户身份的凭证。可能是密码、一次性密码、数字证书以及指纹。
roles
角色是RBAC的重要概念,用于表明用户的身份类型。
user role mapping
用户角色映射关系。通常一个用户可能有多个角色,一个角色也可以对应不同的人。
composite roles
复合角色,听起来很玄乎,其实就是角色的从属关系或者说继承关系。 B
角色从属于A
角色,那么你拥有了A
角色就一定拥有B
角色的权限。
groups
用户组,你可以将一系列的角色赋予定义好的用户组,一旦某用户属于该用户组,那么该用户将获得对应组的所有角色权限。
clients
客户端。通常指一些需要向keycloak请求以认证一个用户的应用或者服务,甚至可以说寻求keycloak保护并在keycloak上注册的请求实体都是客户端。
client adapters
keycloak为了支持多语言和跨平台而设计的适配器,比如适配Java的、适配Python的。有些是内置的实现,有些需要我们按照keycloak的抽象定义来实现。后续我们主要和Spring Boot Adapter打交道。
identity provider
用来认证用户的服务,简称IDP
。keycloak本身就是一个IDP
。这个类似Spring Security中的AuthenticationProvider
接口。
还有一些概念等遇到了会再补充,有点多,先消化消化。
总结
今天这一篇主要对keycloak进行一个初步的体验,搭建了一个开发环境供后续的学习,同时对keycloak的一些核心概念进行了汇总。不过由于篇幅限制没有完全的去梳理一些概念,不过学习都是循序渐进的,急不得。自定义realm
和用户都建好了,下一篇我将尝试用keycloak来保护Spring Boot应用。业余时间,码字不易,还请多多关注,大力支持一下作者。
关注公众号:Felordcn获取更多资讯

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
测试开发之网络篇-常用命令
ipconfig Windows系统下,ipconfig加上/all参数,可查看本机的IP地址、掩码、默认网关、DHCP和DNS服务器等信息。Linux或mac系统下,请使用ifconfig命令代替。 C:\Users\admin>ipconfig /all Windows IP Configuration Ethernet adapter Ethernet0: Connection-specific DNS Suffix . : DHCP Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection Physical Address. . . . . . . . . : 00-0C-29-A8-3E-AA DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::547b:...
- 下一篇
毕业季offer怎么拿?收下这份非典型求职面试指南
摘要:求职面试莫慌,先自我评估一下 ,华为云专家手把手为你指导。 本文分享自华为云社区《毕业季offer怎么拿?收下这份非典型求职面试指南》,原文作者:技术火炬手 。 又是一年毕业季,对于告别校园踏入社会的大学生来说,最烦恼的莫过于找工作:我应该投哪些岗位?我能胜任这些工作吗?面试官提问我要怎么回答?别人都有offer我一个都没有,是不是很差劲? 高校毕业生面临着巨大的择业压力,为此,华为云DevCloud敏捷教练梅师姐手把手教你做好职业规划,轻松度过今年的毕业求职季。 择业前,了解自己,找到方向 先来看一幅职业生涯的发展地图,进入职场之前要找出自己的定位,明确想要做什么;定位清晰后快速适应自己选择的工作。 在发展的过程中,会出现两个方向:一种是收入增长和职业晋升,另一种是发展遇到了瓶颈。当遇到后一种情况就需要思考,是主观能力还是客观问题。 再往下就面临转型,进行再定位和赛道转换。同时,随着年龄的增长,我们的角色会增加,此时就会出现家庭和工作的平衡问题。 图1 职业生涯地图 梅师姐主要分享的是定位的问题,这也是初入职场的新人最关键和重要的一步。那么,如何才能找到自己清晰的定位呢?可以借...
相关文章
文章评论
共有0条评论来说两句吧...