第 8 章 授权服务


红帽构建的 Keycloak 授权服务基于已知的标准构建,如 OAuth2 和用户管理的访问规格。

OAuth2 客户端(如前端应用)可以使用令牌端点从服务器获取访问令牌,并使用这些令牌来访问由资源服务器(如后端服务)保护的资源。同样,红帽构建的 Keycloak 授权服务为 OAuth2 提供扩展,以便根据处理与所请求的资源或范围关联的所有策略来发布访问令牌。这意味着资源服务器可以根据服务器授予的权限并由访问令牌来强制访问其受保护的资源。在 Red Hat build of Keycloak Authorization Services 中,带有权限的访问令牌被称为 Requesting Party Token 或 RPT。

除了 RPT 颁发外,红帽构建的 Keycloak 授权服务还提供一组 RESTful 端点,允许资源服务器管理其受保护的资源、范围、权限和策略,帮助开发人员将这些功能扩展或集成到其应用程序中,以支持精细的授权。

8.1. 发现授权服务端点和元数据

Red Hat build of Keycloak 提供了一个发现文档,客户端可以获取所有必要的信息,以与红帽构建的 Keycloak 授权服务交互,包括端点位置和功能。

发现文档可从以下位置获取:

curl -X GET \
  http://${host}:${port}/realms/${realm-name}/.well-known/uma2-configuration
Copy to Clipboard Toggle word wrap

其中 ${host}:${port} 是运行 Red Hat build of Keycloak 的主机名(或 IP 地址)和端口,${realm-name} 是红帽构建的 Keycloak 中域的名称。

因此,您应该得到一个响应,如下所示:

{

    // some claims are expected here

    // these are the main claims in the discovery document about Authorization Services endpoints location
    "token_endpoint": "http://${host}:${port}/realms/${realm-name}/protocol/openid-connect/token",
    "token_introspection_endpoint": "http://${host}:${port}/realms/${realm-name}/protocol/openid-connect/token/introspect",
    "resource_registration_endpoint": "http://${host}:${port}/realms/${realm-name}/authz/protection/resource_set",
    "permission_endpoint": "http://${host}:${port}/realms/${realm-name}/authz/protection/permission",
    "policy_endpoint": "http://${host}:${port}/realms/${realm-name}/authz/protection/uma-policy"
}
Copy to Clipboard Toggle word wrap

每个端点都会公开一组特定的功能:

  • token_endpoint

    支持 urn:ietf:params:oauth:grant-type:uma-ticket 授权类型的 OAuth2 兼容令牌端点。通过此端点,客户端可以发送授权请求并获取 RPT,红帽构建的 Keycloak 授予的所有权限。

  • token_introspection_endpoint

    OAuth2 兼容令牌内省端点,客户端可用于查询服务器来确定 RPT 的活动状态,并确定与令牌关联的任何其他信息,如红帽构建的 Keycloak 的权限。

  • resource_registration_endpoint

    一个与 UMA 兼容的资源注册端点,资源服务器可以使用它来管理其受保护的资源和范围。此端点提供操作创建、读取、更新和删除红帽构建的 Keycloak 中的资源和范围。

  • permission_endpoint

    与 UMA 兼容的权限端点,资源服务器可以使用它来管理权限票据。此端点在 Red Hat build of Keycloak 中提供操作创建、读取、更新和删除权限票据。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat