Variables de flux OAuth

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Apigee Edge encapsule les fonctionnalités OAuth 1.0a et OAuth 2 dans un ensemble de règles. La vie la gestion du cycle des jetons et des secrets, y compris la génération, la validation et le stockage, est gérée par Apigee Edge au nom de vos services de backend.

Ce document spécifie les variables de flux définies par les règles OAuth. Les variables peuvent être utilisé pour implémenter un comportement personnalisé pour les flux OAuth. Pour en savoir plus sur l'utilisation du protocole OAuth, consultez OAuth.

Variables de flux OAuth 2.0

Les variables de flux définies dans ce tableau sont renseignées lorsque les règles OAuth respectives sont exécutées. Elles sont donc disponibles pour d'autres règles ou applications exécutées dans le flux de proxy d'API.

Vérifier la stratégie de jeton d'accès
  • 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>*

* Variables de produit de l'API

Exemple de règle:

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

Seuls les jetons de support sont acceptés. Les jetons MAC ne sont pas acceptés.

Par défaut, le jeton d'accès doit être transmis dans la requête HTTP d'autorisation en-tête.

Exemple :

"Authorization: Bearer {PlainText_AccessToken}"

Tout flow.variable peut être transmis comme suit:

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

Si les champs facultatifs ne sont pas spécifiés, les valeurs sont extraites conformément à la norme spécifique.

Générer une stratégie de code d'autorisation
Variables définies en cas de réussite: <ph type="x-smartling-placeholder">
    </ph>
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Exemple de règle:

<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>

* Facultatif

Tout flow.variable peut être transmis comme suit:

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

Si les champs facultatifs ne sont pas spécifiés, les valeurs sont extraites conformément à la norme spécifique.

Les valeurs d'attribut sont dérivées de manière dynamique de la variable de flux spécifiée, ou de manière statique en utilisant une valeur par défaut dans la stratégie.

Si les deux sont spécifiées, la variable de flux est prioritaire.

Générez une stratégie de jetons d'accès pour le code d'autorisation, les identifiants utilisateur et identifiants client
Variables définies en cas de réussite: <ph type="x-smartling-placeholder">
    </ph>
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemple de règle:

<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>

* Facultatif

Tout flow.variable peut être transmis comme suit:

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

Si les champs facultatifs ne sont pas spécifiés, les valeurs sont extraites conformément à la norme spécifique.

Les valeurs d'attribut sont dérivées de manière dynamique de la variable de flux spécifiée, ou de manière statique en utilisant une valeur par défaut dans la stratégie.

Si les deux sont spécifiées, la variable de flux est prioritaire.

Générer une stratégie de jeton d'accès pour le type d'attribution implicite
Variables définies en cas de réussite: <ph type="x-smartling-placeholder">
    </ph>
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemple de règle:

<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>

* Facultatif

Tout flow.variable peut être transmis comme suit:

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

Si les champs facultatifs ne sont pas spécifiés, les valeurs sont extraites conformément à la norme spécifique.

Les valeurs d'attribut sont dérivées de manière dynamique de la variable de flux spécifiée, ou de manière statique en utilisant une valeur par défaut dans la stratégie.

Si les deux sont spécifiées, la variable de flux est prioritaire.

Actualiser la stratégie de jetons d'accès
Variables définies en cas de réussite: <ph type="x-smartling-placeholder">
    </ph>
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemple de règle:

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

* Facultatif

Tout flow.variable peut être transmis comme suit:

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

Si les champs facultatifs ne sont pas spécifiés, les valeurs sont extraites conformément à la norme spécifique.

Obtenir les règles relatives aux attributs du client

Exemple de règle:

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

Exemple de règle:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Obtenir la stratégie d'attributs de jeton d'accès
Variables définies en cas de réussite: <ph type="x-smartling-placeholder">
    </ph>
  • 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

Exemple de règle:

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

Exemple de règle:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Obtenir la règle sur les attributs de code d'autorisation

Exemple de règle:

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

Exemple de règle:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Obtenir la règle d'attributs de jeton d'actualisation

Exemple de règle:

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

Exemple de règle:

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

Variables de flux OAuth 1.0a

Les variables de flux définies dans ce tableau sont renseignées lorsque les règles OAuth respectives sont exécutées. Elles sont donc disponibles pour d'autres règles ou applications exécutées dans le flux de proxy d'API.

Générer une stratégie de jeton de requête

Exemple de règle:

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

Variables définies en cas de réussite:

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

Générer une stratégie de jeton d'accès

Exemple de règle:

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

Variables définies en cas de réussite:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Validation des jetons d'accès règlement

Exemple de règle:

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

Variables définies en cas de réussite:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Vérifier la règle de clé API

Exemple de règle:

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

* Facultatif

Variables définies en cas de réussite:

  • oauth_consumer_key
  • oauth_consumer_secret

Vérifier les règles relatives aux consommateurs

Exemple de règle:

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

* Facultatif

Variables définies en cas de réussite:

  • oauth_consumer_key
  • oauth_consumer_secret

Vérifier la stratégie de jetons

Exemple de règle:

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

* Facultatif

Variables définies en cas de réussite:

  • oauth_token
  • oauth_token_secret