Cuando se usa un IdP externo con la API de Edge, el proceso estándar para obtener tokens de acceso de OIDC/OAuth2
desde la CLI es el flujo de código de dispositivo de OAuth 2.0. Con este flujo, usas la utilidad get_token, que te solicita que visites una URL en un navegador para autenticarte a través de tu IdP y, luego, desbloquea automáticamente tu terminal.
Sin embargo, tu entorno de desarrollo podría admitir la automatización para tareas de desarrollo comunes, como la automatización de pruebas o las canalizaciones de CI/CD. Para automatizar estas tareas cuando se habilita un IdP externo, necesitas una forma de obtener y actualizar tokens de OAuth2 de forma no interactiva, sin requerir la interacción del navegador.
Edge admite la generación automática de tokens mediante el uso de usuarios de máquinas no interactivos. Un usuario de máquina puede obtener tokens de OIDC/OAuth2 a través de otorgamientos de contraseñas estándar sin necesidad de un navegador. Eso significa que puedes automatizar por completo el proceso de obtención y actualización de tokens para tus secuencias de comandos.
Crea un usuario de máquina
Puedes crear un usuario de máquina que usen todas tus organizaciones o crear un usuario de máquina independiente para cada organización.
El usuario de máquina se crea y almacena directamente en el directorio OpenLDAP local y se etiqueta de forma explícita como usuario de máquina (employeeType: machineuser). Esto permite que Apigee SSO autentique de forma segura al usuario de máquina a través de un otorgamiento de contraseña, incluso cuando se aplica estrictamente SAML/OIDC federado para los usuarios humanos.
Para obtener instrucciones detalladas sobre cómo crear, enumerar y administrar usuarios de máquinas, consulta Administra usuarios de máquinas con apigee-machineuser.sh.
Obtén y actualiza tokens de usuario de máquina
Puedes usar las utilidades get_token y acurl que se proporcionan en /opt/apigee/apigee-openldap/bin/ o curl estándar para obtener tokens para usuarios de máquinas.
- Usa utilidades de Apigee: Los wrappers
get_tokenyacurlcontrolan automáticamente el almacenamiento en caché de tokens, la generación de cargas útiles y la actualización automática. Para obtener instrucciones y ejemplos detallados sobre el uso de estas herramientas, consulta Usa las utilidades get_token y acurl. - Usa curl estándar: Si tus secuencias de comandos de automatización no tienen acceso a los wrappers de Apigee, puedes interactuar directamente con Apigee SSO con los siguientes comandos
curlestándar:
Para obtener y actualizar tokens con curl:
- Usa la siguiente llamada a la API para generar los tokens de acceso y actualización iniciales directamente desde Apigee SSO:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token -s \ -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access' - Pasa el token de acceso a una llamada a la API de Management de Edge en el encabezado
Authorization: Bearer:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
- Para actualizar el token de acceso de forma nativa más adelante, usa la siguiente llamada que incluye el token de actualización:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'