<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Présentation
Révoque les jetons d'accès OAuth 2 associés à un ID d'application de développeur et/ou à un ID d'utilisateur final de l'application.
Utilisez la règle OAuth V2 pour générer un jeton d'accès OAuth 2.0. Un jeton généré par Apigee a le format suivant :
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
L'élément application_name
contient l'ID d'application de développeur associé au jeton.
Par défaut, Apigee n'inclut pas l'ID de l'utilisateur final dans le jeton. Vous pouvez configurer Apigee de manière à inclure l'ID de l'utilisateur final en ajoutant l'élément <AppEndUser>
à la règle OAuthv2 :
<OAuthV2 name="GenerateAccessTokenClient"> <Operation>GenerateAccessTokenV/Operation> ... <AppEndUser>request.queryparam.app_enduser</AppEndUser> </OAuthV2>
Dans cet exemple, transmettez l'ID de l'utilisateur final à la règle OAuth V2 dans un paramètre de requête nommé app_enduser
.
L'ID de l'utilisateur final est ensuite inclus dans le jeton de l'élément app_enduser
:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
Révoquer par l'ID de l'application de développeur
Révoquez les jetons d'accès OAuth2 associés à un ID d'application de développeur. Tous les jetons d'accès OAuth2 générés par Apigee incluent l'ID de l'application de développeur associée au jeton. Vous pouvez ensuite révoquer les jetons basés sur cet ID d'application.
Utilisez l'API des applications pour les développeurs afin d'obtenir la liste des ID d'application pour un développeur spécifique.
Vous pouvez également utiliser l'API des applications pour les développeurs. pour obtenir des informations sur une application.
Révoquer par l'ID de l'utilisateur final de l'application
Révoquez les jetons d'accès OAuth2 associés à l'ID d'un utilisateur final d'une application spécifique. Il s'agit du jeton associé à l'ID de l'utilisateur pour lequel les jetons ont été émis.
Par défaut, il n'existe pas de champ pour l'ID de l'utilisateur final dans le jeton d'accès OAuth. Pour activer la révocation des jetons d'accès OAuth 2.0 par l'ID de l'utilisateur final, vous devez configurer la règle OAuth v2 pour inclure l'ID de l'utilisateur dans le jeton, comme indiqué ci-dessus.
Pour obtenir l'ID utilisateur final d'une application, utilisez la méthode API Developer Apps
Exemples
Les exemples suivants utilisent la règle Révoquer OAuth V2 pour révoquer les jetons d'accès OAuth 2.
ID de l'application de développeur
Pour révoquer les jetons d'accès par ID d'application de développeur, utilisez l'élément <AppId>
dans votre règle.
L'exemple suivant s'attend à trouver l'ID d'application de développeur du jeton d'accès dans un paramètre de requête nommé app_id
:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> </RevokeOAuthV2>
Selon l'ID de l'application de développeur, la règle révoque le jeton d'accès.
Révoquer avant l'horodatage
Pour révoquer les jetons d'accès par l'ID d'application de développeur générés avant une date et une heure spécifiques, utilisez l'élément <RevokeBeforeTimestamp>
dans votre règle. <RevokeBeforeTimestamp>
spécifie une epoch UTC en millisecondes. Tous les jetons émis avant cette heure sont révoqués.
L'exemple suivant révoque les jetons d'accès pour une application de développeur créée avant le 1er juillet 2019 :
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp> </RevokeOAuthV2>
L'élément <RevokeBeforeTimestamp>
utilise un entier de 64 bits (long) représentant le nombre de millisecondes écoulées depuis minuit, le 1er janvier 1970 UTC.
Documentation de référence des éléments
La documentation de référence des éléments décrit les éléments et les attributs de la règle RevokeOAuthV2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1"> <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AppId ref="variable"></AppId> <EndUserId ref="variable"></EndUserId> <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp> <Cascade>false</Cascade> </RevokeOAuthV2>
Attributs <RevokeOAuthV2>
<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">
Le tableau suivant décrit les attributs communs à tous les éléments parents des règles :
Attribut | Description | Par défaut | Présence |
---|---|---|---|
name |
Nom interne de la règle. La valeur de l'attribut Vous pouvez également utiliser l'élément |
ND | Valeur |
continueOnError |
Définissez sur Définissez sur |
faux | Facultatif |
enabled |
Définissez sur Définissez sur |
vrai | Facultatif |
async |
Cet attribut est obsolète. |
faux | Obsolète |
Élément <DisplayName>
Utilisez-le, en plus de l'attribut name
, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent, en langage naturel.
<DisplayName>Policy Display Name</DisplayName>
Par défaut |
ND Si vous omettez cet élément, la valeur de l'attribut |
---|---|
Présence | Facultatif |
Type | Chaîne |
Élément <AppId>
Spécifie l'ID d'application de développeur des jetons à révoquer. Transmettez une variable contenant l'ID de l'application ou un ID d'application littéral.
<AppId>appIdString</AppId> or: <AppId ref="request.queryparam.app_id"></AppId>
Par défaut |
|
---|---|
Présence |
Facultatif |
Type | Chaîne |
Valeurs valides |
Une variable de flux contenant une chaîne d'ID d'application ou une chaîne littérale. |
Élément <Cascade>
Si la valeur est true
et que vous disposez d'un jeton d'accès opaque traditionnel, le jeton d'actualisation et le jeton d'accès sont révoqués si <AppId>
ou <EndUserId>
correspondent.
Si la valeur est false
, seul le jeton d'accès est révoqué, et le jeton d'actualisation reste inchangé. Le même comportement ne s'applique qu'aux jetons d'accès opaques.
<Cascade>false<Cascade>
Par défaut |
false |
---|---|
Présence |
Facultatif |
Type | Booléen |
Valeurs valides | true ou false |
Élément <EndUserId>
Spécifie l'ID de l'utilisateur final de l'application du jeton à révoquer. Transmettez une variable contenant l'ID utilisateur ou une chaîne de jeton littérale.
<EndUserId>userIdString</EndUserId> or: <EndUserId ref="request.queryparam.access_token"></EndUserId>
Par défaut |
|
---|---|
Présence |
Facultatif |
Type | Chaîne |
Valeurs valides |
Une variable de flux contenant une chaîne d'ID utilisateur ou une chaîne littérale. |
Élément <RevokeBeforeTimestamp>
Révoquez les jetons émis avant l'horodatage. Cet élément fonctionne avec <AppId>
et <EndUserId>
pour vous permettre de révoquer des jetons avant une heure spécifique.
La valeur par défaut correspond à l'heure d'exécution de la règle.
<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp> or: <RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
Par défaut |
Horodatage d'exécution de la règle. |
---|---|
Présence |
Facultatif |
Type | Nombre entier de 64 bits (long) représentant le nombre de millisecondes écoulées depuis minuit, le 1er janvier 1970 UTC. |
Valeurs valides |
Variable de flux contenant un horodatage, ou un horodatage littéral. L'horodatage ne peut pas être ultérieur et ne peut pas être antérieur au 1er janvier 2014. |
Variables de flux
La règle RevokeOAuthV2 ne définit pas les variables de flux.
Informations de référence sur les erreurs
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie 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. Les noms d'erreur indiqués ci-dessous sont les chaînes attribuées à la variable fault.name
en cas d'erreur. Pour plus d'informations, consultez la section des variables de codes d'erreur ci-dessous.
Code d'erreur | État HTTP | Cause |
---|---|---|
steps.oauth.v2.InvalidFutureTimestamp |
500 | L'horodatage ne doit pas se situer dans le futur. |
steps.oauth.v2.InvalidEarlyTimestamp |
500 | L'horodatage ne peut pas être antérieur au 1er janvier 2014. |
steps.oauth.v2.InvalidTimestamp |
500 | L'horodatage est incorrect. |
steps.oauth.v2.EmptyAppAndEndUserId |
500 | AppdId et EndUserId ne peuvent pas être vides. |
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 | Où | 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 Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.GetTokenInfo.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.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
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.GetTokenInfo.cause = ClientID is Invalid |
Exemple de réponse d'erreur
{ "fault":{ "faultstring":"Timestamp is in the future.", "detail":{ "errorcode":"steps.oauth.v2.InvalidFutureTimestamp" } } }
Exemple de règle de défaillance
<FaultRule name="RevokeOAuthV2 Faults"> <Step> <Name>AM-InvalidTimestamp</Name> </Step> <Condition>(fault.name = "InvalidFutureTimestamp")</Condition> </FaultRule>