精选列表

搜索[初体验],共233篇文章
优秀的个人博客,低调大师

开源认证授权管理平台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获取更多资讯 个人博客:https://felord.cn

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。