专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Keycloak是什么

来源:小易整编  作者:小易  发布时间:2023-08-17 04:34
摘要:Keycloak是一个针对现代应用程序和服务的开源身份和访问管理解决方案。Keycloak支持单点登录,因此服务可以通过OpenIDConnect、OAuth2.0等协议对接Keycloak。Keycloak是一个针对现代应...

Keycloak 是一个针对现代应用程序和服务的开源身份和访问管理解决方案。Keycloak 支持单点登录,因此服务可以通过 OpenID Connect、OAuth 2.0 等协议对接 Keycloak。

Keycloak是什么

Keycloak 是一个针对现代应用程序和服务的开源身份和访问管理解决方案。Keycloak 支持单点登录(Single-Sign On),因此服务可以通过 OpenID Connect、OAuth 2.0 等协议对接 Keycloak。同时 Keycloak 也支持集成不同的身份认证服务,例如 Github、Google 和 Facebook 等。

Keycloak 早在 2014 年 9 月就发布了其最初版本。目前,它的最新版本为 13.0.1 (于 2021 年 06 月 01 日发布) 。由 GitHub 的项目描述页面可知,Keycloak 是一个“身份和访问管理”的工具。它是由 Red Hat 的人员提供开发与维护。作为一个开源工具,Keycloak 目前已获得了 Apache 2.0 的许可证,因此任何感兴趣开发者都可以对其作出贡献。同时,由于它是 Red Hat SSO 的上游项目,因此可以被用户运用到以企业为中心(enterprise-centered)的项目中。

Keycloak 的特性

有了前面的概念,下面让我们来具体看看 Keycloak 到底具有哪些功能特性。

多协议支持

前文提到了 Keycloak 可以支持三种不同的协议,他们分别是:OpenID 连接、OAuth 2.0 和 SAML 2.0。

SSO 单点登录

Keycloak 能够完全支持单点登录(Single Sign-On)与单点登出(Single Sign-Out)。

管理控制台

Keycloak 提供了基于 Web 的 GUI,您可以按需配置各种实例。

用户身份和访问

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

外部身份标识源的同步

如果您的用户目前已经具有某种类型的用户数据库,那么 Keycloak 则能够与此类数据库进行同步。默认情况下,它支持 LDAP 和活动目录(AD)。当然,您也可以使用 Keycloak 的用户存储 API,为任何用户创建自定义的可扩展数据库。值得注意的是,在这种组合方案中,某些必要的数据可能无法获取到 Keycloak 的齐全功能,因此您最好在实施前进行全面调研。

身份代理

Keycloak 可以作为用户和一些外部身份提供者之间代理。我们可以通过 Keycloak 的管理面板,来编辑两侧对应关系的列表。

社交身份提供者

Keycloak 内置并支持 Google、Twitter、Facebook、以及 Stack Overflow 等社交身份提供者。当然,这需要您在管理面板中进行手动配置。我们可以在 Keycloak 的相关文档中,查询到其支持的、社交身份提供者的全量列表,以及分别对应的配置手册。

页面定制

Keycloak 允许您定制所有需要显示给用户看的页面。由于这些页面是.ftl 格式的,因此您可以使用经典的 HTML 标记和 CSS 风格,来统一展示应用程序和公司品牌的风格。您甚至可以通过定制 JS 脚本,来个性化各种原本受限的页面。

Keycloak 的优势

Keycloak 是免费的。而诸如 AuthO 或 Okta 之类的工具则需要付费。

由于它支持三种不同的身份验证协议,因此您可以只使用一种工具,来协同多种应用程序,满足不同的安全需求。

您可以根据实际需求,或自己的应用偏好,在不受限制的情况下,选用某种认证协议与工具。正如前文所述,Keycloak 是 Red Hat SSO 的上游项目,因此它在产品质量和系统设计上都有保证。

Keycloak 的强大社区支持,既体现在大量的使用案例上,又形成了良好的问题互助与解答氛围。例如,由于 Keycloak 有一个内置的身份提供者同步机制,因此它对于那些已将用户存放到 LDAP 或 AD 之类用户数据库环境的场景,特别实用。

它支持诸如 Google 和 Facebook 之类社交身份提供者,您和您的团队能够直接以开箱即用(out of the box)的方式,使用社交账号进行登录。

Keycloak 提供了基于 Web 的 GUI,用户可以对配置进行轻松地修改。

Keycloak SSO 可以支持用户同时访问多项服务。

Keycloak 的不足之处

Keycloak 虽然有着上述显著的优点,但是它也有着自身的不足之处。

如果某个应用程序只有单个客户用到了 Keycloak,那么他将无法获益 SSO 的整体规模性优势。

虽然 Keycloak 在原则上可以被配置成一个纯用户数据库,但是它会附带有各种特殊用途的表,因此您还不如直接使用专有的用户关系型数据库。

由于 Keycloak 属于一个免费的开源项目,因此在其社区中,并无固定的开发者、及其发展路线路图。而且,它无法像 Stack Overflow 那样,为用户提供具有质量保证的企业级服务支持和响应水平。


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1027958.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • ipad a1822是什么型号

    ipad a1822是什么型号

    ipada1822是苹果ipad第5代的型号;ipad第5代是苹果公司于2017年03月21日在美国加利福尼亚州发布的平板电脑;该机型采用铝镁合金材质一体成型结构;前端外框为白色或黑色;有银色、金色和深空灰色3种外观颜色。本教程操作环境:...

  • html中浮动是什么

    html中浮动是什么

    在html中,浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距,只需要给元素设置“float:left|right|none|inherit”样式即可。本教程操作环境:windows7系统、CSS3...

  • 周排行
  • 月排行
  • 年排行

精彩推荐