Utilizzo del servizio Edge OAuth2 per ottenere i token

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Puoi utilizzare il servizio OAuth2 Edge per scambiare le tue credenziali con un token di accesso e di aggiornamento che utilizzerai poi per chiamare gli endpoint Edge Flussi di lavoro OAuth.

Oltre alle tecniche descritte in questa sezione, puoi utilizzare anche acurl e Utilità get_token per ricevere i token OAuth2.

Percorso

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

Se accedi al servizio Edge OAuth2 da un'organizzazione abilitata per SAML in Edge for Public Cloud, deve includere il nome della zona nel percorso. Ad esempio:

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

Intestazioni delle richieste

Parametro Valore
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"ZWRnZWNsaTplZGdlY2xpc2VjcmV0 di base"

Puoi esportare questo valore in una variabile di ambiente per poterlo riutilizzare in queste Chiamate API. Ad esempio:

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

Parametri modulo

Parametro Obbligatorio? Valore
username Facoltativo. È necessaria una combinazione di nome utente e password o un passcode. Il tuo nome utente Apigee, che in genere corrisponde all'indirizzo email associato al tuo account Apigee.
password Facoltativo. È necessaria una combinazione di nome utente e password o un passcode. La password del tuo account Apigee.
mfa_token Facoltativo Un codice di autenticazione a più fattori (MFA) valido per il tuo account. Obbligatorio solo se hai MFA abilitata.
passcode Facoltativo. È necessaria una combinazione di nome utente e password o un passcode. Un passcode monouso da utilizzare al posto di un password. È possibile utilizzare un passcode per l'autenticazione con un IdP SAML per l'autenticazione con un IdP LDAP.
grant_type Obbligatorio

Consente di stabilire se ricevere un nuovo token di accesso o aggiornare quello esistente. Valido sono:

  • "password": ottieni un nuovo token di accesso. Quando grant_type è "password", devi includere le tue credenziali Apigee nella richiesta.
  • "refresh_token": invia un token di aggiornamento per ottenere un nuovo token di accesso. Quando grant_type è "refresh_token". Non devi includere il tuo credenziali nella richiesta.
refresh_token Facoltativo Il token che passi per ottenere un nuovo token di accesso quando il token di accesso attuale ha scaduto. Questo parametro è obbligatorio quando grant_type è "refresh_token".

Esempi

di Gemini Advanced.

Richiedi un nuovo token di accesso

Per ricevere un nuovo token di accesso, imposta grant_type su "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'

Ricevi un nuovo token di accesso con MFA

Per ottenere un nuovo token di accesso con MFA (autenticazione a più fattori) abilitata, ottenere il codice MFA e poi imposta il parametro mfa_token sul suo valore:

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'

Aggiornare un token di accesso

Per aggiornare un token di accesso, imposta grant_type su "refresh_token" e aggiungi il tuo token di aggiornamento esistente come parametro del modulo:

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'

Tieni presente che non è necessario trasferire le credenziali quando aggiorni il token di accesso.

Risposte

Se l'operazione riesce, riceverai un token di accesso, un token di aggiornamento e le informazioni correlate. Per esempio:

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

Salva i valori della risposta:

  • Utilizza access_token nelle chiamate all'API Edge
  • Utilizza refresh_token quando il token di accesso scade e devi aggiornalo

Se ricevi una risposta simile alla seguente:

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

Accertati di aver utilizzato la stringa esatta indicata sopra ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") per il parametro Intestazione Authorization nella richiesta.