上一篇文章简略介绍了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 获取更多资讯
集体博客:https://felord.cn