8.5. 请求方令牌
请求方令牌 (RPT) 是使用 JSON web signature (JWS) 进行了数字签名的 JSON web token (JWT)。令牌基于之前由红帽构建的 Keycloak 签发的 OAuth2 访问令牌构建,代表用户或代表用户或自己使用。
当您解码 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"
}
在此令牌中,您可以从 权限 声明中获取服务器授予的所有权限。
另请注意,权限直接与您保护的资源/范围相关联,并将其与用于实际授予和发出相同权限的访问控制方法完全分离。
8.5.1. 内省请求方令牌 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
有时,您可能希望内省一个请求方令牌(RPT),以检查其有效期,或在令牌中获取权限,以对资源服务器端执行授权决策。
令牌内省可帮助您实现两种主要用例:
- 当客户端应用程序需要查询令牌有效期时,以获取具有相同或额外权限的一个新令牌
- 在资源服务器端 强制实施授权决策时,特别是在没有内置策略强制适合 应用程序时