Automatice el proceso de generación de tokens

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Cuando se usa SAML con la API de Edge, el proceso que se emplea para obtener tokens de acceso de OAuth2 y de actualización de la aserción de SAML se denomina flujo de contraseña. Con el flujo de contraseñas, debes usar un navegador para obtener una contraseña de un solo uso que, luego, debes usar a fin de obtener tokens de OAuth2.

Sin embargo, tu entorno podría admitir la automatización de tareas de desarrollo comunes, como la automatización de pruebas o la integración continua/implementación continua (CI/CD). Para automatizar estas tareas cuando SAML está habilitado, necesitas una forma de obtener y actualizar tokens de OAuth2 sin tener que copiar y pegar una contraseña desde un navegador.

Acerca de los usuarios de máquinas

Apigee Edge admite usuarios de máquinas en tu organización habilitada para SAML. Los usuarios de máquinas se usan estrictamente para la automatización, y una persona no accede de manera directa.

Un usuario de máquina puede obtener tokens de OAuth2 sin tener que especificar una contraseña. Eso significa que puedes automatizar completamente el proceso de obtención y actualización de tokens de OAuth2 con la API de Edge.

Pasos para automatizar el proceso de generación de tokens

Para automatizar el proceso de generación de tokens, sigue estos pasos:

Step Descripción
1 Crea un usuario de máquina en tu zona de identidad de SAML
2 Asigna los roles necesarios al usuario de la máquina en la organización de Edge
3 Obtén los tokens de OAuth2 de los usuarios de la máquina

Video: Mira un video breve para obtener información sobre cómo automatizar el acceso a las APIs de Apigee Edge con credenciales de usuario de máquinas.

Administrar usuarios de máquinas para zonas de identidad de SAML

Apigee proporciona la interfaz de línea de comandos (CLI) de administración de usuarios de máquinas para crear y administrar cuentas de usuario de máquina. En las siguientes secciones, se describen los pasos para usar la CLI de administración de usuarios de máquinas.

Usa la CLI

Para usar la CLI de administración de usuarios de máquinas, primero descarga y descomprime el siguiente archivo: usermgmt.tar.gz(1)

El formato para llamar a la CLI es el siguiente:

usermgmt_platform [command] [flags]

En la siguiente tabla, se resumen las plataformas compatibles y el comando correspondiente para llamar a la CLI de administración de usuarios de la máquina. (los archivos ejecutables se encuentran en el directorio usermgmt).

Plataforma 32 bits 64 bits
Linux usermgmt_linux_386 usermgmt_linux_amd64
Mac usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

En la siguiente tabla, se resumen los comandos que se pueden especificar.

Comando Más información
create Crea un usuario de máquina en una zona de identidad
delete Borra un usuario de máquina en una zona de identidad
help Obtén ayuda para usar la CLI
list Enumera todos los usuarios de máquinas en una zona de identidad
reset Restablece la contraseña de un usuario de máquina en una zona de identidad

También puedes pasar una de las siguientes marcas para mostrar ayuda sobre el comando especificado: -h o --help.

Accede a la CLI

La primera vez que ejecutes la CLI en un período de 24 horas, se te pedirá que ingreses las credenciales de tu cuenta de zoneadmin.

Enter your Apigee credentials
Username: zoneadmin-username
Password: zoneadmin-password
If your user is opted with MFA, enter MFA code. Otherwise press enter to skip.
MFA: mfa-code_or_enter_to_skip

La CLI de administración de usuarios de máquinas almacena un token de acceso en tu máquina local, por lo que solo tienes que acceder una vez cada 24 horas.

Obtén ayuda para usar la CLI

Muestra la información de uso de la CLI con el comando usermgmt_platform help. Consulta Usa la CLI para ver la lista de plataformas compatibles.

usermgmt_platform help

Se muestra la siguiente información de ayuda:

A command-line interface (CLI) to manage machine user accounts to automate
Apigee identity zone management. Use the CLI to create, list, delete,
and reset the password for machine users.

Usage:
  usermgmt [flags]
  usermgmt [command]

Available Commands:
  create  Creates a machine users in an identity zone.
  delete  Deletes a machine users in an identity zone.
  help    Help about any command
  list    Lists the machine users in an identity zone.
  reset   Resets the password for a machine user in an identity zone.

Flags:
  -h, --help               help for usermgmt

Use "usermgmt [command] --help" for more information about a command.

Para mostrar la ayuda de un comando específico, pasa el comando y la marca -h o --help en la línea de comandos.

Por ejemplo, para obtener ayuda sobre el comando list:

usermgmt_platform list -h

Se muestra la siguiente información de ayuda:

Lists the machine users in an identity zone.

Usage:
  usermgmt list [flags]

Flags:
  -h, --help   help for list

Crea un usuario de máquina en una zona de identidad

Crea un usuario de máquina en una zona de identidad mediante el comando usermgmt_platform create. Consulta Usa la CLI para ver la lista de plataformas compatibles.

  1. Ingresa el siguiente comando:
    usermgmt_platform create

    Se muestra la lista de zonas de identidad:

    myzone1
    myzone2
  2. Ingresa el nombre de una zona en el mensaje:
    Enter a zone name: myzone1
  3. Ingresa un nombre de usuario para el usuario de la máquina:
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. Ingresa una contraseña para el usuario de la máquina. Vuelve a ingresar la contraseña cuando se te solicite.
    Password: password
    Re-enter password: password 

    Se crea el usuario.

    Created machine user machineuser1@mycompany.com

Obtén una lista de todos los usuarios de máquinas de una zona de identidad

Genera una lista de todos los usuarios de máquinas en una zona de identidad con el comando usermgmt_platform list. Consulta Usa la CLI para ver la lista de plataformas compatibles.

  1. Ingresa el siguiente comando:
    usermgmt_platform list
    Se muestra la lista de zonas de identidad:
    myzone1
    myzone2
  2. Ingresa el nombre de una zona en el mensaje:
    Enter a zone name: myzone1

    Se muestra la lista de usuarios de máquinas en la zona de identidad:

    Machine users in the zone:
    machineuser1@mycompany.com
        

Restablece la contraseña de un usuario de máquina en una zona de identidad

Restablece la contraseña de un usuario de máquina en una zona de identidad con el comando usermgmt_platform reset. Consulta Usa la CLI para ver la lista de plataformas compatibles.

  1. Ingresa el siguiente comando:
    usermgmt_platform reset

    Se muestra la lista de zonas de identidad:

    myzone1
    myzone2
  2. Ingresa el nombre de una zona en el mensaje:
    Enter a zone name: myzone1
  3. Ingresa el nombre de usuario del usuario de la máquina cuya contraseña deseas restablecer:
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. Ingresa una contraseña nueva para el usuario de la máquina. Vuelve a ingresar la contraseña cuando se te solicite.
    Enter the new password: password
    Re-enter password: password

    Se restablece la contraseña.

    Reset password for machine user machineuser1@mycompany.com

Borrar un usuario de máquina en una zona de identidad

Borra un usuario de máquina en una zona de identidad con el comando usermgmt_platform delete. Consulta Usa la CLI para ver la lista de plataformas compatibles.

  1. Ingresa el siguiente comando:
    usermgmt_platform delete
    Se muestra la lista de zonas de identidad:
    myzone1
    myzone2
  2. Ingresa el nombre de una zona en el mensaje:
    Enter a zone name: myzone1
  3. Ingresa el nombre de usuario del usuario de la máquina que deseas borrar:
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    Se borrará el usuario de la máquina.

    Deleted user machineuser1@mycompany.com

Asigna los roles necesarios al usuario de la máquina en la organización de Edge.

Con la IU, agrega el usuario de máquina a la organización de Edge habilitada para SAML y asígnale los roles necesarios (como administrador de la organización), como se describe en Agrega usuarios.

Obtén los tokens de OAuth2 del usuario de la máquina

Puedes automatizar el proceso de generación de tokens y controlar el almacenamiento en caché de tokens para los usuarios de máquinas con las utilidades acurl(1) y get_token(1), como se describe en OAuth2 para usuarios de máquinas y usuarios de máquinas en zonas de SAML.

Para obtener los tokens de OAuth2 del usuario de máquina de forma manual con curl, haz lo siguiente:

  1. Utiliza tu herramienta de codificación de URL preferida para codificar el nombre de usuario y la contraseña del usuario de la máquina.

    Advertencia: Usa una herramienta de codificación de URL interna para asegurarte de que las credenciales de usuario de la máquina no se vean comprometidas.

  2. Genera el acceso inicial y los tokens de actualización mediante una llamada al extremo del token de SAML, como se muestra en el siguiente ejemplo:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token -s \
      -d 'grant_type=password&username=machineusername&password=machineuserpassword'

    Para obtener la autorización, pasa la credencial de cliente de OAuth2 reservada, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, en el encabezado Authorization. La llamada imprime los tokens de acceso y actualización en stdout.

  3. Pasa el token de acceso a una llamada a la API de Edge Management como encabezado del portador:
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. Cuando venza el token de acceso, puedes actualizarlo enviando el token de actualización al extremo del token de SAML, como se muestra en el siguiente ejemplo:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

(1) Copyright 2023 Google LLC
Las herramientas usermgmt, acurl y get_token están disponibles como “Software” en virtud del acuerdo que rige el uso que haces de Google Cloud Platform, incluidas las Condiciones Específicas del Servicio disponibles en https://cloud.google.com/terms/service-terms.