Personalizzazione di token e codici di autorizzazione

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.

In ognuno di questi criteri, l'elemento 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).