如何将Keycloak 13的自定义用户身份认证流程(User Storage SPI)为?
摘要:Keycloak 版本:13.0.0 spring-boot 项目 Github user-storage-spi 项目 Github 介绍 Keycloak 是为现代应用程序和服务提供的一个开源的身份和访问管理的解决方案。 Keycloa
Keycloak
版本:13.0.0
spring-boot 项目 Github
user-storage-spi 项目 Github
介绍
Keycloak 是为现代应用程序和服务提供的一个开源的身份和访问管理的解决方案。
Keycloak 在测试环境可以使用内嵌数据库,生产环境需要重新配置数据库。以下将一一介绍如何使用内嵌数据库、重新配置数据库。
特别需要注意 Keycloak 是在 WildFly 上构建的。
目录Keycloak介绍安装系统要求目录结构使用 Docker 安装 Keycloak使用创建 realm 和 用户创建 realm创建用户新建用户登录控制台Spring-Boot 认证注册客户端到 Keycloak 中认证Bearer 令牌初始化访问令牌注册访问令牌Keycloak RepresentationsKeycloak 适配器配置OIDC 动态客户端注册客户端注册策略管理客户端OIDC 客户端创建 OIDC 客户端使用外部数据库用户存储 SPI打包和部署自定义用户存储 ProviderSpring-boot 使用外部用户认证Keycloak 角色使用数据库用户登录
安装
系统要求
Java8 JDK
至少 512M 内存
至少 1G 磁盘
如果要设置 Keycloak 集群则需要数据库,比如:PostgreSQL、Oracle、MySQL 等
如果要运行集群,需要网络支持广播。当然也可以不需要,只不过需要更改一堆配置
目录结构
bin/ —— 各种启动服务、服务器上执行管理的脚本
domain/ —— 集群模式下的配置文件和工作目录
modules/ —— 服务使用的 Java 包
standalone/ —— 单机模式下的配置文件和工作目录
standalone/deployments/ —— 你自定义的扩展文件
themes/ —— 界面主题文件
使用 Docker 安装 Keycloak
启动容器
docker run -p 10010:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:13.0.0
成功启动后访问:http://127.0.0.1:10010/
登录 Keycloak 服务
a. 点击 Administration Console
b. 输入账号:admin,密码:admin
c. 进入控制台界面
使用
创建 realm 和 用户
创建一个 realm 和用户以访问内置的账户管理控制台。把 realm 想像成租户的概念。
Master realm —— 这个 realm 是初始化时创建的,它包含超级管理员。使用这个 realm 管理其它的 realm。
Other realm —— 超级管理员创建的 realm 。在这些 realm 里,超级管理员创建用户和应用程序,用户拥有应用程序。
创建 realm
点击 Add realm 按钮
输入 realm 名称
点击 create 按钮完成创建
点击创建完成 demo realm 创建。
创建用户
切换 realm 到 Demo
创建用户,Users -> Add User,输入 Username ,点击 Save 按钮
设置密码
新建用户登录控制台
退出 admin 账户登录
地址输入:http://127.0.0.1:10010/auth/realms/demo/account/,点击 Sign In 按钮,使用新创建的用户 Zhang 登录
设置新密码
登录成功
Spring-Boot 认证
注册客户端到 Keycloak 中
应用程序或服务为了能使用 Keycloak,必须在 Keycloak 中注册一个客户端。可以通过超级管理员界面注册,客户端也可以自己通过 Keycloak 服务注册。
客户端注册服务提供内置支持:Keycloak Client Representations、OIDC 客户端元数据、SAML 实体描述。
