Usa el servicio de Edge de OAuth2 para obtener tokens

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

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

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

Ruta de acceso

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

Si accedes al servicio de 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

"Básica ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

Puedes exportar este valor a una variable de entorno para volver a utilizarlo 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 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
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.
mfa_token Opcional Un código de autenticación de varios factores (MFA) válido para la cuenta. Es obligatorio solo si tienes la MFA habilitada.
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.
grant_type Obligatorio

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

  • "password": Obtén un nuevo token de acceso. 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 el token de acceso actual haya vencido. Este parámetro es obligatorio cuando grant_type es "refresh_token".

Ejemplos

Obtén un token de acceso nuevo

Para obtener un nuevo token de acceso, establece 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 nuevo token de acceso con MFA

Para obtener un nuevo token de acceso con la MFA (autenticación de varios factores) habilitada, obtén el código 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 un 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 el token de acceso.

Respuestas

Si se completa de forma correcta, recibirá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 access_token en las llamadas a la API de Edge
  • Usa refresh_token cuando venza el token de acceso y debas actualizarlo.

Si obtienes una respuesta como la siguiente:

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

Asegúrate de haber usado la string exacta proporcionada anteriormente ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") para el encabezado Authorization en tu solicitud.