Utiliser le service Edge OAuth2 pour obtenir des jetons

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Vous pouvez utiliser le service Edge OAuth2 pour échanger vos identifiants contre un jeton d'accès et d'actualisation que vous utilisez ensuite pour appeler les points de terminaison Edge dans votre OAuth.

Outre les techniques décrites dans cette section, vous pouvez également utiliser les acurl et Utilitaires get_token pour obtenir des jetons OAuth2.

Chemin

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

Si vous accédez au service Edge OAuth2 à partir d'une organisation compatible SAML dans Edge for Public Cloud, vous doit inclure le nom de la zone dans votre chemin d'accès. Exemple :

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

En-têtes de requête

Paramètre Valeur
Content-Type &quot;application/x-www-form-urlencoded&quot;
Accept application/json;charset=utf-8
Authorization

"Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

Vous pouvez exporter cette valeur vers une variable d'environnement afin de la réutiliser dans ces Appels d'API. Exemple :

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

Paramètres de formulaire

Paramètre Obligatoire ? Valeur
username Facultatif. Veuillez saisir un nom d'utilisateur et un mot de passe, ou un code secret. Votre nom d'utilisateur Apigee, qui est généralement l'adresse e-mail associée à votre compte Apigee.
password Facultatif. Veuillez saisir un nom d'utilisateur et un mot de passe, ou un code secret. Mot de passe de votre compte Apigee.
mfa_token Optional Un code d'authentification multifacteur (MFA) valide pour votre compte Obligatoire uniquement si vous avez Authentification multifacteur activée.
passcode Facultatif. Veuillez saisir un nom d'utilisateur et un mot de passe, ou un code secret. Un code secret à usage unique que vous pouvez utiliser à la place mot de passe. Un code secret est requis lors de l'authentification avec un IdP SAML et peut être utilisé pour s'authentifier auprès d'un IdP LDAP.
grant_type Obligatoire

Détermine si vous obtenez un nouveau jeton d'accès ou si vous actualisez le jeton existant. Valide sont les suivantes:

  • "password" : obtenez un nouveau jeton d'accès. Lorsque grant_type est "password", vous devez inclure vos identifiants Apigee dans la requête.
  • "refresh_token" : envoie un jeton d'actualisation pour obtenir un nouveau jeton d'accès. Quand ? grant_type correspond à "refresh_token". Vous n'êtes pas obligé d'inclure votre d'identifiants dans la requête.
refresh_token Facultatif Jeton que vous transmettez pour obtenir un nouveau jeton d'accès lorsque le jeton d'accès actuel a est arrivé à expiration. Ce paramètre est obligatoire lorsque grant_type est "refresh_token".

Exemples

Obtenir un nouveau jeton d'accès

Pour obtenir un nouveau jeton d'accès, définissez grant_type sur "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'

Obtenir un nouveau jeton d'accès avec MFA

Pour obtenir un nouveau jeton d’accès avec l’authentification multifacteur (MFA) activée, obtenir le code MFA puis définissez le paramètre mfa_token sur sa valeur:

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'

Actualiser un jeton d'accès

Pour actualiser un jeton d'accès, définissez grant_type sur "refresh_token" et ajoutez votre jeton d'actualisation existant en tant que paramètre de formulaire:

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'

Notez que vous n'avez pas besoin de transmettre vos identifiants lorsque vous actualisez votre jeton d'accès.

Réponses

En cas de réussite, vous recevez un jeton d'accès, un jeton d'actualisation et les informations associées. Exemple :

{
  "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"
}

Enregistrez les valeurs de réponse:

  • Utiliser access_token dans les appels à l'API Edge
  • Utilisez le refresh_token lorsque votre jeton d'accès expire et que vous devez l'actualiser

Si vous obtenez une réponse semblable à celle-ci:

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

Veillez à utiliser exactement la chaîne ci-dessus ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") pour le paramètre Authorization dans votre requête.