Como usar os utilitários get_token e acurl

A Apigee oferece os utilitários get_token e acurl para simplificar a interação com o SSO da Apigee e a API de gerenciamento do Edge. Essas ferramentas processam a geração, o armazenamento em cache, a atualização e a injeção de tokens automaticamente.

Os utilitários são instalados no nó OpenLDAP em /opt/apigee/apigee-openldap/bin/.

O utilitário get_token

O utilitário get_token é responsável por adquirir tokens de acesso e de atualização do OIDC/OAuth2. Ele oferece suporte a dois fluxos de autenticação principais e inclui o armazenamento em cache de tokens integrado.

Fluxos de autenticação

  • Fluxo de código do dispositivo (RFC 8628): projetado para usuários humanos que fazem a autenticação por um provedor de identidade externo (como SAML, Okta ou OIDC). Se você transmitir apenas um endereço de e-mail (-u <email>), o utilitário vai iniciar esse fluxo, solicitando um URL e um código para aprovação em um navegador.
  • Concessão de senha (ROPC): projetado para usuários de máquinas sem periféricos e scripts automatizados. Se você transmitir um nome de usuário e uma senha (-u <user>:<password>), ele vai fazer a autenticação diretamente no SSO da Apigee sem interação do navegador.

Armazenamento em cache e atualização automática de tokens

O utilitário get_token gerencia automaticamente os ciclos de vida dos tokens para que você não precise acompanhar manualmente os horários de expiração:

  • Verificação de cache: quando invocado, get_token verifica o cache local em ~/.sso-cli/<username>-token.json. Se um token válido existir e não tiver expirado, ele vai ser reutilizado sem autenticação.
  • Atualização automática:se o token de acesso armazenado em cache tiver expirado, mas um token de atualização válido existir, o utilitário vai trocar automaticamente o token de atualização no SSO da Apigee por um novo token de acesso.

Variáveis de ambiente

Você pode personalizar o comportamento de get_token usando as seguintes variáveis de ambiente:

  • SSO_LOGIN_URL: o URL do SSO da Apigee (padrão: http://localhost:9099).
  • CLIENT_ID: o ID do cliente OAuth2 (padrão: edgecli).
  • CLIENT_SECRET: a chave secreta do cliente OAuth2 (padrão: edgeclisecret).

O utilitário acurl

O utilitário acurl é um wrapper transparente em torno do curl padrão. Ele garante que cada solicitação de API inclua um token do portador válido.

  • Separação de argumentos: o utilitário extrai o argumento -u <user:password> ou -u <user> e o transmite para get_token. Ele encaminha todos os outros argumentos (como -X, -H, -d, -v, -s) diretamente para o curl padrão.
  • Execução: depois de adquirir ou recuperar um token válido de get_token, acurl injeta automaticamente o cabeçalho -H "Authorization: Bearer <token>" na invocação curl.

Exemplos de uso

Exemplo 1: login interativo para um usuário humano

/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations

Esse comando pausa, solicita que o usuário acesse um navegador para fazer a autenticação pelo IDP externo e, em seguida, executa a chamada de API após a aprovação.

Exemplo 2: login sem periféricos para um usuário de máquina

/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations

Esse comando faz a autenticação diretamente pela concessão de senha e executa a chamada de API imediatamente.

Exemplo 3: reutilização de um token armazenado em cache

/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users

Como o token foi armazenado em cache nas etapas anteriores, não é necessário fornecer o argumento -u novamente. O utilitário lê o token armazenado em cache e o injeta automaticamente.