Cette page s'applique à Apigee, mais pas à Apigee hybrid.
Consultez la documentation d'Apigee Edge.
Présentation
VerifyIAM fait partie d'une méthode basée sur Google Cloud IAM pour gérer l'authentification et l'autorisation des accès aux API, semblable à la règle OAuthv2. Pour savoir comment inclure VerifyIAM dans une solution de contrôle des accès basée sur IAM, consultez la présentation de l'authentification d'API basée sur IAM.
Cette règle est une règle standard qui peut être déployée sur n'importe quel type d'environnement. Pour en savoir plus sur les types de règles et la disponibilité avec chaque type d'environnement, consultez la section Types de règles.
Documentation de référence des éléments
Cette documentation de référence présente les éléments et les attributs de la règle VerifyIAM.
<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy"> <DisplayName>Custom label used in UI</DisplayName> <CredentialSource>flow_variable_name_containing_credential_value</CredentialSource> </VerifyIAM>
Attributs <VerifyIAM>
<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy">
Le tableau suivant décrit les attributs communs à tous les éléments parents des règles :
Attribut | Description | Par défaut | Presence |
---|---|---|---|
name |
Nom interne de la règle. La valeur de l'attribut Vous pouvez également utiliser l'élément |
N/A | Obligatoire |
continueOnError |
Définissez sur Définissez sur |
false | Facultatif |
enabled |
Définissez sur Définissez sur |
true | Facultatif |
async |
Cet attribut est obsolète. |
false | 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 |
N/A Si vous omettez cet élément, la valeur de l'attribut |
---|---|
Presence | Facultatif |
Type | Chaîne |
Élément <CredentialSource>
<CredentialSource>flow_variable_name_containing_credential_value</CredentialSource>
Cet élément spécifie la variable de flux contenant la valeur des identifiants et présente les caractéristiques suivantes :
- En règle générale, le client envoie la valeur dans un paramètre de requête, un en-tête HTTP ou un paramètre de formulaire. La chaîne doit spécifier la variable de flux correspondante au format
request.queryparam.token
. - Lors de la lecture à partir de la référence, une valeur directe est attendue. Par exemple, le préfixe "Bearer" ne doit pas être présent.
- Si cette valeur est omise, l'exécution de la règle suppose que la valeur se trouve dans l'en-tête d'autorisation et au format standard "Bearer xyz".
Par défaut | ND |
---|---|
Presence | Facultatif |
Type | Variable de flux |
Exemple :
<VerifyIAM async="false" continueOnError="false" enabled="true" name="Verify-IAM-Permissions-1"> <DisplayName>VerifyIAM policy for flow 1</DisplayName> <CredentialSource>request.queryparam.token</CredentialSource> </VerifyIAM>
Informations de référence sur les erreurs
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés et les variables d'erreur définies par Apigee 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.verifyiam.CredentialSourceRefUnresolved |
400 |
Impossible de résoudre la variable de flux fournie dans la source d'identifiants. |
steps.verifyiam.CredentialValueNotProvided |
400 |
Identifiant introuvable. Si la référence à la source d'identifiants n'est pas fournie, nous examinons l'emplacement par défaut, comme l'en-tête d'autorisation. |
steps.verifyiam.Forbidden |
403 |
La requête n'a pas pu être transmise en raison d'autorisations insuffisantes, d'un champ d'application d'accès manquant ou de tout autre problème. |
steps.verifyiam.MiscellaneousAuthorizationConfigurationError |
500 |
Problème lié à la requête d'authentification à IAM. Le producteur de l'API doit corriger cette erreur en fonction des informations fournies dans la réponse d'erreur. |
steps.verifyiam.Unauthorized |
401 |
Problème lié aux identifiants, par exemple une valeur non valide ou expirée. |
steps.verifyiam.UnexpectedAuthorizationInfrastructureError |
500 |
Erreur interne. |
Erreurs de déploiement
Cette règle ne renvoie aucune erreur de déploiement spécifique.
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="Unauthorized" |
verifyiam.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | verifyiam.Verify-IAMToken.failed = true |