最近想要打通几个应用程序的用户关系,搞一个集中式的用户管理系统来统一管理应用的用户体系。经过一番调研选中了红帽开源的Keycloak,这是一款非常强大的统一认证授权管理平台。之所以选中了Keycloak是基于以下几个原因。

易用性

Keycloak为Web应用和Restful服务提供了一站式的单点登录解决方案。它的目标就是让应用的安全管理变得简单,让开发人员可以轻松地保护他们的应用程序和服务。并且Keycloak为登录、注册、用户管理提供了可视化管理界面,你可以借助于该界面来配置符合你需要的安全策略和进行用户管理。而且还可以

登录界面

可配置的GUI管理

功能强大

Keycloak实现了业内常见的认证授权协议和通用的安全技术,主要有:

  • 浏览器应用程序的单点登录(SSO)。

  • OIDC认证授权。

  • OAuth 2.0。

  • SAML。

  • 多租户支持。

  • 身份代理 - 使用外部 OpenID Connect 或 SAML 身份提供商进行身份验证。

  • 第三方登录。

  • 用户联盟 - 从 LDAP 和 Active Directory 服务器同步用户。

  • Kerberos 网桥 - 自动验证登录到 Kerberos 服务器的用户。

  • 用于集中管理用户、角色、角色映射、客户端和配置的管理控制台。

  • 用户账户集中管理的管理控制台。

  • 自定义主题。

  • 两段身份认证。

  • 完整登录流程 - 可选的用户自注册、恢复密码、验证电子邮件、要求密码更新等。

  • 会话管理 - 管理员和用户自己可以查看和管理用户会话。

  • 令牌映射 - 将用户属性、角色等映射到令牌和语句中。

  • 安全策略恢复功能。

  • CORS 支持 - 客户端适配器具有对 CORS 的内置支持。

  • 自定义SPI接口扩展。

  • JavaScript 应用程序、WildFly、JBoss EAP、Fuse、Tomcat、Jetty、Spring 等客户端适配器。

  • 支持任何具有 OpenID Connect Relying Party 库或 SAML 2.0 Service Provider 库的平台/语言。

有专门的Spring Boot Starter,非常容易集成到Spring Boot中。

基于实践的开源

“红帽出品,必属精品。”红帽良好的口碑决定了Keycloak的可靠性。它遵循Apache 2.0开源协议进行开源,经过八年的持续开源,代码质量很高,非常适合做定制化开发。红帽的商业付费认证授权产品Red Hat SSO就是基于Keycloak。为企业提供了动态单点登录的解决方案,间接证明了Keycloak的可靠性。

适配Spring Security

这个框架对Spring SecuritySpring Boot做了适配,非常适合使用了这两种体系的迁移扩展。这也是我选择它的重要原因之一。

缺点

虽然优点非常多,但是缺点也很明显。功能强大就意味着架构比较复杂,概念比较多,学习成本比较高。

KeyClock的核心概念

中文资料也比较少,需要自己去啃官方的文档。对于业务需要的认证方式可能会需要自行实现一些接口,同样考验着个人的编码能力。

最后

胖哥对这个东西关注了很久却没有下手,第一是因为它确实有挑战性,第二没有实际的开发场景,现在机会来了,今天对这个框架进行一个简单的介绍,让不了解它的同学先简单了解一下。如果你对Keycloak进行了详细的研究和实践,基本上能够搞定一些大中型的应用安全体系构建,既有诱惑也有挑战。另外这个程序适合做统一认证授权门户构建,不太适合一些小应用,相对比较重,不过微服务用这个应该非常棒。在目前新的Spring认证服务器还没有达到生产可用时是一个不错的选择。

所以后续会和大家一起研究学习这个东西,感兴趣的朋友可以多多关注:码农小胖哥

往期推荐

推荐一本DD刚撸完的书,顺便送一波!

GitHub的AI写代码翻车了,会在注释里给你写上what the f***,因为...

重装IDEA再也不愁了,一招搞定同步个人配置!

用办公电脑存不雅视频,结果被告了...

小米宣布发放价值15.3亿元的股票!人均39万,最小授予者仅24岁

这个安全平台结合Spring Security逆天了,我准备研究一下相关推荐

  1. SpringSecurity系列(一) 初识 Spring Security

    1. 写在前面 Java 领域老牌的权限管理框架当属 Shiro 了,Shiro 有着众多的优点,例如:轻量.简单.易于集成等.当然 Shiro 也有不足,例如对 OAuth2 支持不够,在 Spri ...

  2. spring security 简单理解

    一.简介 Spring Security 是 Spring 家族中的一个安全管理框架. 一般来说,常见的安全管理技术栈的组合是这样的: SSM + Shiro Spring Boot/Spring C ...

  3. Spring Security 示例UserDetailsS​​ervice

    Spring Security示例UserDetailsS​​服务 欢迎使用UserDetailsS​​ ervice的Spring安全性示例.在上一篇文章中,我们学习了如何在Web应用程序中使用Sp ...

  4. Spring Security示例教程

    Spring Security provides ways to perform authentication and authorization in a web application. We c ...

  5. Spring Security系列(11)- Security5.0版本Oauth2开放平台环境搭建

    前言 上篇文档,我们了解了OAuth2.0的相关知识,接下来我们搭建一个自己的Oauth2开放平台. 从流程图中,可以看到,后台需要搭建一个认证服务器,负责用户登录.第三方授权等功能,还需要搭建自己的 ...

  6. spring security oauth rce (cve-2016-4977) 漏洞分析

    0x00 漏洞概述 1.漏洞简介 Spring Security OAuth是为Spring框架提供安全认证支持的一个模块,在7月5日其维护者发布了这样一个升级公告,主要说明在用户使用Whitelab ...

  7. Spring Security实战教程2021版即将下线,2022版即将上线!

    在2021年2月份,我把在2020年总结的Spring Security 学习曲线PDF,共计240000字的教程免费开放给了各位同学. 在近一年的时间里,不少同学借助于这个PDF,加上自己的努力逐渐 ...

  8. 一个接口是如何在Keycloak和Spring Security之间执行的

    在上一篇我们对Keycloak的常用配置进行了熟悉,今天我们来对Keycloak适配Spring Security的执行流程做一个分析,简单了解一下其定制的一些Spring Security过滤器. ...

  9. Spring Security 实战干货:客户端OAuth2授权请求的入口在哪里

    1. 前言 在Spring Security 实战干货:OAuth2 第三方授权初体验一文中我先对 OAuth2.0 涉及的一些常用概念进行介绍,然后直接通过一个 DEMO 来让大家切身感受了 OAu ...

最新文章

  1. richtextbox自动滚动到最下面_软网app:滚动截图将超长网页“一网打尽”
  2. Aliyun OSS Nginx proxy module(阿里云OSS Nginx 签名代理模块)
  3. Android---手动创建线程与GUI线程同步(二)
  4. MMC无法创建管理单元
  5. 用户体验改善案例_改善用户体验研究的5种习惯
  6. SQLMAP参数中文解说
  7. mongo之$group+$addToSet
  8. 去年北京居民服务消费快速增长 占消费支出半壁江山
  9. Android开发(一)
  10. 读书笔记之《Redis开发与运维》—— 一
  11. python webqq机器人_使用Python的Tornado框架实现一个简单的WebQQ机器人
  12. Python之动态检测编码chardet
  13. 运动目标跟踪(十一)--CN及CSK跟踪原理
  14. 进制转换模板——短除法
  15. ArrayList和LinkedList常用方法演示与解析
  16. 使用cpolar配置内网访问(内网穿透)教程(超详细,简单)
  17. java实现计算器_Java 实现简单计算器
  18. 在职非全日制计算机考研上岸心得分享
  19. Storm部分:Storm Grouping -- 数据流分组(各种数据分发策略的练习)【Java版纯代码】
  20. office2007各组件全面介绍

热门文章

  1. 关于redis性能估算的小方法
  2. Oracle to_char格式化函数
  3. Spring中的AOP在Advice方法中获取目标方法的参
  4. golang goroutine 退出方法
  5. python3 判断ip有效性 是否是内网ip
  6. python3 字符串 和 列表(list)互相转换
  7. searchsploit工具(exploit-db.com)使用实例 (linux 内核漏洞提权) exploitdb
  8. linux c open fopen freopen 文件操作函数
  9. Wireshark命令行工具tshark使用小记
  10. metasploit msfconsole 命令参数