Usa el servicio de Edge de OAuth2 para obtener tokens

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

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

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

Ruta

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

Si accedes al servicio de OAuth2 de Edge desde una organización con SAML en Edge para la nube pública, debe incluir el nombre de la zona en su ruta. 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 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 tu cuenta. Este campo es obligatorio solo si tienes 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 cuando se autentica con un IdP de SAML, y se puede usar para autenticarse con un IdP de LDAP.
grant_type Obligatorio

Determina si obtienes un token de acceso nuevo o se actualiza el token existente. Válida son los siguientes:

  • "password": Obtén un nuevo token de acceso. Cuando grant_type sea "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. Cuándo grant_type es "refresh_token", no es necesario que incluyas tu credenciales en la solicitud.
refresh_token Opcional El token que pasas para obtener un nuevo token de acceso cuando el actual y que ya venció. 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, establece grant_type en "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 la MFA

Para obtener un nuevo token de acceso con la MFA (autenticación de varios factores) habilitada, obtener el código MFA y, luego, establece 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, establece grant_type en "refresh_token" y agrega tus token de actualización existente como un parámetro del 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 realiza correctamente, 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 el refresh_token cuando caduque tu token de acceso y debas hacerlo actualízala

Si obtienes una respuesta como la siguiente:

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

Asegúrate de haber usado la cadena exacta proporcionada anteriormente (“ZWRnZWNsaTplZGdlY2xpc2VjcmV0”) para el encabezado Authorization en la solicitud.