第 15 章 OpenID Connect 集成
HawtIO 已经支持 Keycloak 作为 OpenID 提供程序。但是,Keycloak 已宣布 HawtIO 使用的配置方法已弃用。因为 OpenID Connect Core 1.0 是分布式身份验证的广泛规格和标准方法(基于 OAuth 2),所以HawtIO 4 现在支持通用的 OpenID 身份验证。
15.1. 构建块和术语 复制链接链接已复制到粘贴板!
要了解 HawtIO 如何使用 OpenID Connect 和 OAuth2,值得重新调用一些基本概念。基于 OpenID Connect (基于 OAuth2构建)的分布式身份验证有 3 个主要方:
资源服务器 :
托管受保护资源的服务器组件,其中根据访问令牌限制或授予其访问。通常,这个服务器通过 REST API 访问,且不会自行提供用户界面。
客户端 :
应用程序(通常使用用户界面),它们代表用户(被视为资源所有者)访问资源服务器。若要访问资源服务器,客户端必须先获取访问令牌。
在 OpenID Connect 规格中,客户端被命名为依赖方(RP)。
授权服务器 :
协调客户端和资源服务器之间通信的服务器。客户端要求授权服务器验证用户(资源所有者),如果身份验证成功,则会为客户端发出访问令牌来访问资源服务器。
在 OpenID Connect 规格中,授权服务器名为 OpenID Provider (OP)。
OAuth2 和 OpenID Connect 的主要目标,它允许应用在没有使用用户凭证和切换到令牌交换的情况下访问 API。知道 HawtIO 如何映射到上述角色非常重要:
- HawtIO 客户端应用是 OAuth2 客户端。用户与 HawtIO Web 应用程序交互,后者与 HawtIo Server (backend)与 Jolokia 代理通信。在访问 Jolokia 代理前,ShawtIO 需要 OpenID Connect 访问令牌。为此,ShawtIO 客户端通过将用户重定向到授权服务器来启动 OpenID Connect 身份验证进程。
- HawtIO 服务器应用程序是一个 JakartaEE 应用程序,公开 Jolokia Agent API,它根据访问令牌的内容授权用户操作。使用 OAuth2 术语时,hawtIO 服务器是一个资源服务器。
以下 UML 图表显示了大图。
最重要的方面是: HawtIO 客户端永远不会处理用户凭证。使用授权服务器和 HawtIO 客户端进行身份验证的用户只获得访问 HawtIO 服务器(及其 Jolokia API)的访问令牌。