Variables de flux OAuth

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

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

Ce document spécifie les variables de flux définies par les règles OAuth. Les variables permettent de mettre en œuvre un comportement personnalisé pour les flux OAuth. Pour en savoir plus sur l'utilisation d'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.

Valider 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 produits d'API

Exemples de règles:

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

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

Exemple :

"Authorization: Bearer {PlainText_AccessToken}"

Toute valeur flow.variable peut être transmise 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 spécification OAuth 2.0.

Générer une stratégie de code d'autorisation
Variables définies en cas de réussite :
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Exemples de règles:

<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

Toute valeur flow.variable peut être transmise 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 spécification OAuth 2.0.

Les valeurs d'attribut sont dérivées de manière dynamique de la variable de flux spécifiée ou statiquement à l'aide d'une valeur par défaut dans la règle.

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

Générer une stratégie de jetons d'accès pour les types d'attribution, le code d'autorisation, les identifiants utilisateur et les identifiants client
Variables définies en cas de réussite :
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemples de règles:

<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

Toute valeur flow.variable peut être transmise 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 spécification OAuth 2.0.

Les valeurs d'attribut sont dérivées de manière dynamique de la variable de flux spécifiée ou statiquement à l'aide d'une valeur par défaut dans la règle.

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

Générer une règle de jetons d'accès pour le type d'attribution implicite
Variables définies en cas de réussite :
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemples de règles:

<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

Toute valeur flow.variable peut être transmise 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 spécification OAuth 2.0.

Les valeurs d'attribut sont dérivées de manière dynamique de la variable de flux spécifiée ou statiquement à l'aide d'une valeur par défaut dans la règle.

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

Actualiser la stratégie de jeton d'accès
Variables définies en cas de réussite :
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemples de règles:

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

* Facultatif

Toute valeur flow.variable peut être transmise 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 spécification OAuth 2.0.

Obtenir la règle sur les attributs du client

Exemples de règles:

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

Exemples de règles:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Obtenir la règle sur les attributs de jeton d'accès
Variables définies en cas de réussite :
  • 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

Exemples de règles:

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

Exemples de règles:

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

Exemples de règles:

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

Exemples de règles:

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

Exemples de règles:

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

Exemples de règles:

<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 jetons de requête

Exemples de règles:

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

Variables définies en fonction de la 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

Exemples de règles:

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

Variables définies en fonction de la réussite:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Stratégie de validation des jetons d'accès

Exemples de règles:

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

Variables définies en fonction de la réussite:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Vérifier la stratégie des clés API

Exemples de règles:

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

* Facultatif

Variables définies en fonction de la réussite:

  • oauth_consumer_key
  • oauth_consumer_secret

Vérifier les règles relatives aux consommateurs

Exemples de règles:

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

* Facultatif

Variables définies en fonction de la réussite:

  • oauth_consumer_key
  • oauth_consumer_secret

Vérifier la stratégie de jeton

Exemples de règles:

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

* Facultatif

Variables définies en fonction de la réussite:

  • oauth_token
  • oauth_token_secret