Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Informazioni sui metadati dei token
Apigee Edge genera token di accesso OAuth, token di aggiornamento e codici di autorizzazione. le distribuiscono alle app autenticate. Al momento della generazione, Edge archivia questi token e codici. In seguito, quando Edge riceve richieste API in entrata con questi token o codici, Edge utilizza le informazioni archiviate per autorizzare le richieste.
Quando Edge 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 Edge è simile alla 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
A volte è utile collegare metadati personalizzati a un token di accesso. Ad esempio, potresti volere per aggiungere un nome utente, iscrizioni a gruppi o ruoli per un utente, un ID cliente, un identificatore di sessione o altre informazioni arbitrarie a un token. In Apigee Edge, questi dati sono chiamati attributi". In seguito, quando il token viene verificato nell'ambito di una richiesta API, i dati vengono resi disponibili al proxy API tramite le variabili di contesto. Un proxy API potrebbe rendere di autorizzazione o di routing granulari in base ai dati personalizzati collegati di accesso.
Per collegare dati arbitrari a un token, utilizza l'elemento <Attributes>
in
il criterio OAuthV2. Puoi
specificare il nome dell'attributo personalizzato e il valore che deve assumere. 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>
) nel 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
ai criteri all'interno del proxy API, dopo la verifica del token.
Per ulteriori informazioni sull'opzione display
Mostrare o nascondere gli attributi personalizzati nella risposta.
Recupero degli attributi personalizzati durante il runtime
Quando è in corso una chiamata al numero OAuthV2/VerifyAccessToken
,
Apigee Edge verifica il token cercandolo nell'archivio token. Apigee Edge 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
- scade_in //--in secondi
- stato
- ambito
- apiproduct.name*
Se nel token sono presenti 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,
una variabile di contesto aggiuntiva denominata accesstoken.tenant_list
, contenente la
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 Tempo di esecuzione
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 Edge. 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.
AccessToken
deve fare riferimento a una variabile che
contiene il token di accesso.
Puoi anche utilizzare le API Edge per aggiornare gli attributi personalizzati collegati a un token. Visualizza l'API documentazione per l'aggiornamento OAuth 2.0 Access Token (Token di accesso OAuth 2.0).