Abilita recupero e revoca dei token di accesso OAuth 2.0 per ID utente finale, ID app o entrambi

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

Questa sezione descrive come attivare il recupero e la revoca dei token di accesso OAuth 2.0 tramite ID utente finale, ID app o entrambi. La funzione ID utente finale richiede una configurazione speciale, come descritto in per ogni argomento. Per utente finale si intende l'utente dell'app che chiama l'API.

Quando abilitare l'accesso all'ID utente finale

A volte è utile memorizzare l'ID utente in un token di accesso. Abilita l'accesso all'ID utente finale solo se hai un buon caso d'uso. Ad esempio:

  • Una funzionalità del tuo sito web o della tua app che consente agli utenti di vedere di quali app di terze parti dispongono e per fornire un'opzione per revocare l'accesso a queste app.
  • Una funzionalità che consente a un utente autorizzato di revocare tutti i token di accesso associati a un di un'app per sviluppatori specifica.

Informazioni sui token di accesso OAuth

Gli ID app vengono aggiunti automaticamente a un token di accesso OAuth. Pertanto, dopo aver abilitato il token, per un'organizzazione come descritto di seguito, puoi revocare i token di accesso in base all'ID app.

Per recuperare e revocare i token di accesso OAuth 2.0 in base all'ID utente finale, deve essere presente un ID utente finale nei token di accesso. La procedura descritta di seguito descrive come aggiungere un ID utente finale a un di accesso.

Per impostazione predefinita, quando Edge genera un token di accesso OAuth 2.0, il token ha il formato mostrato. sotto:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

Tieni presente quanto segue:

  • Il campo application_name contiene l'UUID dell'app associata al token. Se attivi il recupero e la revoca di token di accesso OAuth 2.0 in base all'ID app, questo è l'ID app che utilizzi.
  • Il campo access_token contiene il valore del token di accesso OAuth 2.0.

Il token di accesso OAuth predefinito non contiene un campo per l'ID utente finale. Per attivare il recupero e revoca dei token di accesso OAuth 2.0 in base all'ID utente finale, è necessario configurare il criterio OAuth 2.0 per includere l'ID utente nel token, come descritto nella procedura riportata di seguito. Tieni presente che se Se vuoi recuperare e revocare i token di accesso OAuth 2.0 in base all'ID app, non è necessario abilitare l'accesso in base all'ID utente finale.

Devi passare l'ID utente finale all'endpoint di creazione del token. Puoi passare l'ID dell'utente finale come parametro di ricerca, parametro del modulo o in un'intestazione (come spiegato più avanti in questo argomento). Dopo aver configurato Edge in modo da includere l'utente finale nel token, è incluso come campo app_enduser, come mostrato di seguito:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "app_enduser" : "6ZG094fgnjNf02EK",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

Per scoprire come effettuare le chiamate API che eseguono questi recuperi e revoche, consulta seguenti documenti intelligenti:

Abilitazione dell'accesso ai token OAuth 2.0 tramite ID utente e ID app

La modalità di attivazione dell'accesso ai token OAuth 2.0 per ID utente e ID app dipende da come hai eseguito il deployment Edge:

  • Deployment basato su cloud

    Un deployment di Edge basato su cloud significa che la maggior parte della configurazione è gestita da Apigee. Tu sono responsabili solo della configurazione del criterio OAuth 2.0 per aggiungere l'ID utente all'accesso di accesso. Per ulteriori informazioni, consulta la procedura riportata di seguito.

  • Edge per il deployment del cloud privato

    In Apigee Edge per il cloud privato (on-premise), sei completamente responsabile configurazione. Per ulteriori informazioni, consulta la sezione Operazioni e Configurazione.

  • Apigee hybrid

    L'accesso ai token OAuth 2.0 per ID utente è abilitato per impostazione predefinita. Tu sono responsabili solo della configurazione del criterio OAuth 2.0 per aggiungere l'ID utente all'accesso di accesso. Per ulteriori informazioni, vedi il passaggio 5 della procedura riportata di seguito.

Abilitazione dell'accesso nel cloud

Passaggio 1: autorizza un'organizzazione a supporta questa funzione

Questa funzionalità deve essere abilitata per ogni organizzazione che deve supportarla.

Contatta l'assistenza Apigee Edge per richiedere l'aggiornamento della tua organizzazione.

Passo avanti 2: fornisci le autorizzazioni delle risorse oauth2 ai ruoli opsadmin e orgadmin

Devono essere assegnati solo i ruoli orgadmin e opsadmin le autorizzazioni per recuperare (get) e revocare (put) le chiamate al oauth2 risorsa in base all'ID utente finale o all'ID app.

Puoi usare il pulsante Ottieni autorizzazione per una chiamata API Resource per vedere quali ruoli hanno get e put autorizzazioni per la risorsa oauth2.

Se devi aggiungere o rimuovere autorizzazioni, contatta l'assistenza Apigee Edge per chiedigli di eseguire gli aggiornamenti.

Passo avanti 3: copia i token di accesso OAuth 2.0 esistenti nei nodi Cassandra

Eseguita dall'assistenza Apigee: in questa attività vengono usate copie di OAuth 2.0 esistente I token di accesso nelle organizzazioni interessate verranno copiati e archiviati nei nodi Cassandra. Questa procedura verrà eseguita sui nodi Cassandra per ciascuno dei tuoi pod Apigee Edge. Ciò consentirà recuperare e revocare le chiamate API da eseguire su tutti i token di accesso OAuth 2.0, esistenti appena generati.

Passaggio 4: aggiungi la proprietà oauth_max_search_limit al server di gestione e al messaggio processore

In questa attività, i file keymanagement.properties per il server di gestione e il processore di messaggi verrà aggiornato per includere questa proprietà: oauth_max_search_limit = 100. 100 è il valore consigliato di Apigee, ma può essere impostato in base alle tue esigenze.

Contatta l'assistenza Apigee Edge per richiederne l'aggiunta.

Passaggio 5: configura un criterio OAuth 2.0 per generare token di accesso che includano gli ID degli utenti finali

Configura il criterio OAuth 2.0 utilizzato per generare token di accesso che includano l'ID utente finale nel di accesso. Se includi gli ID utente finale nei token di accesso, potrai eseguire i recuperi e la revoca tramite l'ID utente finale.

Per configurare il criterio in modo da includere un ID utente finale in un token di accesso, devi specificare il parametro contenente l'ID utente finale. Utilizza il tag <AppEndUser> per specificare .

Il criterio OAuth 2.0 riportato di seguito, denominato GenerateAccessTokenClient, genera un'istanza 2.0. Nota l'aggiunta del tag <AppEndUser> in grassetto:

<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient">
  <DisplayName>OAuth 2.0.0 1</DisplayName>
  <ExternalAuthorization>false</ExternalAuthorization>
  <Operation>GenerateAccessToken</Operation>
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GenerateResponse enabled="true"/>
  <GrantType>request.queryparam.grant_type</GrantType>
  <AppEndUser>request.header.appuserID</AppEndUser>
  <ExpiresIn>960000</ExpiresIn>
</OAuthV2>

Puoi quindi utilizzare il seguente comando cURL per generare il token di accesso OAuth 2.0, passando L'ID utente come appuserID intestazione:

curl -H "appuserID:6ZG094fgnjNf02EK" /
  https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials /
  -X POST /
  -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'

In questo esempio, il valore appuserID viene passato come intestazione della richiesta. Puoi trasmettere le informazioni nell'ambito di una richiesta in molti modi. Per Ad esempio, in alternativa, puoi:

  • Utilizza una variabile per il parametro del modulo: request.formparam.appuserID
  • Utilizza una variabile di flusso che fornisca l'ID utente finale