Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Informazioni sui metadati dei token
Apigee Edge genera token di accesso OAuth, token di aggiornamento e codici di autorizzazione e li distribuisce alle app autenticate. Al momento della generazione, Edge archivia questi token e codici. In seguito, quando Edge riceve richieste API in entrata che contengono questi token o codici, utilizza le informazioni archiviate per autorizzare le richieste.
Quando Edge genera questi artefatti OAuth, allega anche i metadati al token o al codice. Ad esempio, un token di accesso è associato a coppie nome/valore che definiscono l'ora di scadenza, l' app e lo 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" }
Aggiungere attributi personalizzati ai token OAuth
A volte è utile allegare metadati personalizzati a un token di accesso. Ad esempio, potresti voler aggiungere un nome utente, appartenenze 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 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 prendere decisioni di autorizzazione o routing granulari in base ai dati personalizzati allegati al token.
Per allegare dati arbitrari a un token, utilizza l<Attributes> elemento in
la policy OAuthV2. Puoi
specificare il nome dell'attributo personalizzato e il valore che deve assumere. Ad esempio, ecco una
configurazione della policy che genera un token e gli allega 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 allegarli implicitamente a un
codice di autorizzazione (<Operation>GenerateAuthorizationCode</Operation>) o
a un token (<Operation>GenerateAccessToken</Operation>) al momento della
generazione.
Quando display è impostato su true (impostazione predefinita), gli attributi personalizzati vengono
restituiti nella risposta, dove possono essere visualizzati dall'app o trasmessi all'utente finale.
Quando display è impostato su false, gli attributi personalizzati vengono archiviati nel datastore, ma non vengono restituiti nel messaggio di risposta. In entrambi i casi, i dati personalizzati sono disponibili
per le policy all'interno del proxy API dopo la verifica del token.
Per saperne di più sull'opzione display, consulta
Visualizzare o nascondere gli attributi personalizzati nella risposta.
Ottenere attributi personalizzati in fase di runtime
Quando viene chiamata OAuthV2/VerifyAccessToken,
Apigee Edge verifica il token cercandolo nell'archivio token. Apigee Edge popola quindi un
insieme di variabili di contesto contenenti informazioni sul token. come le seguenti.
- organization_name
- developer.id
- developer.app.name
- client_id
- grant_type
- token_type
- access_token
- issued_at
- expires_in //--in seconds
- status
- scope
- apiproduct.name*
Se il token contiene attributi personalizzati, questi vengono resi disponibili in
una variabile di contesto con il nome accesstoken.{custom_attribute}. Supponiamo, ad esempio,
che un token venga emesso dalla policy mostrata sopra. Dopo aver verificato un token di questo tipo, sarà presente
una variabile di contesto aggiuntiva denominata accesstoken.tenant_list, contenente il
valore archiviato al momento della generazione del token.
Le policy o le condizioni possono quindi fare riferimento a queste variabili e modificare il comportamento in base ai valori archiviati al loro interno.
Impostare e aggiornare gli attributi personalizzati in fase di runtime
In alcune situazioni, potresti voler che il proxy API aggiorni i metadati associati a un token di accesso in fase di runtime durante l'elaborazione di una chiamata API su Apigee Edge. Per aiutarti in questo, Apigee fornisce policy per ottenere e impostare gli attributi dei token. Per saperne di più, consulta le policy Get OAuth V2 Info e policy Set OAuth V2 Info.
AccessToken deve fare riferimento a una variabile che
contiene il token di accesso.
Puoi anche utilizzare le API Edge per aggiornare gli attributi personalizzati allegati a un token. Consulta la documentazione dell'API per il metodo Update OAuth 2.0 Access Token.