Automatice el proceso de generación de tokens

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Cuando se usa SAML con la API de Edge, el proceso que se usa para obtener el acceso OAuth2 y Los tokens de actualización de la aserción de SAML se llaman flujo de contraseña. Con el código de flujo, se usa un navegador para obtener una contraseña de un solo uso que, luego, se utiliza para obtener OAuth2. tokens.

Sin embargo, tu entorno puede admitir la automatización de tareas comunes de desarrollo como automatización de pruebas o 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/pegar una contraseña desde un navegador.

Información acerca de los usuarios de máquinas

Apigee Edge admite usuarios de máquinas en tu organización con SAML habilitado. Los usuarios de máquinas se usan estrictamente para la automatización, y ninguna persona puede acceder a ellos de forma directa.

Un usuario de máquina puede obtener tokens OAuth2 sin tener que especificar un código. Esto significa que puedes automatizar completamente el proceso de obtener y actualizar 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, haz lo siguiente:

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

Video: Mira un video breve para aprender a automatizar el acceso a las APIs de Apigee Edge con las credenciales de usuario de la máquina.

Administra 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. Los pasos para usar la CLI de administración de usuarios de máquinas se describen en las siguientes secciones.

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 de una zona de identidad
help Obtén ayuda con la CLI
list Obtén una lista de todos los usuarios de máquina en una zona de identidad
reset Restablecer la contraseña de un usuario de máquina en una zona de identidad

De manera opcional, 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 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 la máquina almacena un token de acceso en tu máquina local, por lo que solo debes acceder una vez en un período de 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.

Muestra ayuda sobre un comando específico pasando tanto el comando como la marca -h o --help en la línea de comandos.

Por ejemplo, para obtener ayuda con 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 con el comando usermgmt_platform create. Consulta Usa la CLI para ver la lista de plataformas compatibles.

  1. Escribe el comando siguiente:
    usermgmt_platform create

    Se muestra la lista de zonas de identidad:

    myzone1
    myzone2
  2. Ingresa el nombre de una zona cuando aparezca 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áquina de una zona de identidad

Obtén una lista de todos los usuarios de máquina 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 cuando aparezca el mensaje:
    Enter a zone name: myzone1

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

    Machine users in the zone:
    machineuser1@mycompany.com
        

Restablecer 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. Escribe el comando siguiente:
    usermgmt_platform reset

    Se muestra la lista de zonas de identidad:

    myzone1
    myzone2
  2. Ingresa el nombre de una zona cuando aparezca el mensaje:
    Enter a zone name: myzone1
  3. Ingresa el nombre de usuario del usuario de la máquina para el que quieres restablecer la contraseña:
    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 de una zona de identidad

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

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

    Se borra el usuario de la máquina.

    Deleted user machineuser1@mycompany.com

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

Con la IU, agrega el usuario de la máquina a tu organización de Edge habilitada para SAML y asígnale los roles necesarios (como administrador de la organización). como se describe en Cómo agregar 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 la máquina con el 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 la máquina de forma manual con curl, haz lo siguiente:

  1. Usa 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 garantizar que las credenciales de usuario de la máquina no se vean comprometidas.

  2. Genera los tokens de acceso inicial y actualización llamando 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 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, podrás actualizarlo enviando el token de actualización a SAML extremo del token, 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". debajo de que regula su uso de Google Cloud, incluido el Servicio Condiciones Específicas disponibles en https://cloud.google.com/terms/service-terms.