Keycloak是什么

Fanly 问答 2022-04-28 17:49:17 阅读(...)

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

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

Keycloak

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 那样,为用户提供具有质量保证的企业级服务支持和响应水平。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • WorkOS

    WorkOS是什么

    WorkOS 是一个允许开发人员向应用程序添加企业功能(如单点登录 (SSO) 和目录同步)的平台。WorkOS 提供了一组构建块,用于向应用程序添加企业功能,例如 OAuth(允许使用包括 Google 和 Microsoft 在内的第三方提供商进行登录)。
  • 公开密钥密码学 Public-key cryptography

    公开密钥密码学是什么

    公开密钥密码学也称非对称式密码学是密码学的一种算法,需要两个密钥,一个是公开密钥,另一个是私有密钥;公钥用作加密,私钥则用作解密。使用公钥把明文加密后所得的密文,只能用相对应的私钥才能解密并得到原本的明文,最初用来加密的公钥不能用作解密。
  • 5g network 5g 网络

    为什么4G卡显示5G网络

    4G卡有5G信号是因为手机支持5G网络且处于5G网络覆盖范围内,此时手机可以接收到5 网络,所以手机显示5G。此时,手机的网速的下行速率最高可达300Mbps,比4G网速更快。
  • Pretty Good Privacy 优良保密协议 PGP

    PGP是什么

    PGP(优良保密协议)是一套用于讯息加密、验证的应用程序。PGP本身是商业应用程序;开源并具有同类功能的工具名为GnuPG(GPG)。PGP及其同类产品均遵守OpenPGP数据加解密标准。
  • 公开密钥加密 Public-key cryptography

    公开密钥加密是什么

    公开密钥密码学也称非对称式密码学,是密码学的一种算法,需要两个密钥,一个是公开密钥,另一个是私有密钥;公钥用作加密,私钥则用作解密。使用公钥把明文加密后所得的密文,只能用相对应的私钥才能解密并得到原本的明文,最初用来加密的公钥不能用作解密。
  • Certificate Authority 证书颁发机构

    证书颁发机构是什么

    数字证书认证机构(CA),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。