Automatice el proceso de generación de tokens

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

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

Sin embargo, tu entorno podría admitir la automatización para 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 un código de acceso 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 no pueden acceder directamente a ellos los humanos.

Un usuario de máquina puede obtener tokens de OAuth2 sin tener que especificar un código de acceso. Eso significa que puedes automatizar por completo 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, 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 del usuario de 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á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 usuarios de máquinas. 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 máquinas. (Los 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

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 ejecutas la CLI en un período de 24 horas, se te solicita 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 debes acceder una vez cada 24 horas.

Obtén ayuda para usar la CLI

Muestra información sobre el uso de la CLI con el comando usermgmt_platform help. Consulta Usa la CLI para obtener 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 ayuda sobre un comando específico, pasa el comando y la marca -h o --help en la línea de comandos.

Por ejemplo, para obtener ayuda con el comando list, haz lo siguiente:

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 obtener 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 máquina:
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. Ingresa una contraseña para el usuario de máquina. Vuelve a ingresar la contraseña cuando se te lo solicite.
    Password: password
    Re-enter password: password 

    Se crea el usuario.

    Created machine user machineuser1@mycompany.com

Enumera todos los usuarios de máquinas en una zona de identidad

Enumera todos los usuarios de máquinas en una zona de identidad con el comando usermgmt_platform list. Consulta Usa la CLI para obtener 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 obtener 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 máquina para el que deseas 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 máquina. Vuelve a ingresar la contraseña cuando se te lo solicite.
    Enter the new password: password
    Re-enter password: password

    Se restablece la contraseña.

    Reset password for machine user machineuser1@mycompany.com

Borra 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 obtener 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 máquina que deseas borrar:
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    Se borra el usuario de máquina.

    Deleted user machineuser1@mycompany.com

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

Con la IU, agrega el usuario de 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 Agrega usuarios.

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

Puedes automatizar el proceso de generación de tokens y controlar el almacenamiento en caché de tokens para usuarios de máquinas con las acurl(1) y get_token(1) utilidades, 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. Usa tu herramienta de codificación de URL preferida para codificar el nombre de usuario y la contraseña del usuario de máquina.

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

  2. Para generar los tokens de acceso y actualización iniciales, llama al extremo de token de SAML, que 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 la autorización, pasa la credencial de cliente de OAuth2 reservada, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, en el Authorization encabezado. 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 administración de Edge como el encabezado Bearer:
    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 de 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 se ponen a disposición como "Software" en virtud del acuerdo que rige tu uso de Google Cloud Platform, incluidas las Condiciones Específicas del Servicio disponibles en https://cloud.google.com/terms/service-terms.