什么是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。您可以选择使用任何支持的身份验证方法。

results matching ""

    No results matching ""