Règle SetOAuthV2Info

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

Quoi

Vous permet d'ajouter ou de modifier des valeurs d'attributs personnalisés associés à un jeton d'accès. Les attributs personnalisés peuvent inclure des éléments tels que le nom du service, un numéro client ou un identifiant de session. Voir également Personnaliser des jetons et des codes d'autorisation.

Vous pouvez uniquement ajouter ou modifier des attributs personnalisés. Vous ne pouvez pas utiliser cette règle pour modifier des champs tels que champ d'application, état, expires_in, developer_email, client_id, org_name ou refresh_count. Si un attribut existe déjà, cette règle le modifie. S'il n'existe pas, elle l'ajoute. Le jeton d'accès référencé doit être valide et approuvé.

Exemples

Exemple de base

Voici un exemple de règle permettant de modifier un jeton d'accès OAuth 2.0. Cet exemple localise le jeton d'accès dans le message de requête en recherchant un paramètre de requête appelé access_token. Lorsqu'un jeton d'accès est présenté par une application cliente, la règle ci-dessous localise le jeton d'accès dans le paramètre de requête. Elle met ensuite à jour le profil du jeton d'accès. Elle ajoute une propriété personnalisée appelée department.id au profil.

<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>

Documentation de référence des éléments

La référence d'élément décrit les éléments et les attributs de la règle SetOAuthV2.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1">    
    <DisplayName>Set OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref={some-variable}></AccessToken>
    <Attributes/>
</SetOAuthV2Info>
</xml>

Attributs <SetOAuthV2Info>

<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">

The following table describes attributes that are common to all policy parent elements:

Attribute Description Default Presence
name

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

N/A Required
continueOnError

Set to false to return an error when a policy fails. This is expected behavior for most policies.

Set to true to have flow execution continue even after a policy fails.

false Optional
enabled

Set to true to enforce the policy.

Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence Optional
Type String

Élément <AccessToken>

Identifie la variable où se trouve le jeton d'accès. Par exemple, si le jeton d'accès est associé au message de la requête en tant que paramètre de requête, spécifiez request.queryparam.access_token. Vous pouvez utiliser n'importe quelle variable valide faisant référence au jeton. Il est également possible de transmettre la chaîne de jeton littérale (cas rare).

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
Valeur par défaut : ND
Présence : Requis
Type : Chaîne

Attributs

Attribut Description Par défaut Présence
ref

Une variable de jeton d'accès. Généralement récupérée à partir d'une variable de flux.

ND Facultative

Élément <Attributes>

Ensemble d'attributs dans le profil de jeton d'accès qui seront modifiés ou augmentés.

Valeur par défaut : ND
Présence : Requis
Type : ND

Élément <Attributes>/<Attribute>

Attribut individuel à mettre à jour.

L'attribut de nom identifie la propriété personnalisée du profil de jeton d'accès à mettre à jour. Cet exemple montre comment utiliser une valeur de variable référencée et une valeur statique.

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
Valeur par défaut : ND
Présence : Facultatif
Type : ND

Attributs

Attribut Description Par défaut Présence
nom Nom de l'attribut de profil à ajouter ou à modifier. ND
ref

Valeur à attribuer à l'attribut de profil.

ND Facultative

Variables de flux

En cas de réussite, les variables de flux suivantes seront définies :

  • oauthv2accesstoken.{policyName}.access_token
  • oauthv2accesstoken.{policyName}.client_id
  • oauthv2accesstoken.{policyName}.refresh_count
  • oauthv2accesstoken.{policyName}.organization_name
  • oauthv2accesstoken.{policyName}.expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.issued_at
  • oauthv2accesstoken.{policyName}.status
  • oauthv2accesstoken.{policyName}.api_product_list
  • oauthv2accesstoken.{policyName}.token_type
  • oauthv2accesstoken.{policyName}.{custom_attribute_name}

Schéma

Chaque type de règle est défini par un schéma XML (.xsd). Pour référence, des schémas de règles sont disponibles sur GitHub.

Informations de référence sur les erreurs

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
steps.oauth.v2.access_token_expired 500 Le jeton d'accès envoyé à la règle a expiré.
steps.oauth.v2.invalid_access_token 500 Le jeton d'accès envoyé à la règle n'est pas valide.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Veuillez consulter cet article de la communauté Apigee pour en savoir plus sur la résolution de cette erreur.

Erreurs de déploiement

Reportez-vous au message indiqué dans l'interface utilisateur pour en savoir plus sur les erreurs de déploiement.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.

Variables Lieu Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.SetTokenInfo.cause = Invalid Access Token

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

Exemple de règle de défaillance

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

Articles associés