Règle VerifyIAM

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 name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion, en utilisant un nom différent, en langage naturel.

N/A Obligatoire
continueOnError

Définissez sur false pour afficher une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles.

Définissez sur true pour que l'exécution du flux se poursuive même après l'échec d'une règle. Voir également :

false Facultatif
enabled

Définissez sur true pour appliquer la règle.

Définissez sur false pour désactiver la règle. La stratégie ne sera pas appliquée, même si elle reste associée à un flux.

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 name de la règle est utilisée.

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