Variabili di flusso OAuth

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Apigee Edge incapsula le funzionalità di OAuth 1.0a e OAuth 2 in un insieme di criteri. La gestione del ciclo di vita di token e secret, inclusi generazione, convalida e archiviazione, viene gestita da Apigee Edge per conto dei tuoi servizi di backend.

Questo documento specifica le variabili di flusso definite dai criteri OAuth. Le variabili possono essere utilizzate per implementare un comportamento personalizzato per i flussi OAuth. Per l'utilizzo di OAuth, consulta OAuth.

Variabili di flusso OAuth 2.0

Le variabili di flusso definite in questa tabella vengono compilate quando vengono eseguiti i rispettivi criteri OAuth e, di conseguenza, sono disponibili per altri criteri o applicazioni in esecuzione nel flusso del proxy API.

Criterio di verifica del token di accesso
  • organization_name
  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • accesstoken.{custom_attribute}
  • issued_at
  • expires_in
  • status
  • scope
  • apiproduct.name*
  • apiproduct.<custom_attribute_name>*

* Variabili del prodotto API

Criterio di esempio:

<OAuthV2 name="VerifyAccessToken">
    <Operation>VerifyAccessToken</Operation>
    <Scope>space-separated-scopes</Scope>*
    <AccessToken>flow.variable</AccessToken>*        
    <AccessTokenPrefix>Bearer</AccessTokenPrefix>*
</OAuthV2>

Sono supportati solo i token di tipo bearer. I token MAC non sono supportati.

Per impostazione predefinita, il token di accesso deve essere passato nell'intestazione della richiesta HTTP Authorization header.

Ad esempio:

"Authorization: Bearer {PlainText_AccessToken}"

Qualsiasi flow.variable può essere passata come:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Se i campi facoltativi non vengono specificati, i valori vengono estratti in base alla specifica OAuth 2.0 specifica.

Criterio di generazione del codice di autorizzazione
Variabili impostate in caso di successo:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Criterio di esempio:

<OAuthV2 name="GetAuthCode">
  <Operation>GenerateAuthorizationCode</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable</ResponseType>*
  <ClientId>flow.variable</ClientId>*
  <RedirectUri>flow.variable</RedirectUri>*
  <Scope>flow.variable</Scope>*
  <State>flow.variable</State>*
  <Attributes>*   
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* Facoltativo

Qualsiasi flow.variable può essere passata come:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Se i campi facoltativi non vengono specificati, i valori vengono estratti in base alla specifica OAuth 2.0 specifica.

I valori degli attributi vengono derivati dinamicamente dalla variabile di flusso specificata o staticamente utilizzando un valore predefinito nel criterio.

Se vengono specificati entrambi, la variabile di flusso ha la precedenza.

Criterio di generazione del token di accesso per i tipi di concessione codice di autorizzazione, credenziali utente e credenziali client
Variabili impostate in caso di successo:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Criterio di esempio:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <SupportedGrantTypes>*
    <GrantType>authorization_code</GrantType>
    <GrantType>password</GrantType>
   <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>flow.variable</GrantType>* 
  <ClientId>flow.variable</ClientId>* 
  <RedirectUri>flow.variable</RedirectUri>* 
  <Scope>flow.variable</Scope>* 
  <AppEndUser>flow.variable</AppEndUser>* 
  <Code>flow.variable</Code>* 
  <UserName>flow.variable</UserName>* 
  <PassWord>flow.variable</PassWord>*
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute> 
    <Attribute name=2 ref=flow.variable”>value2</Attribute>  
  </Attributes>
</OAuthV2>

* Facoltativo

Qualsiasi flow.variable può essere passata come:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Se i campi facoltativi non vengono specificati, i valori vengono estratti in base alla specifica OAuth 2.0 specifica.

I valori degli attributi vengono derivati dinamicamente dalla variabile di flusso specificata o staticamente utilizzando un valore predefinito nel criterio.

Se vengono specificati entrambi, la variabile di flusso ha la precedenza.

Criterio di generazione del token di accesso per il tipo di concessione implicita
Variabili impostate in caso di successo:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Criterio di esempio:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessTokenImplicitGrant</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable></ResponseType>*
  <ClientId>flow.variable></ClientId>*
  <RedirectUri>flow.variable></RedirectUri>*
  <Scope>flow.variable></Scope>*
  <State>flow.variable></State>*
  <AppEndUser>flow.variable</AppEndUser>*                                   
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* Facoltativo

Qualsiasi flow.variable può essere passata come:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Se i campi facoltativi non vengono specificati, i valori vengono estratti in base alla specifica OAuth 2.0 specifica.

I valori degli attributi vengono derivati dinamicamente dalla variabile di flusso specificata o staticamente utilizzando un valore predefinito nel criterio.

Se vengono specificati entrambi, la variabile di flusso ha la precedenza.

Criterio di aggiornamento del token di accesso
Variabili impostate in caso di successo:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Criterio di esempio:

<OAuthV2 name="RefreshAccessToken">
  <Operation>RefreshAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <GrantType>flow.variable</GrantType>*
  <RefreshToken>flow.variable</RefreshToken>*
</OAuthV2>

* Facoltativo

Qualsiasi flow.variable può essere passata come:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Se i campi facoltativi non vengono specificati, i valori vengono estratti in base alla specifica OAuth 2.0 specifica.

Criterio di recupero degli attributi del client

Criterio di esempio:

<GetOAuthV2Info name="GetClientAttributes">
<ClientId ref="{variable_name}"/>
</GetOAuthV2Info>

Criterio di esempio:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Criterio di recupero degli attributi del token di accesso
Variabili impostate in caso di successo:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.scope
  • oauthv2accesstoken.{policy_name}.refresh_token
  • oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}
  • oauthv2accesstoken.{policy_name}.developer.id
  • oauthv2accesstoken.{policy_name}.developer.app.name
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.status

Criterio di esempio:

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken ref="{variable_name}"/>
</GetOAuthV2Info>

Criterio di esempio:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Criterio di recupero degli attributi del codice di autorizzazione

Criterio di esempio:

<GetOAuthV2Info name="GetAuthCodeAttributes">
 <AuthorizationCode ref="{variable_name}"/>
</GetOAuthV2Info>

Criterio di esempio:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Criterio di recupero degli attributi del token di aggiornamento

Criterio di esempio:

<GetOAuthV2Info name="GetTokenAttributes">
  <RefreshToken ref="{variable_name}"/>
</GetOAuthV2Info>

Criterio di esempio:

<GetOAuthV2Info name="GetTokenAttributes">
    <RefreshToken>{refresh_token}</RefreshToken>
</GetOAuthV2Info>

Variabili di flusso OAuth 1.0a

Le variabili di flusso definite in questa tabella vengono compilate quando vengono eseguiti i rispettivi criteri OAuth e, di conseguenza, sono disponibili per altri criteri o applicazioni in esecuzione nel flusso del proxy API.

Criterio di generazione del token di richiesta

Criterio di esempio:

<OAuthV1 name="GenerateRequestToken">
  <Operation>GenerateRequestToken</Operation>
</OAuthV1>

Variabili impostate in caso di successo:

  • oauth_token
  • oauth_token_secret
  • oauth_callback_confirmed
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Criterio di generazione del token di accesso

Criterio di esempio:

<OAuthV1 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
</OAuthV1>

Variabili impostate in caso di successo:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Criterio di verifica del token di accesso

Criterio di esempio:

<OAuthV1 name="VerifyAccessToken">
  <Operation>VerifyAccessToken</Operation>
</OAuthV1>

Variabili impostate in caso di successo:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Criterio di verifica della chiave API

Criterio di esempio:

<GetOAuthV1Info name="VerifyApiKey">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <APIKey ref="{variable_name}" />
</GetOAuthV1Info>

* Facoltativo

Variabili impostate in caso di successo:

  • oauth_consumer_key
  • oauth_consumer_secret

Criterio di verifica del consumer

Criterio di esempio:

<GetOAuthV1Info name="VerifyConsumer">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <ConsumerKey ref="{variable_name}" />
</GetOAuthV1Info>

* Facoltativo

Variabili impostate in caso di successo:

  • oauth_consumer_key
  • oauth_consumer_secret

Criterio di verifica del token

Criterio di esempio:

<GetOAuthV1Info name="VerifyToken">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <RequestToken ref="{variable_name}" />
</GetOAuthV1Info>

* Facoltativo

Variabili impostate in caso di successo:

  • oauth_token
  • oauth_token_secret