8.4. 保护 API
Protection API 提供了与 UMA 兼容的端点集合:
资源管理
使用这个端点,资源服务器可以远程管理其资源,并启用 策略 enforcers 查询服务器,以获取需要保护的资源。
权限管理
在 UMA 协议中,资源服务器访问此端点以创建权限票据。Red Hat Single Sign-On 还提供端点来管理权限状态和查询权限。
Policy API
Red Hat Single Sign-On 利用 UMA Protection API 允许资源服务器管理其用户的权限。除了 Resource 和 Permission API 外,Red Hat Single Sign-On 还提供了 Policy API,其中权限可以通过代表他们的用户的资源服务器设置为资源。
此 API 的一个重要要求是,仅允许 资源服务器使用名为保护 API 令牌(PAT)的特殊 OAuth2 访问令牌访问其端点。在 UMA 中,PAT 是范围为 uma_protection 的令牌。
8.4.1. 什么是 PAT 以及如何获取它 复制链接链接已复制到粘贴板!
保护 API 令牌 (PAT)是一种特殊的 OAuth2 访问令牌,其范围定义为 uma_protection。当您创建资源服务器时,Red Hat Single Sign-On 会自动创建一个角色 uma_protection (对应的客户端应用程序),并将它与客户端的服务帐户相关联。
通过 uma_protection 角色授予的服务帐户
与任何其他 OAuth2 访问令牌一样,资源服务器可以从 Red Hat Single Sign-On 获取 PAT。例如,使用 curl:
curl -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'grant_type=client_credentials&client_id=${client_id}&client_secret=${client_secret}' \
"http://localhost:8080/auth/realms/${realm_name}/protocol/openid-connect/token"
curl -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'grant_type=client_credentials&client_id=${client_id}&client_secret=${client_secret}' \
"http://localhost:8080/auth/realms/${realm_name}/protocol/openid-connect/token"
上面的示例是使用 client_credentials 授权类型从服务器获取 PAT。因此,服务器会返回类似如下的响应:
Red Hat Single Sign-On 可以以不同的方式验证您的客户端应用程序。为了简单起见,此处使用了 client_credentials 授权类型,它需要一个 client_id 和 client_secret。您可以选择使用任何支持的身份验证方法。