Apigee proporciona las utilidades get_token y acurl para simplificar la interacción con Apigee SSO y la API de administración de Edge. Estas herramientas controlan la generación, el almacenamiento en caché, la actualización y la inserción de tokens de forma automática.
Las utilidades se instalan en el nodo OpenLDAP en /opt/apigee/apigee-openldap/bin/.
La utilidad get_token
La utilidad get_token es responsable de adquirir tokens de acceso y actualización de OIDC/OAuth2. Admite dos flujos de autenticación principales y, además, incluye el almacenamiento en caché de tokens integrado.
Flujos de autenticación
- Flujo de código de dispositivo (RFC 8628): Está diseñado para usuarios humanos que se autentican a través de un proveedor de identidad externo (como SAML, Okta o OIDC). Si solo pasas una dirección de correo electrónico (
-u <email>), la utilidad inicia este flujo y te solicita una URL y un código para aprobar en un navegador. - Otorgamiento de contraseña (ROPC): Está diseñado para usuarios de máquinas sin interfaz gráfica y secuencias de comandos automatizadas. Si pasas un nombre de usuario y una contraseña (
-u <user>:<password>), se autentica directamente en Apigee SSO sin interacción del navegador.
Almacenamiento en caché de tokens y actualización automática
La utilidad get_token administra automáticamente los ciclos de vida de los tokens, por lo que no tienes que hacer un seguimiento manual de los tiempos de vencimiento:
- Verificación de caché: Cuando se invoca,
get_tokenverifica la caché local en~/.sso-cli/<username>-token.json. Si existe un token válido y no venció, lo vuelve a usar sin volver a autenticar. - Actualización automática: Si el token de acceso almacenado en caché venció, pero existe un token de actualización válido, la utilidad intercambia automáticamente el token de actualización en Apigee SSO por un token de acceso nuevo.
Variables de entorno
De manera opcional, puedes personalizar el comportamiento de get_token con las siguientes variables de entorno:
SSO_LOGIN_URL: Es la URL de Apigee SSO (predeterminada:http://localhost:9099).CLIENT_ID: Es el ID de cliente de OAuth2 (predeterminado:edgecli).CLIENT_SECRET: Es el secreto de cliente de OAuth2 (predeterminado:edgeclisecret).
La utilidad acurl
La utilidad acurl es un wrapper transparente alrededor de curl estándar. Garantiza que cada solicitud a la API incluya un token de portador válido.
- Separación de argumentos: La utilidad extrae el argumento
-u <user:password>o-u <user>y lo pasa aget_token. Reenvía todos los demás argumentos (como-X,-H,-d,-v,-s) directamente acurlestándar. - Ejecución: Después de adquirir o recuperar correctamente un token válido de
get_token,acurlinserta automáticamente el encabezado-H "Authorization: Bearer <token>"en la invocación decurl.
Ejemplos de uso
Ejemplo 1: Acceso interactivo para un usuario humano
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
Este comando se detiene, le solicita al usuario que visite un navegador para autenticarse a través de su IdP externo y, luego, ejecuta la llamada a la API una vez que se aprueba.
Ejemplo 2: Acceso sin interfaz gráfica para un usuario de máquina
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
Este comando se autentica directamente a través del otorgamiento de contraseña y ejecuta la llamada a la API de inmediato.
Ejemplo 3: Reutilización de un token almacenado en caché
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
Debido a que el token se almacenó en caché en los pasos anteriores, no es necesario que vuelvas a proporcionar el argumento -u. La utilidad lee el token almacenado en caché y lo inserta automáticamente.