Skip to content

Keycloak SPI 扩展开发指南

项目简介

Keycloak 扩展开发指南是面向开发者打造的 Keycloak 扩展开发参考文档,涵盖 SPI 扩展、自定义认证流程、用户存储集成等核心功能,提供完整的开发示例和最佳实践,帮助开发者快速构建符合企业需求的 Keycloak 扩展。

本项目提供标准化的 Keycloak 扩展开发方案、详细的实现文档及配套示例代码,支持开发者快速完成各类 Keycloak 扩展的开发、测试与部署,大幅提升开发效率。

扩展类型

根据您的需求,选择适合的 Keycloak 扩展类型:

SPI User Storage Extension

  • 功能:实现 Keycloak 的用户存储 SPI,用于从外部数据库中读取用户信息
  • 支持数据库:MySQL、SQL Server、Oracle、达梦、金仓、OceanBase、GaussDB
  • 核心特性:支持多种数据库类型,提供灵活的用户存储能力,允许企业将现有的用户数据无缝集成到 Keycloak 中
  • 界面预览

SPI User Storage Extension

SPI Event Listener Extension

  • 功能:实现 Keycloak 的事件监听器 SPI,用于将 Keycloak 的事件发送到消息队列
  • 支持消息队列:Kafka、RabbitMQ、RocketMQ
  • 核心特性:支持多种消息队列系统,提供可扩展的架构,允许添加新的消息通道实现
  • 界面预览

SPI Event Listener Extension

SPI SM Crypto Extension

  • 功能:实现 Keycloak 的加密 SPI,集成了中国国家标准密码算法(国密算法)
  • 支持算法:SM2(椭圆曲线公钥密码算法)、SM3(密码杂凑算法)、SM4(分组密码算法)
  • 核心特性:为 Keycloak 提供了符合中国密码标准的加密能力,使 Keycloak 能够在需要使用国密算法的场景中正常工作
  • 界面预览

SPI SM Crypto Extension

版本对比

对比项SPI User Storage ExtensionSPI Event Listener ExtensionSPI SM Crypto Extension
主要功能外部用户存储集成事件监听与消息队列集成国密算法集成
依赖目标数据库驱动消息队列客户端Bouncy Castle 库
配置方式Keycloak 管理控制台代码硬编码(建议通过组件配置管理)Keycloak 管理控制台
部署方式JAR 文件放入 standalone/deployments 目录JAR 文件放入 standalone/deployments 目录JAR 文件放入 standalone/deployments 目录

核心功能

Keycloak 扩展开发

核心开发功能:

专为企业级 Keycloak 定制开发深度打造,一站式提供多种 SPI 扩展实现,开箱即用、零代码快速集成企业现有系统,完美支撑身份认证、事件处理、加密需求等多场景,解决 Keycloak 原生功能不足、定制复杂等核心痛点。

  • 01:用户存储扩展 — 支持从外部数据库读取用户信息,兼容多种数据库类型,包括 MySQL、SQL Server、Oracle、达梦、金仓、OceanBase 和 GaussDB,实现企业现有用户系统与 Keycloak 的无缝集成。
  • 02:事件监听器扩展 — 将 Keycloak 的事件(如用户登录、登出、管理操作等)发送到消息队列,支持 Kafka、RabbitMQ 和 RocketMQ,便于进行审计、监控或其他业务处理。
  • 03:国密算法扩展 — 集成中国国家标准密码算法(国密算法),包括 SM2、SM3 和 SM4,使 Keycloak 能够在需要使用国密算法的场景中正常工作,如政府、金融等对密码算法有特殊要求的领域。
  • 04:灵活的扩展架构 — 提供可扩展的架构设计,允许开发者根据业务需求添加新的功能和支持新的服务,如添加新的数据库类型、消息队列系统或密码算法。
  • 05:完整的开发示例 — 提供详细的代码实现和配置示例,帮助开发者快速理解和使用 Keycloak 扩展,减少开发和调试时间。
  • 06:标准化部署方案 — 提供标准的部署方式,支持将扩展 JAR 文件放入 Keycloak 的 standalone/deployments 目录,实现快速部署和集成。

技术支持

快速开始

  1. 选择扩展类型:根据您的需求选择合适的 Keycloak 扩展类型
  2. 查看文档:点击上方对应扩展类型的链接查看详细文档
  3. 环境准备:按照文档要求准备 JDK、Keycloak 等环境
  4. 编译构建:使用 Maven 编译构建扩展项目
  5. 部署扩展:将编译好的 JAR 文件放入 Keycloak 的 standalone/deployments 目录
  6. 配置扩展:根据文档要求在 Keycloak 管理控制台中配置扩展
  7. 测试验证:执行相应的测试验证扩展功能是否正常

注意事项

  • 环境要求:确保 JDK 版本为 11 或更高,Keycloak 版本为 17.0.0 或更高
  • 依赖管理:根据扩展类型安装相应的依赖,如数据库驱动、消息队列客户端或 Bouncy Castle 库
  • 配置管理:生产环境中建议通过 Keycloak 的组件配置管理扩展设置,避免硬编码配置
  • 性能优化:根据实际使用场景优化扩展性能,如使用连接池管理数据库连接、批量处理事件等
  • 安全性:注意密码存储安全、连接安全和权限控制,避免安全漏洞
  • 测试验证:在生产环境部署前,进行充分的测试,确保扩展功能正常
  • 版本兼容性:注意 Keycloak 版本与扩展版本的兼容性,避免因版本不匹配导致的问题
  • 文档维护:维护详细的文档,记录配置选项和使用方法
  • 监控管理:定期监控扩展的运行状态,及时发现和解决问题
  • 合规性:确保扩展的使用符合相关法律法规和行业规范

免责声明

本项目基于 GitHub 开源软件进行定制化开发,旨在为企业和开发者提供更便捷的项目基座解决方案。使用本项目时,请务必了解以下免责声明:

  1. 开源基础:本项目基于 GitHub 开源软件构建,遵循原开源协议的相关规定。
  2. 定制开发:我们对原开源软件进行了定制和扩展,以提供更优质的开发体验和功能支持。
  3. 责任限制:对于使用本项目可能产生的任何直接或间接的经济损失、数据丢失或其他问题,北京必码科技工作室不承担任何责任。
  4. 使用建议:在生产环境中使用本项目前,请进行充分的测试和验证,确保其符合您的业务需求和安全要求。
  5. 技术支持:我们提供技术支持服务,但不保证解决所有可能出现的问题。
  6. 合规使用:用户应确保在使用本项目时遵守相关法律法规和行业规范,不得用于任何违法或违规用途。