什么是PAT和如何获取它
保护API令牌(PAT)是一个特殊的OAuth2访问令牌,其范围定义为uma_protection。创建资源服务器时,Keycloak会自动为相应的客户端应用程序创建一个角色uma_protection,并将其与客户端的服务帐户相关联。
资源服务器可以像Keycloak一样从其他OAuth2访问令牌获取PAT。例如,使用curl:
curl -X POST \
-H "Authorization: Basic aGVsbG8td29ybGQtYXV0aHotc2VydmljZTpwYXNzd29yZA==" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'grant_type=client_credentials' \
"http://localhost:8080/auth/realms/${realm_name}/protocol/openid-connect/token"
上面的示例是使用client_credentials grant类型从服务器获取PAT。因此,服务器返回类似于以下内容的响应:
{
"access_token": ${PAT},
"expires_in": 300,
"refresh_expires_in": 1800,
"refresh_token": ${refresh_token},
"token_type": "bearer",
"id_token": ${id_token},
"not-before-policy": 0,
"session_state": "ccea4a55-9aec-4024-b11c-44f6f168439e"
}
注意:Keycloak可以以不同的方式验证您的客户端应用程序。为了简单起见,在这里使用client_credentials授权类型,这需要一个client_id和一个client_secret。您可以选择使用任何支持的身份验证方法。