第 2 章 使用 OpenID Connect 保护应用程序和服务


2.1. 可用端点

作为完全兼容的 OpenID Connect Provider 实现,红帽构建的 Keycloak 会公开一组端点,供应用程序和服务用来验证和授权其用户。

本节论述了应用程序和服务在与红帽构建的 Keycloak 交互时应使用的一些关键端点。

2.1.1. Endpoints

要理解的最重要端点是 已知的 配置端点。它列出了与红帽构建的 Keycloak 中 OpenID Connect 实现相关的端点和其他配置选项。端点是:

/realms/{realm-name}/.well-known/openid-configuration
Copy to Clipboard Toggle word wrap

要获取完整的 URL,请添加红帽构建的 Keycloak 的基本 URL,并将 {realm-name} 替换为您的域的名称。例如:

http://localhost:8080/realms/master/.well-known/openid-configuration

有些 RP 库从此端点检索所有必要的端点,但对于其他库,您可能需要单独列出端点。

2.1.1.1. 授权端点

/realms/{realm-name}/protocol/openid-connect/auth
Copy to Clipboard Toggle word wrap

授权端点执行最终用户的身份验证。此身份验证通过将用户代理重定向到此端点来实现。

如需了解更多详细信息,请参阅 OpenID Connect 规格中的 Authorization Endpoint 部分。

2.1.1.2. 令牌端点

/realms/{realm-name}/protocol/openid-connect/token
Copy to Clipboard Toggle word wrap

令牌端点用于获取令牌。令牌可以通过交换授权代码或直接提供凭据(根据所使用的流)来获取。令牌端点也用于在过期时获取新的访问令牌。

如需了解更多详细信息,请参阅 OpenID Connect 规格中的 Token Endpoint 部分。

2.1.1.3. userinfo 端点

/realms/{realm-name}/protocol/openid-connect/userinfo
Copy to Clipboard Toggle word wrap

userinfo 端点返回有关经过身份验证的用户的标准声明;此端点受 bearer 令牌保护。

如需了解更多详细信息,请参阅 OpenID Connect 规格中的 Userinfo 端点 部分。

2.1.1.4. 退出端点

/realms/{realm-name}/protocol/openid-connect/logout
Copy to Clipboard Toggle word wrap

logout 端点会注销经过身份验证的用户。

用户可以重定向到端点,这会导致活跃用户会话被注销。然后,用户代理会被重定向到应用程序。

端点也可以由应用直接调用。要直接调用此端点,需要包含刷新令牌以及验证客户端所需的凭据。

2.1.1.5. 证书端点

/realms/{realm-name}/protocol/openid-connect/certs
Copy to Clipboard Toggle word wrap

证书端点返回域启用的公钥,编码为 JSON Web 密钥(JWK)。根据域设置,可以启用一个或多个密钥来验证令牌。如需更多信息,请参阅 服务器管理指南和 JSON Web 密钥规格

2.1.1.6. 内省端点

/realms/{realm-name}/protocol/openid-connect/token/introspect
Copy to Clipboard Toggle word wrap

内省端点用于检索令牌的活动状态。换句话说,您可以使用它来验证访问或刷新令牌。此端点只能由机密客户端调用。

有关如何在此端点调用的更多详细信息,请参阅 OAuth 2.0 Token Introspection 规格

您可以使用 HTTP 标头 Accept: application/jwt 而不是 Accept: application/json 来调用内省端点。如果是 application/jwt,响应可能包含带有完整 JWT 访问令牌的额外声明 jwt,这非常有用,特别是要内省的令牌是 轻量级访问令牌。这要求您在客户端高级设置中启用 Introspection Response 中启用支持 JWT 声明,该声明 会触发令牌内省。

2.1.1.7. 动态客户端注册端点

/realms/{realm-name}/clients-registrations/openid-connect
Copy to Clipboard Toggle word wrap

动态客户端注册端点用于动态注册客户端。

如需了解更多详细信息,请参阅 <@links.securingapps id="client-registration" /> 章节和 OpenID Connect Dynamic Client Registration 规格

2.1.1.8. 令牌撤销端点

/realms/{realm-name}/protocol/openid-connect/revoke
Copy to Clipboard Toggle word wrap

令牌撤销端点用于撤销令牌。此端点支持刷新令牌和访问令牌。在撤销刷新令牌时,也会撤销相应客户端的同意。

有关如何在此端点调用的更多详细信息,请参阅 OAuth 2.0 Token Revocation 规格

2.1.1.9. 设备授权端点

/realms/{realm-name}/protocol/openid-connect/auth/device
Copy to Clipboard Toggle word wrap

设备授权端点用于获取设备代码和用户代码。它可以被机密或公共客户端调用。

有关如何在此端点调用的更多详细信息,请参阅 OAuth 2.0 设备授权规格

2.1.1.10. Backchannel Authentication 端点

/realms/{realm-name}/protocol/openid-connect/ext/ciba/auth
Copy to Clipboard Toggle word wrap

backchannel 身份验证端点用于获取 auth_req_id,用于标识客户端发出的身份验证请求。它只能由机密客户端调用。

有关如何在此端点调用的详情,请参阅 OpenID Connect Client Initiated Backchannel Authentication Flow 规格

另请参阅 Red Hat build of Keycloak 文档(如 Client Initiated Backchannel Authentication Grant 部分) 和 Server Administration Guide 中的 Client Initiated Backchannel Authentication Grant 部分

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat