Usa el servicio de Edge de OAuth2 para obtener tokens

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

Puedes usar el servicio Edge OAuth2 para intercambiar tus credenciales por un token de acceso y un token de actualización que luego usarás para llamar a los extremos de Edge en tus OAuth.

Además de las técnicas que se describen en esta sección, también puedes usar las acurl y get_token utilidades para obtener tokens de OAuth2.

Ruta

POST https://login.apigee.com/oauth/token

Si accedes al servicio Edge OAuth2 desde una organización habilitada para SAML en Edge para la nube pública, debes incluir el nombre de la zona en tu ruta de acceso. Por ejemplo:

POST https://zone.login.apigee.com/oauth/token

Encabezados de la solicitud

Parámetro Valor
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

Puedes exportar este valor a una variable de entorno para poder reutilizarlo en estas llamadas a la API. Por ejemplo:

export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0
curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

Parámetros del formulario

Parámetro ¿Obligatorio? Valor
username Opcional. Se requiere una combinación de nombre de usuario y contraseña o un código. Tu nombre de usuario de Apigee, que suele ser la dirección de correo electrónico asociada con tu cuenta de Apigee.
password Opcional. Se requiere una combinación de nombre de usuario y contraseña o un código. La contraseña de tu cuenta de Apigee.
mfa_token Opcional Un código de autenticación multifactor (MFA) válido para tu cuenta. Solo es obligatorio si tienes habilitada la MFA.
passcode Opcional. Se requiere una combinación de nombre de usuario y contraseña o un código. Un código de un solo uso que puedes usar en lugar de una contraseña. Se requiere un código cuando se realiza la autenticación con un IDP de SAML y se puede usar para autenticar con un IDP de LDAP.
grant_type Obligatorio

Determina si obtienes un token de acceso nuevo o actualizas el token existente. Los valores válidos son los siguientes:

  • "password": Obtén un token de acceso nuevo. Cuando grant_type es "password", debes incluir tus credenciales de Apigee en la solicitud.
  • "refresh_token": Envía un token de actualización para obtener un token de acceso nuevo. Cuando grant_type es "refresh_token", no es necesario que incluyas tus credenciales en la solicitud.
refresh_token Opcional El token que pasas para obtener un token de acceso nuevo cuando vence el token de acceso actual. Este parámetro es obligatorio cuando grant_type es "refresh_token".

Ejemplos

Obtén un token de acceso nuevo

Para obtener un token de acceso nuevo, configura grant_type como "password":

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://login.apigee.com/oauth/token \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Obtén un token de acceso nuevo con MFA

Para obtener un token de acceso nuevo con la MFA (autenticación multifactor) habilitada, obtén el código de MFA y, luego, configura el parámetro mfa_token en su valor:

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://login.apigee.com/oauth/token?mfa_token=424242 \
  -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Cómo actualizar un token de acceso

Para actualizar un token de acceso, configura grant_type como "refresh_token" y agrega tu token de actualización existente como parámetro de formulario:

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://login.apigee.com/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

Ten en cuenta que no necesitas pasar tus credenciales cuando actualizas tu token de acceso.

Respuestas

Si la operación se realiza correctamente, obtendrás un token de acceso, un token de actualización y la información relacionada. Por ejemplo:

{
  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
  "expires_in": 1799,
  "scope": "scim.me openid password.write approvals.me oauth.approvals",
  "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
}

Guarda los valores de respuesta:

  • Usa el access_token en las llamadas a la API de Edge.
  • Usa el refresh_token cuando venza tu token de acceso y necesites actualizarlo.

Si obtienes una respuesta como la siguiente:

{
  "error": "unauthorized",
  "error_description": "Bad credentials"
}

Asegúrate de haber usado la cadena exacta que se indicó anteriormente ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") para el Authorization encabezado en tu solicitud.