文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

开源认证授权管理平台Keycloak初体验

2024-12-03 02:16

关注

 上一篇文章简单介绍了Keycloak,反响不错。看来大家都对这个东西感兴趣,今天就来进一步的体验Keycloak,让我们对它有一个直观的认识,然后逐步深入,把它的设计理念和概念各个击破。

总体思路

因为事先已经知道Keycloak提供了Spring Security的适配器。先独立把Keycloak的核心概念弄清楚,然后再去研究它如何结合Spring Security的。

安装Keycloak

本文的Keycloak版本为 14.0.0。

我向来不喜欢在安装上浪费时间,研究阶段能用Docker来安装是最省心的。

  1. 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域的管理职能示意图

登入Master的realm创建一个自定义域felord.cn。

创建自定义域

User

User是能够登录到应用系统的实体,其实可以理解为账户。他们可以拥有与自己相关的属性,例如电子邮件、用户名、地址、电话号码和生日。可以为他们分配组成员身份并为其分配特定的角色。Keycloak中的User都有他们从属的realm。接下来在我上面的自定义域felord.cn中新建一个用户,步骤为:

然后注销当前用户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

客户端。通常指一些需要向Keycloack请求以认证一个用户的应用或者服务,甚至可以说寻求Keycloack保护并在Keycloack上注册的请求实体都是客户端。

client adapters

Keycloack为了支持多语言和跨平台而设计的适配器,比如适配Java的、适配Python的。有些是内置的实现,有些需要我们按照Keycloack的抽象定义来实现。后续我们主要和Spring Boot Adapter打交道。

identity provider

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

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

总结

今天这一篇主要对Keycloack进行一个初步的体验,搭建了一个开发环境供后续的学习,同时对Keycloack的一些核心概念进行了汇总。不过由于篇幅限制没有完全的去梳理一些概念,不过学习都是循序渐进的,急不得。自定义realm和用户都建好了,下一篇我将尝试用Keycloack来保护Spring Boot应用。业余时间,码字不易,还请多多关注,大力支持一下作者。

本文转载自微信公众号「码农小胖哥」,可以通过以下二维码关注。转载本文请联系码农小胖哥公众号。

 

来源:码农小胖哥内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯