Variables de flux OAuth

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
info

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, y compris leur génération, leur validation et leur stockage, 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 peuvent être utilisées pour implémenter 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 .

Règle de vérification du 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 d'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 porteurs sont acceptés. Les jetons MAC ne sont pas acceptés.

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

Règle de génération du 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

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

Toute 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 à partir de la variable de flux spécifiée ou de manière statique à l'aide d'une valeur par défaut dans la règle.

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

Règle de génération du jeton d'accès pour les types d'attribution code d'autorisation, identifiants utilisateur et 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

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

Toute 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 à partir de la variable de flux spécifiée ou de manière statique à l'aide d'une valeur par défaut dans la règle.

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

Règle de génération du jeton 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

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

Toute 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 à partir de la variable de flux spécifiée ou de manière statique à l'aide d'une valeur par défaut dans la règle.

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

Règle d'actualisation du 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

Exemple de règle :

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

* Facultatif

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

Règle d'obtention des attributs 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>
Règle d'obtention des attributs du 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

Exemple de règle :

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

Exemple de règle :

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Règle d'obtention des attributs du 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>
Règle d'obtention des attributs du 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 .

Règle de génération du 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

Règle de génération du 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

Règle de vérification du jeton d'accès

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

Règle de vérification de la 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

Règle de vérification du consommateur

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

Règle de vérification du jeton

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