Keycloak详细教程

安装&初始化

下载

只需前往 http://www.keycloak.org/downloads.html ,按需进行下载。

在这里插入图片描述

笔者下载的是“Standalone server distribution” 。

安装&启动

安装Keycloak非常简单,步骤如下:

  • 解压下载下来的安装包
  • 将目录切换到KEYCLOAK_PATH/bin ,其中KEYCLOAK_PATH是您Keycloak的根目录
  • 执行./standalone.sh ,即可启动Keycloak,如需后台运行,则执行./standalone.sh &

初始化

启动后,访问http://localhost:8080/ 将会显示类似如图的界面:

在这里插入图片描述

该界面让我们创建一个初始化的admin账户。那么我们不妨填写一下,为了测试方便,我们将账号/密码分别设为admin/admin ,然后点击create按钮,将会跳转到如下界面:

在这里插入图片描述

由图可知,管理员账户已创建成功,Keycloak初始化也已完成。

管理控制台

点击上图的Administration Console 按钮,将会弹出登录页面:

在这里插入图片描述

输入我们之前初始化设置的账号、密码,并点击Login in 按钮,即可登录管理控制台,如下图所示:

在这里插入图片描述

由图可知,管理控制台的菜单挺多的,功能也比较丰富,不禁让人有点恐惧——这么多菜单,这么多子功能项,得花多少时间研究啊!没有关系,可以随着笔者的节奏,逐步深入。

与Spring Boot整合

纳尼?上一篇才讲了个初始化,这一篇就与Spring Boot整合啦?这是什么节奏?按照套路,不应该先介绍下这个术语,那个概念吗?

没有关系,Keycloak非常简单,我们可以在实战中了解各种概念。

整合Keycloak非常简单,因为Keycloak为我们提供了各种语言、各种框架的 Adapter ,基于OpenID/SAML协议的Adapter,大概二十多个,有兴趣的可前往:http://www.keycloak.org/docs/latest/securing_apps/index.html#openid-connect-3 阅读。后面等笔者有空了,也会将这些文章翻译出来,敬请期待。

在这里,我们选择OpenID协议中的Spring Boot Adapter ,相关文档:http://www.keycloak.org/docs/latest/securing_apps/index.html#_spring_boot_adapter ,当然,如果你对Spring Security比较熟悉,也可以选用http://www.keycloak.org/docs/latest/securing_apps/index.html#_spring_security_adapter 。不过笔者认为Spring Security过于复杂,用Spring Boot Adapter已经能够完成我们的需求,所以就不搞Spring Security Adapter了。

微服务

假设有一个Spring Boot微服务:

下面我们来为该服务整合Keycloak,并逐步实现基于Keycloak的单点认证及授权。

准备工作

创建Realm
  • 首先,我们需要创建一个Realm。Realm是一个隔离的概念,Realm A中的用户与Realm B中的用户完全隔离。当然,也可以不创建Realm,直接用 Master 这个Realm,不过一般来说,为了资源的隔离,以及更好的安全性不太建议与管理员共用Realm。如下图所示:

在这里插入图片描述

  • 输入Realm名称,这里,如图所示,我们创建了一个名为realm 的Realm。

    在这里插入图片描述

创建Client
  • 创建完realm后,我们来为ms-content-sample 创建Client ,点击下图的Create按钮。

    在这里插入图片描述

  • 填写Client信息,这边我们创建一个名为ms-content-sample 的Client。

在这里插入图片描述

设置Client
  • 下面我们来配置Client,点击途中的Edit按钮:

    在这里插入图片描述

  • 设置Client

在这里插入图片描述

如图,我们配置了Access Type为public,当然还有其他选项,例如bearer-only,我们先选public,bearer-only我们后面会细讲;配置了Valid Redirect URLS,这是认证成功后跳转到的页面地址,其中我们使用了通配符;配置了Base URL,一般配置成微服务首页即可。

创建角色

比较简单,如图,我们创建了两个角色,user-role 以及test-role

在这里插入图片描述

创建用户并分配角色
  • 创建用户

    在这里插入图片描述

  • 分配角色

在这里插入图片描述

如图,点击user-role,并点击Add selected,即可为user1用户分配user-role角色;同理,为user2用户分配test-role角色。

为用户设置登录密码

在这里插入图片描述

为Spring Boot微服务整合Keycloak

话不多说,上代码——

基于Spring Boot Adapter的整合步骤如下:

  • 添加依赖管理,引入Keycloak adapter的bom:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.keycloak.bom</groupId>
          <artifactId>keycloak-adapter-bom</artifactId>
          <version>3.4.0.Final</version>
          <type>pom</type
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值