【Keycloak】快速入门

KeyCloak快速入门

这篇文章的目的?

通过最后的案例可以使读者

  • 了解并安装keycloak
  • 熟悉provider作用以及通过provider完成自己的拓展功能

what is it?

Keycloak是一个开源身份和访问管理解决方案。它提供了集中化的用户身份验证、授权和访问控制,帮助开发人员轻松地添加安全性到他们的应用程序中。Keycloak支持各种标准和协议,如OAuth
2.0、OpenID Connect和SAML,可以用于保护Web应用程序、移动应用程序和后端服务。它还提供了用户管理、SSO(单点登录)、角色管理和审计等功能,使开发人员可以快速构建安全的应用程序和服务。

系统环境

  • Maven版本: apache-mavne-3.6.0
  • Java版本: 11.0.17 - oracle

下载地址:https://www.oracle.com/java/technologies/downloads/#java11

1.按照提示注册然后下载,这里推荐免安装版

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7UwLpzFS-1689230617108)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20221123134120111.png)]

2.下载成功之后解压到指定目录,之后将目录加入到环境变量中

​ JAVA_HOME = ${download}/

​ PATH = %JAVA_HOME%/bin

3.cmd验证版本
在这里插入图片描述

Step 1. windows平台启动17.0.0版本Keycloak

此篇主要以keycloak 17.0.0 Releases版本举例

step1.1 下载

  1. 进入链接 https://github.com/keycloak/keycloak/releases
  2. 找到并下载17.0.0版本
    在这里插入图片描述
  3. 解压缩,目录大致如下
    在这里插入图片描述

step1.2 启动

1.通过CMD进入${keycloak_home}/bin目录,使用指令:kc.bat start-dev

kc.bat start-dev

运行如下:
在这里插入图片描述

step1.3 测试keycloak

  1. 访问http://localhost:8080(第一次登陆需要设置管理员密码)
    在这里插入图片描述
  2. 使用密码进入Admin console,默认存在一个Master的Realm
    在这里插入图片描述

step 2 keycloak SMS短信验证码SPI的实现

step 2.1 SPI的jar包导入到keycloak中

gitee: https://gitee.com/xu_hai_00/keycloak_extensions_demo
下载:
keycloak-sms-authenticator.jar
keycloak-sms-requiredaction.jar

  1. 将下载的Jar或打出jar包并移动到${keycloak_home}/provider/…
  2. 执行 ${keycloak_home}/bin/kc.bat build ,结果如下
    在这里插入图片描述
  3. 输入kc.bat show-config ,结果如下(说明自定义的SPI已被keycloak正确识别)
    在这里插入图片描述
step 2.2 keycloak管理端配置自定义SPI
  1. 登陆Admin console
    在这里插入图片描述

  2. 创建新的Realm,名称为demo
    在这里插入图片描述在这里插入图片描述

  3. 选择该列表下的Authentication并选择Brower这个工作流(workflow)
    在这里插入图片描述

  4. 复制工作流Brower并起名为Cope of brower
    在这里插入图片描述

  5. 切到Copy of brower的工作流,并删除多余flow,具体如下
    在这里插入图片描述

  6. 点击Copy Of Browser Forms后方Action,选择execution
    在这里插入图片描述

  7. 找到我们自定义SPI,也就是名称为SMS Autho…的provider
    在这里插入图片描述

  8. 点击Save之后效果如下
    在这里插入图片描述

  9. 点击SMS Authentication的Actions,选择config
    在这里插入图片描述

  10. 按如下信息配置, Simulation mode选择on代表只在控制台发送SMS code
    在这里插入图片描述

  11. 将SMS Authentication 从DISABLE设置为REQUIRED
    在这里插入图片描述

  12. 进入Bindings,把Browser Flow的Browser替换成我们创建的Copy of Browser
    在这里插入图片描述

  13. 创建测试用户
    在这里插入图片描述
    在这里插入图片描述

  14. 保存用户之后,需要添加mobile_number,因为我们的SPI(Provider)中有对此值进行处理,切勿写错
    在这里插入图片描述

  15. 设置用户密码,并将第一次登陆需要修改密码的选项关掉
    在这里插入图片描述

step 2.3 测试SPI(Provider)
  1. 开始测试,进入client的登陆地址

http://localhost:8080/realms/demo/account/

  1. 输入用户名密码之后,进入code页面
    在这里插入图片描述
    控制台输出
    在这里插入图片描述
  2. 输入打印到控制台的Code:324989,正确进入以下页面
    在这里插入图片描述

Step 3. 选择性拓展

step 3.1 keycloak设置指定数据库

keycloak默认以H2数据库存储,如果想指定数据库则参考以下步骤

  1. 编辑${keycloak_home}/conf/keycloak.conf ,将红框范围内修改自己的DB Config
    在这里插入图片描述

  2. 重新./bin/kc.bat start-dev

  3. keycloak已成功将表更新到了指定数据库中
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值