当前位置:崇尚新闻网 > 娱乐 > 正文

keycloak 什么是Keycloak和它的具体用途

导语:近年来,应用安全成为越来越重要的话题,在企业的日常运营中被频繁提及。为了避免因未经授权访问受保护数据而遭受数百万美元的经济处罚,企业通常希望他们拥有的几乎每个应用程序和服务都能获得匹配的用户身份验证和访问管理。目前,为了达到上述控制目的,市场上有

近年来,应用安全成为越来越重要的话题,在企业的日常运营中被频繁提及。为了避免因未经授权访问受保护数据而遭受数百万美元的经济处罚,企业通常希望他们拥有的几乎每个应用程序和服务都能获得匹配的用户身份验证和访问管理。

目前,为了达到上述控制目的,市场上有多种安全解决方案,有免费的,也有付费的。本文将向您介绍一种新的实用工具——key cloak。

什么是Keycloak?

Keycloak早在2014年9月就发布了原始版本。目前它的最新版本是13.0.1。根据GitHub的项目描述页面,Keycloak是一个“身份和访问管理”的工具。由红帽人员开发维护。作为一个开源工具,Keycloak已经获得了Apache 2.0的许可,所以任何感兴趣的开发者都可以为它做贡献。同时由于是红帽SSO的上游项目,可以被用户应用到以企业为中心的项目中。目前Keycloak支持三种不同类型的协议,可以在文末的实用链接中找到。

键盘锁的特点

有了前面的概念,让我们具体看看Keycloak有哪些特性。

多协议支持

如上所述,Keycloak可以支持三种不同的协议,分别是OpenID连接、OAuth 2.0和SAML 2.0。

单点登录

Keycloak可以完全支持单点登录和单点注销。

监视控制台

Keycloak提供了一个基于web的GUI,您可以根据需要配置各种实例。

用户身份和访问

Keycloak可以作为一个独立的用户身份和访问管理器,这样我们就可以创建用户数据库,自定义角色和用户组。因此,我们可以基于预定义的角色在应用程序内部设置相关的安全设置,以验证用户身份。

外部身份源的同步

如果您的用户已经有了某种类型的用户数据库,那么Keycloak可以与这种类型的数据库同步。默认情况下,它支持LDAP和活动目录。当然,您也可以使用Keycloak的用户存储API为任何用户创建定制的可扩展数据库。值得注意的是,在这个组合方案中,一些必要的数据可能得不到Keycloak的完整功能,所以你最好在实施前进行全面调查。

身份代理

Keycloak可以充当用户和一些外部身份提供者之间的代理。我们可以通过Keycloak的管理面板编辑双方对应关系的列表。

社会身份提供者

Keycloak内置并支持谷歌、推特、脸书和Stack Overflow等社交身份提供商。当然,这需要在管理面板中手动配置。我们可以在Keycloak的相关文档中找到KeyCloak支持的社交身份提供者的完整列表以及相应的配置手册。

页面定制

Keycloak允许您自定义所有需要向用户显示的页面。因为这些页面在。ftl格式,可以使用经典的HTML标签和CSS样式来统一显示应用的样式和公司品牌。您甚至可以定制JS脚本来个性化各种有限的页面。

奇克洛克的发布

目前,Keycloak主要有三种发行版:

服务器版本

你可以从Keycloak的下载页面获得独立应用的tar或zip包。它已经打包了所有能够让它正常运行的脚本、文档和基本组件。目前这种分发有两个分支:一个是由WildFly服务器支持,另一个是由Quarkus支持。由于它们还处于预览阶段,您在使用时可能会遇到一些意想不到的错误。

Docker镜像版本

它们是适合Docker、Podman、Kubernetes和OpenShift的发行版。目前,Keycloak的官方Docker图片有两个:一个是Quay集装箱登记处持有的quay.io/keycloak/keycloak,另一个是Docker Hub持有的jboss/keycloak。您可以通过一个简单的docker pull命令单独下载它们。

操作员版本

这是一个基于Kubernetes和OpenShift的Operator SDK的发行版。

可以看出,不同的发行版适合不同的业务需求。如果您正在使用Docker或Kubernetes,请选择Keycloak的镜像和操作员版本。其中,Docker镜像版本的Keycloak对于开发测试来说非常实用。

作为链接,您可以首先构建Keycloak服务器版本,并对其进行测试和更改。测试完成后,重新启动Docker映像,将所有更改恢复到Keycloak,以便为下一次测试获得一个“纯净”的环境。

Keycloak的集成

在了解了Keycloak的基本概念和特性之后,让我们讨论一下如何将其集成到我们自己的应用程序中。

这里我主要从Java生态系统的角度来讨论,当然也会涉及到其他一些语言和框架。目前在Java领域,流行的Spring Boot、Quarkus、Micronaut等框架都有各种各样的适配器,方便与Keycloak集成。比如Spring Boot有spring-boot-keycloak-starter,而Quarkus有quarks-keycloak-authorization。另外,Python包:python-keycloak、基于Scala的应用程序库:keycloak4s、基于C#的Keycloak.Net也非常实用。所有这些库不仅是开源的,而且是由相应的社区围绕Keycloak开发和维护的。你可以在文章的最后找到相关的链接。

其中,Spring Boot和Quarkus框架提供了已有的抽象,所以整个集成只需要几行代码,填入单个配置属性就可以实现。其他库只为客户提供Keycloak API,所以集成有点复杂。

Keycloak的优势

Keycloak是免费的。AuthO或Okta等工具是收费的。因为它支持三种不同的身份验证协议,所以您只能使用一种工具来与各种应用程序协作,以满足不同的安全要求。您可以根据自己的实际需求或自己的应用偏好,不受限制地选择某种认证协议和工具。如前所述,Keycloak是红帽SSO的上游项目,所以既能保证产品质量,又能保证系统设计。Keycloak强大的社区支持不仅体现在大量的用例中,还形成了互助答疑的良好氛围。例如,因为Keycloak具有内置的身份提供者同步机制,所以它对于用户已经存储在用户数据库环境中的场景特别实用。它支持谷歌和脸书等社交身份提供商,您和您的团队可以直接使用开箱即用的社交账户登录。Keycloak提供了基于web的GUI,用户可以轻松修改配置。Keycloak SSO可以支持用户同时访问多个服务。

Keycloak的缺点

虽然Keycloak有上述显著的优点,但也有自己的缺点。

如果一个应用程序只有一个客户使用Keycloak,他将无法从SSO的整体规模优势中获益。虽然Keycloak原则上可以配置为纯用户数据库,但它附带了各种特殊用途的表,因此您不妨直接使用专有的用户关系数据库。因为Keycloak是一个免费的开源项目,所以在其社区中没有固定的开发者及其开发路线图。而且不能像Stack Overflow那样为用户提供企业级的服务支持和有质量保证的响应级别。

摘要

综上所述,我们讨论了Keycloak的基本概念、不同的发行版、功能特性、优缺点。作为一种新的身份和访问管理工具,它值得在合适的控制应用场景中尝试。当然,如果你在使用过程中有什么经验,也可以通过它的社区及时给出反馈,促进它的不断迭代和改进。

免责申明:以上内容属作者个人观点,版权归原作者所有,不代表崇尚新闻网立场!登载此文只为提供信息参考,并不用于任何商业目的。如有侵权或内容不符,请联系我们处理,谢谢合作!
当前文章地址:https://www.csxming.com/yule/713468.html 感谢你把文章分享给有需要的朋友!
上一篇:打辅警算袭警吗 痛快 辅警打人、殴打辅警皆“红牌”处理 下一篇: 黄亚生 “印度模式优于中国模式”