Variabili di flusso OAuth

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Apigee Edge incapsula le funzionalità OAuth 1.0a e OAuth 2 in un insieme di criteri. La gestione del ciclo di vita di token e secret, incluse generazione, convalida e archiviazione, è 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 informazioni sull'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, pertanto, sono disponibili per altri criteri o applicazioni in esecuzione nel flusso proxy API.

Verifica il criterio 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 di 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 connessione. I token MAC non sono supportati.

Per impostazione predefinita, il token di accesso deve essere trasmesso nell'intestazione della richiesta HTTP di autorizzazione.

Ad esempio:

"Authorization: Bearer {PlainText_AccessToken}"

Qualsiasi flow.variable può essere trasmesso 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.

Genera criterio del codice di autorizzazione
Variabili impostate in caso di esito positivo:
  • 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 trasmesso 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.

I valori degli attributi vengono derivati in modo dinamico dalla variabile di flusso specificata oppure in modo statico utilizzando un valore predefinito nel criterio.

Se sono specificate entrambe, la variabile di flusso ha la precedenza.

Genera criteri dei token di accesso per i tipi di concessione di autorizzazione, codice di autorizzazione, credenziali utente e credenziali client
Variabili impostate in caso di esito positivo:
  • 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 trasmesso 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.

I valori degli attributi vengono derivati in modo dinamico dalla variabile di flusso specificata oppure in modo statico utilizzando un valore predefinito nel criterio.

Se sono specificate entrambe, la variabile di flusso ha la precedenza.

Genera il criterio dei token di accesso per il tipo di concessione implicita
Variabili impostate in caso di esito positivo:
  • 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 trasmesso 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.

I valori degli attributi vengono derivati in modo dinamico dalla variabile di flusso specificata oppure in modo statico utilizzando un valore predefinito nel criterio.

Se sono specificate entrambe, la variabile di flusso ha la precedenza.

Aggiorna criterio del token di accesso
Variabili impostate in caso di esito positivo:
  • 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 trasmesso 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.

Ottieni criterio per gli attributi client

Criterio di esempio:

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

Criterio di esempio:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Ottenere il criterio per gli attributi dei token di accesso
Variabili impostate in caso di esito positivo:
  • 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>
Ottieni il criterio per gli 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>
Ottieni criterio per gli attributi dei 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, pertanto, sono disponibili per altri criteri o applicazioni in esecuzione nel flusso proxy API.

Genera criterio del token di richiesta

Criterio di esempio:

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

Variabili impostate in caso di esito positivo:

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

Genera criterio dei token di accesso

Criterio di esempio:

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

Variabili impostate in caso di esito positivo:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Criterio di verifica dei token di accesso

Criterio di esempio:

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

Variabili impostate in caso di esito positivo:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Verifica il criterio della chiave API

Criterio di esempio:

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

* Facoltativo

Variabili impostate in caso di esito positivo:

  • oauth_consumer_key
  • oauth_consumer_secret

Verifica le norme per i consumatori

Criterio di esempio:

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

* Facoltativo

Variabili impostate in caso di esito positivo:

  • oauth_consumer_key
  • oauth_consumer_secret

Verifica criterio token

Criterio di esempio:

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

* Facoltativo

Variabili impostate in caso di esito positivo:

  • oauth_token
  • oauth_token_secret