第 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
curl -X GET \
http://${host}:${port}/realms/${realm-name}/.well-known/uma2-configuration
其中 ${host}:${port} 是运行 Red Hat build of Keycloak 的主机名(或 IP 地址)和端口,${realm-name} 是红帽构建的 Keycloak 中域的名称。
因此,您应该得到一个响应,如下所示:
每个端点都会公开一组特定的功能:
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 中提供操作创建、读取、更新和删除权限票据。