搜索

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

download PDF

本节论述了如何使用红帽构建的 Keycloak 保护带有 OpenID Connect 的应用程序和服务。

2.1. 可用的端点

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

本节论述了在与 Red Hat build of Keycloak 交互时,您的应用程序和服务应使用的一些关键端点。

2.1.1. Endpoints

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

/realms/{realm-name}/.well-known/openid-configuration

要获取完整的 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

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

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

2.1.1.2. 令牌端点

/realms/{realm-name}/protocol/openid-connect/token

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

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

2.1.1.3. userinfo 端点

/realms/{realm-name}/protocol/openid-connect/userinfo

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

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

2.1.1.4. 注销端点

/realms/{realm-name}/protocol/openid-connect/logout

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

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

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

2.1.1.5. 证书端点

/realms/{realm-name}/protocol/openid-connect/certs

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

2.1.1.6. 内省端点

/realms/{realm-name}/protocol/openid-connect/token/introspect

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

有关如何在此端点上调用的更多详细信息,请参阅 OAuth 2.0 令牌内省规格

2.1.1.7. 动态客户端注册端点

/realms/{realm-name}/clients-registrations/openid-connect

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

如需了解更多详细信息,请参阅 客户端注册 一章OpenID Connect Dynamic Client Registration 规格

2.1.1.8. 令牌撤销端点

/realms/{realm-name}/protocol/openid-connect/revoke

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

有关如何在此端点上调用的更多详细信息,请参阅 OAuth 2.0 令牌撤销规格

2.1.1.9. 设备授权端点

/realms/{realm-name}/protocol/openid-connect/auth/device

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

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

2.1.1.10. Backchannel Authentication 端点

/realms/{realm-name}/protocol/openid-connect/ext/ciba/auth

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

有关如何在此端点上调用的更多详细信息,请参阅 OpenID Connect Client Initiated Backchannel Authentication Flow 规格

另请参阅 Red Hat build of Keycloak 文档的其他位置,如 Client Initiated Backchannel Authentication Grant section of this guide and Client Initiated Backchannel Authentication Grant section of Server Administration Guide。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.