Questa pagina si applica a Apigee e Apigee ibridi.
Visualizza documentazione di Apigee Edge.
Informazioni sui metadati dei token e dei codici di autorizzazione
Apigee genera token di accesso OAuth, token di aggiornamento e codici di autorizzazione e li distribuisce alle app autenticate. Al momento della generazione, Apigee archivia i token e i codici. In seguito, quando Apigee riceve richieste API in entrata con questi token o codici, utilizza le informazioni memorizzate per autorizzare le richieste.
Quando Apigee genera questi artefatti OAuth, collega anche i metadati al token o al codice. Per Ad esempio, un token di accesso è associato a coppie nome/valore che definiscono data e ora di scadenza, app e sviluppatore associati, e altre informazioni.
La rappresentazione JSON di un token di accesso Apigee è la seguente:
{ "issued_at" : "1372170159093", "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501", "scope" : "READ", "status" : "approved", "api_product_list" : "[Product1,Product2]", "api_product_list_json" : ["Product1", "Product2"], "expires_in" : "3599", //--in seconds "developer.email" : "joe@weathersample.com", "organization_id" : "0", "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe", "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND", "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp", "organization_name" : "apifactory", "refresh_count" : "0" }
Aggiunta di attributi personalizzati ai token OAuth e ai codici di autorizzazione
A volte è utile collegare metadati personalizzati a un token di accesso. Ad esempio, potresti volere aggiungere un nome utente, i ruoli o le iscrizioni ai gruppi di un utente, un ID cliente, un identificatore di sessione o altre informazioni arbitrarie a un token. In Apigee, questi dati sono chiamati "attributi personalizzati". Successivamente, quando il token viene verificato nell'ambito di una richiesta API, questi dati vengono resi disponibili al proxy API tramite le variabili di contesto. Un proxy API potrebbe rendere di autorizzazione e di routing granulari in base ai dati personalizzati collegati di accesso.
Per associare dati arbitrari a un token, utilizza l'elemento <Attributes>
nel
criterio OAuthV2. Puoi
specificare il nome e il valore dell'attributo personalizzato. Ad esempio, ecco un esempio
della configurazione dei criteri che genera un token e collega un attributo personalizzato denominato "tenant_list"
al token:
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>600000</ExpiresIn> <GenerateResponse /> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <Attributes> <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/> </Attributes> </OAuthV2>
Puoi specificare più attributi personalizzati e collegarli implicitamente a un
codice di autorizzazione (<Operation>GenerateAuthorizationCode</Operation>
) o
un token (<Operation>GenerateAccessToken</Operation>
) al momento
di classificazione.
Se il criterio display
è impostato su true
(valore predefinito), gli attributi personalizzati vengono
restituiti nella risposta, dove potrebbero essere visualizzabili dall'app o trasmessi all'utente finale.
Se il criterio display
viene impostato su false
, gli attributi personalizzati vengono archiviati nei dati
di archiviazione, ma non vengono restituiti nel messaggio di risposta. In entrambi i casi, i dati personalizzati sono disponibili per i criteri all'interno del proxy API dopo la verifica del token.
Per ulteriori informazioni sull'opzione display
, vedi
Mostrare o nascondere gli attributi personalizzati nella risposta.
Ottenere gli attributi dei token di accesso personalizzati in fase di esecuzione
Quando viene effettuata una chiamata a OAuthV2/VerifyAccessToken
,
Apigee verifica il token cercandolo nel token store. Apigee compila quindi una
insieme di variabili di contesto contenenti informazioni sul token. Queste includono:
organization_name
developer.id
developer.app.name
client_id
grant_type
token_type
access_token
issued_at
expires_in
//--in secondsstatus
scope
apiproduct.name*
Se il token contiene attributi personalizzati, questi vengono resi disponibili in
una variabile di contesto con il nome accesstoken.{custom_attribute}
. Ad esempio:
supponiamo che venga emesso un token dal criterio mostrato sopra. Dopo aver verificato un token di questo tipo, esisterebbe un'altra variabile di contesto denominata accesstoken.tenant_list
, contenente il valore memorizzato al momento della generazione del token.
I criteri o le condizioni possono quindi fare riferimento a queste variabili e modificare il comportamento in base ai valori archiviati al suo interno.
Impostazione e aggiornamento degli attributi personalizzati in fase di runtime
In alcune situazioni, è consigliabile che il proxy API aggiorni i metadati associati a un il token di accesso in fase di runtime, mentre è in corso l'elaborazione di una chiamata API su Apigee. Per aiutarti, Apigee fornisce criteri per recuperare e impostare attributi dei token. Per ulteriori informazioni, vedi Ottieni informazioni OAuth V2 policy e Imposta OAuth. Norme relative alle informazioni V2.
In ognuno di questi criteri, l'elemento AccessToken
deve fare riferimento a una variabile che
contiene il token di accesso.