前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开源认证授权管理平台Keycloak初体验

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

作者头像
码农小胖哥
发布于 2021-07-22 07:55:20
发布于 2021-07-22 07:55:20
5K00
代码可运行
举报
运行总次数:0
代码可运行

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

总体思路

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

安装Keycloak

❝本文的Keycloak版本为 14.0.0

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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的生命周期。

Master域的管理职能示意图

登入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

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

client adapters

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

identity provider

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

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

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农小胖哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通过管理API管理OAuth2 认证授权服务器Keycloak
我们在Keycloak Admin Console中的所有操作都有特定的Restful API,被统称为Keycloak Admin REST API。而 Keycloak Admin Client正是对Keycloak Admin REST API的Java HTTP客户端封装。我们只需要引入下面的依赖就可以集成了:
码农小胖哥
2021/09/09
3.1K0
Keycloak简单几步实现对Spring Boot应用的权限控制
我们在上一篇初步尝试了keycloak,手动建立了一个名为felord.cn的realm并在该realm下建了一个名为felord的用户。今天就来尝试一下对应的Spring Boot Adapter,来看看keycloak是如何保护Spring Boot应用的。
码农小胖哥
2021/07/22
2.3K0
Spring Security 中使用Keycloak作为认证授权服务器
Keycloak对流行的Java应用提供了适配器。在系列文章的上一篇我们演示了针对Spring Boot的安全保护,用的就是适配器的一种。Keycloak同样提供Spring Security的适配器,后续的几篇文章我们就来共同学习Spring Security适配器的使用。 ❝ Keycloak的安装可参考前面的系列教程。 适配器集成 在Spring 应用中我们集成keycloak-spring-security-adapter: <dependency>     <groupId>org.keycloa
程序猿DD
2023/04/04
2.6K0
Spring Security 中使用Keycloak作为认证授权服务器
OAuth2 服务器Keycloak中的Realm
Realm翻译成中文为领域。用来逻辑隔离一些特定空间,有点多租户的感觉,不同的Realm之间互相隔离,有各自的特色配置,互不影响。
码农小胖哥
2021/09/09
1.9K0
开源认证和访问控制的利器keycloak使用简介
keycloak是一个开源的进行身份认证和访问控制的软件。是由Red Hat基金会开发的,我们可以使用keycloak方便的向应用程序和安全服务添加身份认证,非常的方便。
程序那些事
2020/12/14
7K0
重磅推荐!开源身份认证神器:KeyCloak!
安装&初始化 下载 http://www.keycloak.org/downloads.html 笔者下载的是“Standalone server distribution” 。 安装&启动 安装Keycloak非常简单,步骤如下: 解压下载下来的安装包 将目录切换到KEYCLOAK_PATH/bin ,其中KEYCLOAK_PATH是您Keycloak的根目录 执行./standalone.sh ,即可启动Keycloak,如需后台运行,则执行./standalone.sh & 。 初始化 启动后,访问
程序猿DD
2023/02/24
7.6K0
重磅推荐!开源身份认证神器:KeyCloak!
一个接口是如何在Keycloak和Spring Security之间执行的
在适配了Keycloak和Spring Security的Spring Boot应用中,我编写了一个/admin/foo的接口并对这个接口进行了权限配置:
码农小胖哥
2021/09/09
2.1K0
吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!
Keycloak是一款开源的认证授权平台,在Github上已有9.4k+Star。Keycloak功能众多,可实现用户注册、社会化登录、单点登录、双重认证 、LDAP集成等功能。
macrozheng
2021/07/28
2.8K0
吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!
Spring Boot+Keycloak从零到壹
在本文中,我们将介绍安装、配置Keycloak服务器的基础知识,如何将Spring Boot应用程序**和Keycloak服务器连接起来,以及在Spring Security下如何使用它。
烟雨平生
2023/03/07
4.7K0
Spring Boot+Keycloak从零到壹
aspnetcore 应用 接入Keycloak快速上手指南
登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种场景而生。本文将简明的介绍Keycloak的安装、使用,并给出aspnetcore 应用如何快速接入Keycloak的示例。
张善友
2021/05/13
2.6K0
aspnetcore 应用 接入Keycloak快速上手指南
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
API Server 作为 Kubernetes 的网关,是用户访问和管理资源对象的入口。对于每个访问请求, API Server 都需要对访问者的合法性进行检查,包括身份验证、权限验证等等。Kubernetes 支持多种身份验证的方式,本文将对 OpenID Connect 认证进行介绍。
Se7en258
2022/04/18
7.5K0
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
基于Keycloak的Grafana SSO身份认证过程剖析
Keycloak是一款主流的IAM(Identity and Access Management 的缩写,即“身份识别与访问管理”)开源实现,它具有单点登录、强大的认证管理、基于策略的集中式授权和审计、动态授权、企业可管理性等功能。
qugeppl
2021/09/16
7.8K1
Keycloak Spring Security适配器的常用配置
在Spring Security集成Keycloak 适配器时需要引入一些额外的配置属性。一般我们会把它配置到Spring Boot的配置文件中。
码农小胖哥
2021/08/13
2.7K0
深度解读-如何用keycloak管理external auth
简单来说,以google授权为例,一般就是通过用户授权页面登录google账号,再跳转用code换取到相应权限的token,就可以代表用户去发起一些google api的请求。
newbmiao
2023/11/27
9400
深度解读-如何用keycloak管理external auth
shiro中的验证用户身份认证以及授权
  7.1 生成加密密码PasswordHelper类(盐加密)    MD5+散列1024+Hex/Base64
用户10196776
2022/11/22
1.3K0
shiro中的验证用户身份认证以及授权
使用keycloak实现k8s用户权限的统一管理
以最小的麻烦为应用程序和安全服务添加身份验证。无需处理存储用户或认证用户。开箱即用。您甚至可以获得高级功能,例如用户联合,身份代理和社交登录。
有点技术
2020/08/17
4K0
keycloak+istio实现基于jwt的服务认证授权
基于角色的访问控制(RBAC)为服务提供服务级别和方法级别的访问控制。RBAC政策是附加的。依次检查策略。根据操作以及是否找到匹配的策略,允许或拒绝请求。
有点技术
2020/09/14
3.1K1
keycloak+istio实现基于jwt的服务认证授权
浅谈Apache Shiro权限模块及数据库设计
写在最最最~~~前面的:由于Shiro框架在学习过程中假如没有一个实例Demo的参考,理解起来可能较为生涩难懂,所以笔者建议大家参考这个开源的项目:点我下载项目,该项目是我在学习Apache Shiro过程中参考的项目,我在原项目的基础上增加了一些便于理解的注释等,项目采用前后分离的方式开发,原作者:点我查看
关忆北.
2020/10/15
1.5K0
Kubernetes 中用 Sidecar 为应用添加 Oauth 功能
Kubernetes 的 Pod 中可以同时运行共享网络栈的多个容器,使得 Sidecar 这种服务协作方式更加易于实施。这里我们就使用 Sidecar 方式,将 Keycloak 集成到 httpbin 服务上去,为没有认证的 httpbin 服务添加认证功能。
崔秀龙
2019/07/22
2K0
Kubernetes 中用 Sidecar 为应用添加 Oauth 功能
Spring Boot 3.1 中如何整合Spring Security和Keycloak
在今年2月14日的时候,Keycloak 团队宣布他们正在弃用大多数 Keycloak 适配器。其中包括Spring Security和Spring Boot的适配器,这意味着今后Keycloak团队将不再提供针对Spring Security和Spring Boot的集成方案。
程序猿DD
2023/08/09
1.3K0
Spring Boot 3.1 中如何整合Spring Security和Keycloak
推荐阅读
相关推荐
通过管理API管理OAuth2 认证授权服务器Keycloak
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验