,想打通几个应用的用户关系,搭建一个集中的用户管理系统,对应用的用户系统进行统一管理。经过一番考察,选择了RedHat开源的Keycloak,这是一个非常强大的统一认证授权管理平台。之所以选择Keycloak,是基于以下几个原因。易用性Keycloak为Web应用程序和Restful服务提供一站式单点登录解决方案。它的目标是让应用安全管理变得简单,让开发者可以轻松保护他们的应用和服务。并且Keycloak提供了登录、注册、用户管理的可视化管理界面。您可以使用该界面配置满足您需求的安全策略,并进行用户管理。而且登录界面可配置,GUI管理功能强大。Keycloak实现了业界通用的认证授权协议和通用的安全技术,主要包括:浏览器应用的单点登录(SSO)。OIDC认证授权。OAuth2.0。SAML。多租户支持。身份代理-使用外部OpenIDConnect或SAML身份提供者进行身份验证。登陆使用。用户联盟-从LDAP和ActiveDirectory服务器同步用户。KerberosBridge-自动验证登录到Kerberos服务器的用户。用于集中管理用户、角色、角色映射、客户端和配置的管理控制台。用于集中管理用户帐户的管理控制台。自定义主题。两阶段认证。完整的登录流程-可选的用户自助注册、恢复密码、验证电子邮件、要求密码更新等。会话管理-管理员和用户自己可以查看和管理用户会话。令牌映射-将用户属性、角色等映射到令牌和语句中。安全策略恢复功能。CORS支持——客户端适配器内置了对CORS的支持。自定义SPI接口扩展。JavaScript应用程序、WildFly、JBossEAP、Fuse、Tomcat、Jetty、Spring等的客户端适配器。支持任何具有OpenIDConnect依赖方库或SAML2.0服务提供商库的平台/语言。有专门的SpringBootStarter,非常容易集成到SpringBoot中。基于实践的开源“红帽出品的产品一定是优质产品”。RedHat的良好声誉决定了Keycloak的可靠性。它遵循Apache2.0开源协议进行开源。经过八年持续开源,代码质量非常高,非常适合定制化开发。RedHat的商业付费认证授权产品RedHatSSO是基于Keycloak的。为企业提供动态的单点登录解决方案,间接证明了Keycloak的可靠性。适配SpringSecurity该框架已经适配了SpringSecurity和SpringBoot,非常适合使用这两个系统的迁移扩展。这也是我选择它的重要原因之一。缺点虽然优点很多,缺点也很明显。强大的功能意味着架构更复杂,概念更多,学习成本也比较高。KeyClock的核心概念中文资料比较少,需要自己看官方文档。对于业务需要的认证方式,可能需要自己实现一些接口,这也很考验个人的编码能力。结果,胖哥关注这件事很久了,但一直没有下手。一是因为确实有挑战性,二是没有实际的开发场景。现在机会来了。今天就对这个框架做一个简单的介绍,让不了解它的同学先简单了解一下。如果对Keycloak进行过详细的研究和实践,基本可以搞定一些大中型应用安全系统的搭建,这其中既有诱惑,也有挑战。另外,这个方案适合搭建统一的认证授权入口,不适合做一些小的应用,比较重,但是做微服务应该很好用。当新的Spring身份验证服务器尚未可用于生产时,这是一个不错的选择。本文转载自微信公众号“码农小胖哥”,可通过以下二维码关注。转载本文请联系码农小胖公众号。
