Um workload access token é um token opaco emitido pelo Agent Identity após a autenticação de entrada. Saiba como ele funciona e quais métodos estão disponíveis para obtê-lo.
O que é um workload access token?
O workload access token é um token opaco emitido pelo service Agent Identity para uma identidade de workload após concluir a autenticação de entrada de um chamador, geralmente um agente. Em seguida, o agente usa esse token para acessar as APIs do Agent Identity, como solicitar um access token de um provedor de credenciais OAuth para alcançar recursos externos.
Um workload access token apresenta as seguintes características:
Seu uso é restrito ao acesso das APIs do service Agent Identity.
O token contém informações tanto sobre a identidade da workload quanto sobre a identidade do usuário final que fez a chamada.
Ao receber uma solicitação do usuário final, um runtime de agente, como Model Studio, AI Studio ou LangStudio, obtém automaticamente esse token ao chamar o service Agent Identity e o injeta no ambiente de execução do agente.
Métodos de aquisição de token
O Agent Identity oferece três operações de API para obter um workload access token, cada uma projetada para um cenário diferente:
|
Dimensão de comparação |
GetWorkloadAccessToken |
GetWorkloadAccessTokenForJWT |
GetWorkloadAccessTokenForUserId |
|
Cenário principal |
Sem interação do usuário; destinado a processos automatizados. |
Envolve interação do usuário, em que os usuários fazem login por meio de um provedor de identidade (IdP). |
Há interação do usuário. |
|
Identidade do usuário |
Nenhuma identidade de usuário está presente. |
Validada por meio de um JSON Web Token (JWT) padrão. |
Declarada por meio de uma string de ID de usuário personalizada. |
|
Segurança |
Alta. O token representa apenas o próprio agente, garantindo segurança e controle. |
Mais alta. O Agent Identity valida a assinatura do JWT, o emissor ( |
Média. O Agent Identity confia na string |
|
Caso de uso |
Um agente executa em segundo plano para realizar tarefas automatizadas que não envolvem dados específicos de usuários, como sincronização de dados ou geração de relatórios. |
Após um usuário fazer login em um aplicativo por meio de um IdP compatível com OIDC, como Alibaba Cloud, DingTalk ou um IdP corporativo auto-hospedado, o backend do aplicativo troca o JWT do usuário por um workload access token. O agente então usa esse token para executar operações que exigem verificação forte de identidade. |
O aplicativo utiliza um sistema de usuários personalizado que não pode emitir JWTs padrão, mas consegue gerar um ID estável e exclusivo para cada usuário conectado. Este método é adequado para integrar rapidamente diversos sistemas de identidade personalizados ou para simular usuários durante o desenvolvimento e testes. |
|
Riscos potenciais/desvantagens |
Não pode ser usado para obter credenciais vinculadas à conta pessoal de um usuário. |
Este método tem o requisito mais rigoroso para o chamador: o aplicativo precisa ser capaz de obter o JWT do usuário. |
O chamador é o único responsável por garantir a unicidade, correção e segurança do |
Se um agente estiver implantado em um runtime de agente, como Model Studio, AI Studio ou LangStudio, não é necessário chamar uma api manualmente. O runtime seleciona automaticamente o método de aquisição de token com base no contexto do usuário:
Se o contexto do usuário contiver um token de usuário, o runtime chama a operação
GetWorkloadAccessTokenForJWT.Se o contexto do usuário não contiver um token de usuário, mas incluir um ID de usuário, o runtime chama a operação
GetWorkloadAccessTokenForUserId.Se o contexto do usuário não contiver nem um token de usuário nem um ID de usuário, o runtime chama a operação
GetWorkloadAccessToken.
Ao chamar qualquer uma das operações
GetWorkloadAccessToken*, você deve fornecer o nome de uma identidade de workload configurada. O chamador também precisa concluir a autenticação de entrada. Para obter mais informações, consulte Métodos de autenticação de entrada.-
Antes de chamar essas operações, conceda a política de permissão correspondente ao chamador no RAM. As permissões necessárias são as seguintes:
Operação
GetWorkloadAccessTokenForJWT:agentidentitydata:GetWorkloadAccessTokenForJWTOperação
GetWorkloadAccessTokenForUserId:agentidentitydata:GetWorkloadAccessTokenForUserIdOperação
GetWorkloadAccessToken:agentidentitydata:GetWorkloadAccessToken
Aquisição manual de token
Utilize o SDK do Agent Identity para obter um workload access token. O código Python a seguir fornece um exemplo:
from agent_identity_python_sdk import IdentityClient
# Initialize the client for the China (Beijing) region.
identity_client = IdentityClient(region_id="cn-beijing")
# Get a workload access token by using a user token (JWT).
workload_access_token = identity_client.get_workload_access_token(
workload_name="your-workload-identity-name",
user_token="your-user-token"
)
# Get a workload access token by using a user ID.
workload_access_token = identity_client.get_workload_access_token(
workload_name="your-workload-identity-name",
user_id="your-user-id"
)
# Get a workload access token without user context.
workload_access_token = identity_client.get_workload_access_token(workload_name="your-workload-identity-name")