上一篇文章简略介绍了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提供了一个叫Masterrealm,这个Master不承当具体利用和用户的治理,它只用来治理其它realm的生命周期。

登入Masterrealm创立一个自定义域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时须要把握的一些概念,下面曾经提到了realmuser,这里就不再赘述了

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

用来认证用户的服务,简称IDPkeycloak自身就是一个IDP。这个相似Spring Security中的AuthenticationProvider接口。

还有一些概念等遇到了会再补充,有点多,先消化消化。

总结

明天这一篇次要对keycloak进行一个初步的体验,搭建了一个开发环境供后续的学习,同时对keycloak的一些外围概念进行了汇总。不过因为篇幅限度没有齐全的去梳理一些概念,不过学习都是循序渐进的,急不得。自定义realm和用户都建好了,下一篇我将尝试用keycloak来爱护Spring Boot利用。业余时间,码字不易,还请多多关注,大力支持一下作者。

关注公众号:Felordcn 获取更多资讯

集体博客:https://felord.cn