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_tokenverifica 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 paraget_token. Ele encaminha todos os outros argumentos (como-X,-H,-d,-v,-s) diretamente para ocurlpadrão. - Execução: depois de adquirir ou recuperar um token válido de
get_token,acurlinjeta automaticamente o cabeçalho-H "Authorization: Bearer <token>"na invocaçãocurl.
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.