请求授权数据和令牌
使用UMA协议的客户端应用程序可以使用特定端点来获取称为请求方令牌(RPT)的特殊安全令牌。该令牌包括由于与正在请求的资源相关联的权限和授权策略的评估而授予用户的所有权限。使用RPT,客户端应用程序可以访问资源服务器上的受保护资源。
http://${host}:${port}/auth/realms/${realm_name}/authz/authorize
当请求RPT时,您需要提供两件事情:
具有您要访问的资源的许可证
代表用户身份的授权API令牌(AAT)(作为承载令牌),以及他代表他访问授权数据的同意。
curl -X POST
-H "Authorization: Bearer ${AAT}" -d '{
"ticket" : ${PERMISSION_TICKET}
}' "http://localhost:8080/auth/realms/hello-world-authz/authz/authorize"
因此,服务器响应是:
{"rpt":"${RPT}"}
请求方令牌
请求方令牌(RPT)是使用JSON Web签名(JWS)进行数字签名的JSON Web令牌(JWT)。
令牌是基于客户端在授权过程中发送的AAT构建的。当解码RPT时,您将看到如下:
{
"authorization": {
"permissions": [
{
"resource_set_id": "d2fe9843-6462-4bfc-baba-b5787bb6e0e7",
"resource_set_name": "Hello World Resource"
}
]
},
"jti": "d6109a09-78fd-4998-bf89-95730dfd0892-1464906679405",
"exp": 1464906971,
"nbf": 0,
"iat": 1464906671,
"sub": "f1888f4d-5172-4359-be0c-af338505d86c",
"typ": "kc_ett",
"azp": "hello-world-authz-service"
}
从该令牌可以从权限声明获取服务器授予的所有权限。