8.3.2. 提交权限请求
作为授权流程的一部分,客户端首先需要从 UMA 保护的资源服务器获取权限票据,以便在 Red Hat Single Sign-On Token Endpoint 中通过 RPT 对其进行交换。
默认情况下,Red Hat Single Sign-On 会响应 403 HTTP 状态代码和 request_denied 错误。如果客户端无法使用 RPT 发布。
Red Hat Single Sign-On 拒绝授权请求
HTTP/1.1 403 Forbidden
Content-Type: application/json
...
{
"error": "access_denied",
"error_description": "request_denied"
}
此类响应表示 Red Hat Single Sign-On 无法发出 RPT,其权限由权限票据代表。
在某些情况下,客户端应用程序可能希望启动异步授权流,并让所请求的资源所有者决定是否应授予访问权限。为此,客户端可以使用 submit_request 请求参数以及到令牌端点的授权请求:
curl -X POST \
http://${host}:${port}/auth/realms/${realm}/protocol/openid-connect/token \
-H "Authorization: Bearer ${access_token}" \
--data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" \
--data "ticket=${permission_ticket} \
--data "submit_request=true"
使用 commit _request 参数时,Red Hat Single Sign-On 将为访问被拒绝的每个资源保留权限请求。创建后,资源所有者可以检查其帐户并管理其权限请求。
您可以将此功能视为应用程序中的 Request Access 按钮,其中用户可以要求其他用户访问其资源。