作为符合 OAuth2、OpenID Connect 和 SAML 标准的服务器,Keycloak 可以保护任何应用程序和服务,只要它们使用的技术堆栈支持这些协议中的任何一个。有关 Keycloak 支持的安全协议的更多详细信息,请查看 服务器管理指南。
他们使用的编程语言、框架或反向代理已经提供了对其中一些协议的大部分支持。利用应用程序生态系统中已经提供的支持是使您的应用程序完全符合安全标准和最佳实践的关键方面,这样您就可以避免供应商锁定。
对于某些编程语言,Keycloak 提供了库来弥补特定安全协议缺乏支持的差距,或提供与服务器更加丰富和紧密耦合的集成。这些库被称为 **Keycloak 客户端适配器**,如果无法依赖应用程序生态系统中提供的功能,则应将它们作为最后的手段使用。
以下是使用 Keycloak 保护应用程序或服务的步骤。
使用以下选项之一将客户端注册到领域
Keycloak 管理控制台
客户端注册服务
CLI
使用以下选项之一在您的应用程序中启用 OpenID Connect 或 SAML 协议
利用应用程序生态系统中现有的 OpenID Connect 和 SAML 支持
使用 Keycloak 适配器
本指南提供了这些步骤的详细说明。您可以在 服务器管理指南 中找到有关如何通过管理控制台将客户端注册到 Keycloak 的更多详细信息。
Keycloak 快速入门存储库 提供了使用不同编程语言和框架保护应用程序和服务的示例。通过查看他们的文档和代码库,您将了解为使用 Keycloak 保护您的应用程序和服务所需的最少更改。
此外,请参阅以下部分以了解针对 OpenID Connect 和 SAML 协议的受信赖和知名客户端实现的建议。
本指南中使用了以下术语
客户端
是与 Keycloak 交互以对用户进行身份验证并获取令牌的实体。大多数情况下,客户端是代表用户运行的应用程序和服务,它们为用户提供单点登录体验,并使用服务器颁发的令牌访问其他服务。客户端也可以是仅对获取令牌并代表自身运行以访问其他服务的实体感兴趣的实体。
应用程序
包含适用于每个协议特定平台的各种应用程序
客户端适配器
是可以轻松使用 Keycloak 保护应用程序和服务的库。它们提供了与底层平台和框架的紧密集成。
创建客户端
和注册客户端
是相同的操作。创建客户端
是使用管理控制台创建客户端的术语。注册客户端
是使用 Keycloak 客户端注册服务注册客户端的术语。
服务帐户
是一种能够代表自身获取令牌的客户端类型。