Cómo usar get_token

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

La utilidad get_token(1) te permite intercambiar tus credenciales de Apigee por un token de acceso y actualización que puedes usar para acceder a las API de Edge. Los tokens también se pueden usar con implementaciones de SAML y LDAP de flujos de trabajo de OAuth2.

get_token te permite hacer lo siguiente:

  • Obtén un token de acceso o actualización.
  • Imprime tokens en stdout para usarlos en variables y comandos.
  • Almacena tokens en tu disco.

Luego, puedes agregar un token válido en tus solicitudes a la API de Edge y obtener uno nuevo cuando venza el tuyo.

Requisito: Antes de poder usar get_token, debes instalarlo.

Sintaxis de get_token

La utilidad get_token usa la siguiente sintaxis:

get_token -u USERNAME:PASSWORD [-m MFACODE]

o

get_token -p passcode

Donde:

Elemento ¿Obligatorio? Descripción
USERNAME Opcional. Se requiere una combinación de nombre de usuario y contraseña o una contraseña. Tu nombre de usuario de Apigee, que suele ser la dirección de correo electrónico asociada con tu cuenta de Apigee Debes pasar tu nombre de usuario o una contraseña la primera vez que llames a get_token. No tendrás que volver a pasar tu dirección de correo electrónico hasta que venzan los tokens de acceso y actualización. Si almacenas tokens en caché para más de un usuario, debes especificar tu nombre de usuario en cada llamada.
PASSWORD Opcional. Se requiere una combinación de nombre de usuario y contraseña o una contraseña. La contraseña de tu cuenta de Apigee. Si omites la contraseña, se te solicitará que la ingreses la primera vez que uses get_token y en cualquier llamada posterior sin un token de actualización válido. Si no quieres usar tu contraseña directamente en el comando, puedes usar una contraseña de código de un solo uso en lugar de la contraseña.
MFACODE Opcional Un código de autenticación de varios factores (MFA) temporal de seis dígitos. Este código es obligatorio si usas -u y tienes habilitada la MFA. Se te preguntará si se omite este paso (a menos que esté en el modo de contraseña). Si la MFA no está habilitada o si tienes un flujo con secuencia de comandos, puedes especificar -m "" para evitar mensajes.
PASSCODE Opcional. Se requiere una combinación de nombre de usuario y contraseña o una contraseña. Una contraseña de un solo uso que puedes usar en lugar de una contraseña. Se requiere una contraseña para realizar la autenticación con un IdP de SAML y se puede usar para la autenticación con un IdP de LDAP.

Por ejemplo:

get_token
get_token -u ahamilton@apigee.com:mypassw0rd -m 424242
get_token -p mypass

Una llamada exitosa imprime un token de acceso válido en stdout y almacena los tokens de acceso y de actualización en ~/.sso-cli. Puedes usar estos tokens hasta su vencimiento, como se describe en Vencimiento de tokens.

Después de tu primera llamada exitosa a get_token, no es necesario que incluyas tus credenciales hasta que los tokens hayan vencido.

Cómo llamar a get_token por primera vez

Si no especificas ninguna opción en tu primera llamada, get_token te solicitará lo siguiente:

  • Una contraseña, si te autenticas con un proveedor de identidad (IdP) SAML.
  • Tu nombre de usuario, contraseña y un código MFA temporal; de lo contrario,

En el siguiente ejemplo, se llama a get_token por primera vez y se usa una combinación de nombre de usuario y contraseña con un código MFA opcional para la autenticación:

get_token
Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com':
[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
123456

ey42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJzdWIiOiIyZDFl
  <snip>
VlLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiwiYXBwcm54242

Agrega tu token de acceso a una solicitud

Una vez que llames a get_token de forma correcta, puedes usar el token de acceso si lo pasas en el encabezado Authorization de tus llamadas a la API de Edge de varias maneras. Puedes hacer lo siguiente:

  • Copia el contenido de la respuesta get_token y, luego, insértalo directamente en el encabezado:
    curl https://api.enterprise.apigee.com/v1/organizations/danger4242-eval \
      -H "Authorization: Bearer B42CnTIYPxr...88NI5Q"
  • Combina los comandos para obtener el token y agregarlo al encabezado:
    token=$(get_token); curl -H "Authorization: Bearer $token" \
      https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    Ten en cuenta que get_token usa la sintaxis de sustitución de comandos $(...) para que se ejecute.

  • Llama a get_token dentro de la llamada curl:
    curl -H "Authorization: Bearer $(get_token)" \
      https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
    .

    Ten en cuenta que get_token usa la sintaxis de sustitución de comandos $(...) para que se ejecute.

Estas solicitudes de ejemplo obtienen detalles sobre la organización "ahamilton-eval". Para obtener una lista completa de los extremos de la API de Edge, consulta la Referencia de la API de Apigee Edge.

Usa get_token con SAML y LDAP

La utilidad get_token se puede usar con SAML, LDAP o cualquier otro IdP subyacente. get_token admite el uso de varias URLs de acceso de SSO y varias cuentas. Se solicitará a un solo usuario con varias cuentas que especifique el nombre de usuario para cada llamada a get_token.

Borra la caché de get_token

Puedes usar las siguientes marcas opcionales para borrar la caché get_token:

  • --clear-sso-cache

    Borra el directorio de caché de SSO_LOGIN_URL en $HOME/.sso-cli y descarta el acceso almacenado en caché y los tokens de actualización del servidor.

  • --clear-all-sso-cache

    Borra todos los directorios en $HOME/.sso-cli y descarta todos los tokens almacenados en caché.


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