统一认证授权平台keycloak太牛了,我要搞一搞

元胞流沙
• 阅读 8421

统一认证授权平台keycloak太牛了,我要搞一搞

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

易用性

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

统一认证授权平台keycloak太牛了,我要搞一搞

统一认证授权平台keycloak太牛了,我要搞一搞

功能强大

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做了适配,非常适合使用了这两种体系的迁移扩展。这也是我选择它的重要原因之一。

缺点

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

统一认证授权平台keycloak太牛了,我要搞一搞

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

最后

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

关注公众号:Felordcn 获取更多资讯

个人博客:https://felord.cn

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
SAAS微服务脚手架推荐
!(https://oscimg.oschina.net/oscnet/cf1535168df593b1498718adcb7fe77dd04.png)基于SpringCloud(Hoxton.SR3)SpringBoot(2.2.6.RELEASE)的SaaS微服务脚手架,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源
Easter79 Easter79
4年前
Vue 探索与实践
!(https://oscimg.oschina.net/oscnet/1249ab902e1c575911b0afa27729ddbcc70.jpg)本文主要讲了实际业务在结合vue开发的过程中的探索与实践。业务介绍基于目标用户的孩子画像,打通、聚合京东现有体系关联资源,建立共生关系的开放式生态平台,涵盖满足家庭陪伴孩子成长过
Stella981 Stella981
4年前
Keycloak 基本功能
Keycloak是一个致力于解决应用和服务身份验证与访问管理的开源工具。可以通过简单的配置达到保护应用和服务的目的。用户管理你的应用不需要开发登录模块,验证用户和保存用户。Keycloak开发了用户管理,登录,注册,密码策略,安全问题,二步验证,密码重置等功能。登录,注册界面所需字段都是可配置,可自定义的。用户角色,权限管理功能,用户组功能。用户
Stella981 Stella981
4年前
Apache Sentry实战之旅(二)—— Sentry客户端使用
ApacheSentry虽然可以将HDFS、Hive与Impala三个组件的权限认证统一,但是只能按照给组授予角色的方式来进行授权,不能直接授权给组中的用户,显得不太灵活。有时候为了兼容已有大数据平台的授权体系,比如只使用Sentry控制Impala服务的权限,而不控制Hive和HDFS服务的权限,希望通过调用Sentry客
Stella981 Stella981
4年前
Apache Shiro反序列化识别那些事
1.1关于ApacheShiroApacheshiro是一个Java安全框架,提供了认证、授权、加密和会话管理功能,为解决应⽤安全提供了相应的API:1.认证⽤用户身份识别,常被称为用户”登录”2.授权访问控制3.密码加密保护或隐藏数据防止被偷窥4.会话管理用户相关的时间敏感的状态1.2Shiro反序列化
Stella981 Stella981
4年前
Spring Boot 的 oAuth2 认证(附源码)
OAuth2统一认证原理OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorizationlayer)。"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。"客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围
Stella981 Stella981
4年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Wesley13 Wesley13
4年前
mysql用户
1\.学会能按着需求创建一个帐号2\.知道连接字符串是什么样3\.密码密码怎么恢复mysql用户权限介绍mysql用户管理 !(https://oscimg.oschina.net/oscnet/368d3c1e00a0a9515545c2962660a27a080.png)!(https://oscimg.oschin
Stella981 Stella981
4年前
Keycloak单点登录
!(https://oscimg.oschina.net/oscnet/82539809f0d749688ef60b10791cebd7.png)登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此
Stella981 Stella981
4年前
Spring Cloud Security OAuth2.0 认证授权系列(一) 基础概念
前序最近想搞下基于SpringCloud的认证授权平台,总体想法是可以对服务器授权,想做一个基于Agent的无侵入的方式。因为新版本的SpringCloudSecurity、OAuth2.0貌似改了些东西,说上网随便翻翻,但发现没有针对SpringSecurityOAuth2.0认证授权系统性的文章。遂结合