什么是AAT和如何获取它
授权API令牌(AAT)是一个特殊的OAuth2访问令牌,范围为uma_authorization。创建用户时,Keycloak会自动将角色uma_authorization分配给用户。 uma_authorization是默认的领域角色。
AAT使客户端应用程序能够查询服务器的用户权限。
客户端应用程序可以像Keycloak一样从其他OAuth2访问令牌获取AAT。通常,在Keycloak成功验证用户后,客户端应用程序将获得AAT。默认情况下,授权代码授权类型用于对用户进行身份验证,服务器将向代表其执行代理的客户端应用程序发出OAuth2访问令牌。
下面的示例使用资源所有者密码凭证授予类型来请求AAT:
curl -X POST \
-H "Authorization: Basic aGVsbG8td29ybGQtYXV0aHotc2VydmljZTpwYXNzd29yZA==" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'username=${username}&password=${user_password}&grant_type=password' \
"http://localhost:8080/auth/realms/${realm_name}/protocol/openid-connect/token"
因此,服务器响应是:
{
"access_token": ${AAT},
"expires_in": 300,
"refresh_expires_in": 1800,
"refresh_token": ${refresh_token},
"token_type": "bearer",
"id_token": ${id_token},
"not-before-policy": 0,
"session_state": "3cad2afc-855b-47b7-8e4d-a21c66e312fb"
}