<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Quoi
Génère un jeton JWT signé avec un ensemble de revendications configurable. Le jeton JWT peut ensuite être renvoyé aux clients, transmis à des cibles de backend ou être utilisé d'une autre manière. Consultez la section Présentation des règles JWS et JWT pour une présentation détaillée.
Vidéo
Regardez une courte vidéo pour apprendre à générer un jeton JWT signé.
Exemples
- Générer un jeton JWT signé avec l'algorithme HS256
- Générer un jeton JWT signé avec l'algorithme RS256
Générer un jeton JWT signé avec l'algorithme HS256
Cet exemple de stratégie génère un nouveau jeton JWT et le signe à l'aide de l'algorithme HS256. L'algorithme HS256 repose sur une clé secrète partagée à la fois pour signer et valider la signature.
Lorsque cette action de règle est déclenchée, Edge encode l'en-tête JWT et la charge utile, puis l'encode numériquement signe le jeton JWT. Regardez la vidéo ci-dessus pour voir un exemple complet, y compris pour découvrir comment envoyer une demande à la stratégie.
La configuration de la stratégie créera un jeton JWT avec un ensemble de revendications standards telles que définies par la spécification JWT, y compris un délai d'expiration d'une heure, ainsi qu'une revendication supplémentaire. Vous pouvez inclure autant de revendications que vous le souhaitez. Consultez la documentation de référence sur les éléments pour en savoir plus sur les exigences et les options de chaque élément dans cet exemple de règle.
<GenerateJWT name="JWT-Generate-HS256"> <DisplayName>JWT Generate HS256</DisplayName> <Algorithm>HS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name="show">And now for something completely different.</Claim> </AdditionalClaims> <OutputVariable>jwt-variable</OutputVariable> </GenerateJWT>
Le JWT obtenu contient cet en-tête…
{ "typ" : "JWT", "alg" : "HS256", "kid" : "1918290" }
… et disposera d'une charge utile avec du contenu qui ressemble à ceci :
{ "sub" : "monty-pythons-flying-circus", "iss" : "urn://apigee-edge-JWT-policy-test", "aud" : "show", "iat" : 1506553019, "exp" : 1506556619, "jti" : "BD1FF263-3D25-4593-A685-5EC1326E1F37", "show": "And now for something completely different." }
La valeur des revendications iat, exp et jti varie.
Générer un jeton JWT signé avec l'algorithme RS256
Cet exemple de stratégie génère un nouveau jeton JWT et le signe à l'aide de l'algorithme RS256. La génération d'une signature RS256 repose sur une clé privée RSA, qui doit être fournie au format PEM. Regardez la vidéo ci-dessus pour voir un exemple complet, y compris pour découvrir comment envoyer une demande à la stratégie.
Lorsque cette action de règle est déclenchée, Edge encode et signe numériquement le JWT, y compris les revendications. Pour en savoir plus sur les composants d'un jeton JWT, ainsi que sur la façon dont ceux-ci sont chiffrés et signés, consultez le document RFC7519.
<GenerateJWT name="JWT-Generate-RS256"> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey> <Subject>apigee-seattle-hatrack-montage</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>urn://c60511c0-12a2-473c-80fd-42528eb65a6a</Audience> <ExpiresIn>60m</ExpiresIn> <Id/> <AdditionalClaims> <Claim name="show">And now for something completely different.</Claim> </AdditionalClaims> <OutputVariable>jwt-variable</OutputVariable> </GenerateJWT>
Définir les éléments clé
Les éléments que vous utilisez pour spécifier la clé utilisée pour générer le jeton JWT dépendent de l'algorithme choisi, comme indiqué dans le tableau suivant :
Algorithme | Éléments clés | |
---|---|---|
HS{256/384/512}* | <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> |
|
RS/PS/ES{256/384/512}* | <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey> Les éléments |
|
* Pour en savoir plus sur les conditions requises par les clés, consultez la section À propos des algorithmes de chiffrement de signature. |
Référence d'élément pour générer un JWT
La documentation de référence des stratégies décrit les éléments et les attributs de la stratégie de génération de JWT.
Remarque : La configuration diffère légèrement selon l'algorithme de chiffrement que vous utilisez. Consultez les échantillons pour obtenir des exemples de configuration pour des cas d'utilisation spécifiques.
Attributs qui s'appliquent à l'élément de premier niveau
<GenerateJWT name="JWT" continueOnError="false" enabled="true" async="false">
Les attributs suivants sont communs à tous les éléments parents de la stratégie.
Attribut | Description | Par défaut | Présence |
---|---|---|---|
nom |
Nom interne de la stratégie. Les caractères que vous pouvez utiliser dans le nom se limitent à : A-Z0-9._\-$ % . Cependant, l'interface utilisateur de gestion Edge applique des
telles que la suppression automatique de caractères qui ne sont pas alphanumériques.
Vous pouvez également utiliser l'élément |
ND | Requis |
continueOnError |
Définissez sur false pour afficher une erreur en cas d'échec d'une stratégie. Il s'agit du comportement attendu pour la plupart des règles.
Définissez sur |
faux | Facultatif |
activé | Définissez la valeur sur true pour appliquer la stratégie.Définissez la valeur sur |
vrai | Facultatif |
async | Cet attribut est obsolète. | faux | Obsolète |
<DisplayName>
<DisplayName>Policy Display Name</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.
Par défaut | Si vous omettez cet élément, la valeur de l'attribut de nom de la stratégie est utilisée. |
Présence | Facultatif |
Type | Chaîne |
<Algorithm>
<Algorithm>algorithm-here</Algorithm>
Spécifie l'algorithme de chiffrement permettant de signer le jeton.
Par défaut | N/A |
Présence | Requis |
Type | Chaîne |
Valeurs valides | HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512 |
<Audience>
<Audience>audience-here</Audience> or: <Audience ref='variable_containing_audience'/>
La règle génère un jeton JWT contenant une revendication aud définie sur la valeur spécifiée. Cette revendication identifie les destinataires du jeton JWT. Il s'agit de l'une des revendications enregistrées et mentionnées dans le document RFC7519.
Par défaut | N/A |
Présence | Facultatif |
Type | Tableau (liste de valeurs séparées par une virgule) |
Valeurs valides | Tout ce qui identifie l'audience. |
<AdditionalClaims/Claim>
<AdditionalClaims> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> </AdditionalClaims> or: <AdditionalClaims ref='claim_payload'/>
Permet de spécifier une ou plusieurs paires nom/valeur de revendication supplémentaires dans la charge utile du JWT. Vous pouvez spécifier explicitement la revendication sous forme de chaîne, d'un nombre, d'une valeur booléenne, d'un mappage ou d'un tableau. Un mappage est simplement un ensemble de paires nom/valeur.
Par défaut | N/A |
Présence | Facultatif |
Valeurs valides | Toute valeur que vous souhaitez utiliser dans une revendication supplémentaire. Vous pouvez spécifier explicitement la revendication sous forme de chaîne, d'un nombre, d'une valeur booléenne, d'un mappage ou d'un tableau. |
L'élément <Claim>
utilise les attributs suivants :
- name : (obligatoire) nom de la revendication.
- ref (facultatif) : nom d'une variable de flux. Si elle est présente, la règle utilise la valeur de cette variable comme revendication. Si un attribut ref et une valeur de revendication explicite sont spécifiés, la valeur explicite est la valeur par défaut, et est utilisée si la variable de flux référencée n'est pas résolue.
- type : (facultatif) au choix : chaîne (par défaut), nombre, valeur booléenne ou mappage
- array : (facultatif) défini sur true pour indiquer que la valeur est un tableau de types. Valeur par défaut : "false".
Lorsque vous incluez l'élément <Claim>
, les noms des revendications sont définis de manière statique lorsque vous configurez la règle. Vous pouvez également transmettre un objet JSON afin de spécifier les noms des revendications.
L'objet JSON étant transmis en tant que variable, les noms de revendication dans le jeton JWT généré sont déterminés au moment de l'exécution.
Exemple :
<AdditionalClaims ref='json_claims'/>
Où la variable json_claims
contient un objet JSON au format :
{ "sub" : "person@example.com", "iss" : "urn://secure-issuer@example.com", "non-registered-claim" : { "This-is-a-thing" : 817, "https://example.com/foobar" : { "p": 42, "q": false } } }
Le jeton JWT généré inclut toutes les revendications de l'objet JSON.
<AdditionalHeaders/Claim>
<AdditionalHeaders> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> <Claim name='claim4' ref='variable-name' type='string' array='true'/> </AdditionalHeaders>
Place les paires nom/valeur de revendication supplémentaires dans l'en-tête du jeton JWT.
Par défaut | N/A |
Présence | Facultatif |
Valeurs valides | Toute valeur que vous souhaitez utiliser dans une revendication supplémentaire. Vous pouvez spécifier explicitement la revendication sous forme de chaîne, d'un nombre, d'une valeur booléenne, d'un mappage ou d'un tableau. |
L'élément <Claim>
utilise les attributs suivants :
- name : (obligatoire) nom de la revendication.
- ref (facultatif) : nom d'une variable de flux. Si elle est présente, la règle utilise la valeur de cette variable comme revendication. Si un attribut ref et une valeur de revendication explicite sont spécifiés, la valeur explicite est la valeur par défaut, et est utilisée si la variable de flux référencée n'est pas résolue.
- type : (facultatif) au choix : chaîne (par défaut), nombre, valeur booléenne ou mappage
- array : (facultatif) défini sur true pour indiquer que la valeur est un tableau de types. Valeur par défaut : "false".
<CriticalHeaders>
<CriticalHeaders>a,b,c</CriticalHeaders> or: <CriticalHeaders ref=’variable_containing_headers’/>
Ajoute l'en-tête critique crit à l'en-tête JWT. L'en-tête crit est un tableau de noms d'en-têtes qui doivent être connus et reconnus par le destinataire du jeton JWT. Exemple :
{ “typ: “...”, “alg” : “...”, “crit” : [ “a”, “b”, “c” ], }
Au moment de l'exécution, la stratégie VerifyJWT examine l'en-tête crit.
Pour chaque élément répertorié dans l'en-tête crit, celle-ci vérifie que l'élément <KnownHeaders>
de la stratégie VerifyJWT répertorie également cet en-tête. Tout en-tête identifié par la stratégie VerifyJWT dans crit et qui ne figure pas encore dans le fichier <KnownHeaders>
entraîne l'échec de la stratégie VerifyJWT.
Par défaut | N/A |
Présence | Facultatif |
Type | Tableau de chaînes séparées par une virgule |
Valeurs valides | Tableau ou nom d'une variable contenant le tableau. |
<CustomClaims>
Remarque : Actuellement, un élément CustomClaims est inséré lorsque vous ajoutez une nouvelle règle GenerateJWT via l'interface utilisateur. Cet élément n'est pas fonctionnel et est ignoré. L'élément correct à utiliser à la place est <AdditionalClaims>. L'interface utilisateur sera mise à jour pour insérer les éléments corrects ultérieurement.
<ExpiresIn>
<ExpiresIn>time-value-here</ExpiresIn>
Spécifie la durée de vie du JWT en millisecondes, secondes, minutes, heures ou jours.
Par défaut | N/A |
Présence | Facultatif |
Type | Entier |
Valeurs valides |
Valeur ou référence à une variable de flux contenant la valeur. Les unités de temps peuvent être spécifiés comme suit :
Par exemple, une valeur |
<Id>
<Id>explicit-jti-value-here</Id> -or- <Id ref='variable-name-here'/> -or- <Id/>
Génère un jeton JWT avec la revendication jti spécifique. Lorsque la valeur textuelle et l'attribut "ref" sont tous deux vides, la règle génère un jti contenant un UUID aléatoire. La revendication de l'ID JWT (jti) est un identifiant unique du jeton JWT. Pour en savoir plus sur jti, consultez le document RFC7519.
Par défaut | N/A |
Présence | Facultatif |
Type | Chaîne ou référence. |
Valeurs valides | Chaîne ou nom d'une variable de flux contenant l'ID. |
<IgnoreUnresolvedVariables>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
Définissez la valeur sur "false" si vous souhaitez que la règle génère une erreur lorsqu'une variable référencée dans la règle ne peut être résolue. Définissez la valeur sur "true" pour traiter toute variable irrésolue comme une chaîne vide (null).
Par défaut | Faux |
Présence | Facultatif |
Type | Booléen |
Valeurs valides | true ou false |
<Issuer>
<Issuer ref='variable-name-here'/> <Issuer>issuer-string-here</Issuer>
La règle génère un jeton JWT contenant une revendication portant le nom iss, avec une valeur définie sur la valeur spécifiée. C'est une revendication qui identifie l'émetteur du jeton JWT. Il s'agit d'un ensemble de revendications enregistrées et mentionnées dans le document RFC7519.
Par défaut | N/A |
Présence | Facultatif |
Type | Chaîne ou référence |
Valeurs valides | Tout |
<NotBefore>
<!-- Specify an absolute time. --> <NotBefore>2017-08-14T11:00:21-07:00</NotBefore> -or- <!-- Specify a time relative to when the token is generated. --> <NotBefore>6h</NotBefore>
Indique l'heure à laquelle le jeton devient valide. Le jeton n'est pas valide avant l'heure spécifiée. Vous pouvez spécifier une valeur temporelle absolue ou une heure en fonction du moment où le jeton est généré.
Par défaut | N/A |
Présence | Facultatif |
Type | Chaîne |
Valeurs valides | Voir ci-dessous. |
Valeurs de temps valides pour l'élément NotBefore pour les valeurs de délai absolu
Nom | Format | Exemple |
sortable | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
2017-08-14T11:00:21.269-0700 |
RFC 1123 | EEE, dd MMM yyyy HH:mm:ss zzz |
Lun. 14 août 2017 à 11h00 et 21 secondes (PDT) |
RFC 850 | EEEE, dd-MMM-yy HH:mm:ss zzz |
Lundi 14 août 2017 à 11h00 et 21 secondes (PDT) |
ANCI-C | EEE MMM d HH:mm:ss yyyy |
Lun 14 août 2017 à 11h00 et 21 secondes (PDT) |
Pour les valeurs de délai relatif, spécifiez un entier et une période, par exemple :
- 10 s
- 60 m
- 12 h
<OutputVariable>
<OutputVariable>jwt-variable</OutputVariable>
Indique où placer le jeton JWT généré par cette stratégie. Par défaut, celui-ci est placé dans la variable de flux jwt.POLICYNAME.generated_jwt
.
Par défaut | jwt.POLICYNAME.generated_jwt |
Présence | Facultatif |
Type | Chaîne (nom de variable de flux) |
<PrivateKey/Id>
<PrivateKey> <Id ref="flow-variable-name-here"/> </PrivateKey> or <PrivateKey> <Id>your-id-value-here</Id> </PrivateKey>
Spécifie l'ID de clé (enfant) à inclure dans l'en-tête JWT. À n'utiliser que lorsque l'algorithme est RS256/RS384/RS512, PS256/PS384/PS512 ou ES256/ES384/ES512.
Par défaut | N/A |
Présence | Facultatif |
Type | Chaîne |
Valeurs valides | Une variable de flux ou une chaîne |
<PrivateKey/Password>
<PrivateKey> <Password ref="private.privatekey-password"/> </PrivateKey>
Indiquez le mot de passe que la règle doit utiliser pour déchiffrer la clé privée, si nécessaire. Utilisez l'attribut ref pour transmettre la clé dans une variable de flux. À n'utiliser que lorsque l'algorithme est RS256/RS384/RS512, PS256/PS384/PS512 ou ES256/ES384/ES512.
Par défaut | N/A |
Présence | Facultatif |
Type | Chaîne |
Valeurs valides |
Référence de variable de flux
Remarque : Vous devez spécifier une variable de flux. Edge rejettera comme non valide un
Configuration de stratégie dans laquelle le mot de passe est spécifié en texte brut. La variable de flux doit comporter le préfixe "private". Par exemple, |
<PrivateKey/Value>
<PrivateKey> <Value ref="private.variable-name-here"/> </PrivateKey>
Spécifie une clé privée encodée au format PEM utilisée pour signer le jeton JWT. Utilisez l'attribut "ref" pour transmettre la clé dans une variable de flux. À n'utiliser que lorsque l'algorithme est RS256/RS384/RS512, PS256/PS384/PS512 ou ES256/ES384/ES512.
Par défaut | N/A |
Présence | Obligatoire pour générer un jeton JWT à l'aide de l'algorithme RS256. |
Type | Chaîne |
Valeurs valides |
Variable de flux contenant une chaîne représentant une valeur de clé privée RSA encodée au format PEM.
Remarque : La variable de flux doit comporter le préfixe "private". Par exemple, |
<SecretKey/Id>
<SecretKey> <Id ref="flow-variable-name-here"/> </SecretKey> or <SecretKey> <Id>your-id-value-here</Id> </SecretKey>
Spécifie l'ID de clé (enfant) à inclure dans l'en-tête JWT d'un jeton JWT signé avec un algorithme HMAC. Utilisez ce paramètre uniquement lorsque l'algorithme est HS256/HS384/HS512.
Par défaut | N/A |
Présence | Facultatif |
Type | Chaîne |
Valeurs valides | Une variable de flux ou une chaîne |
<SecretKey/Value>
<SecretKey> <Value ref="private.your-variable-name"/> </SecretKey>
Fournit la clé secrète utilisée pour vérifier ou signer les jetons avec un algorithme HMAC. À n'utiliser que lorsque l'algorithme est HS256/HS384/HS512. Utilisez l'attribut ref pour transmettre la clé dans une variable de flux.
Edge applique une force de clé minimale pour les algorithmes HS256/HS384/HS512. La longueur de clé minimale pour HS256 est de 32 octets, pour HS384 de 48 octets, et pour HS512 de 64 octets. L'utilisation d'une clé d'un niveau de sécurité inférieur entraîne une erreur d'exécution.
Par défaut | N/A |
Présence | Obligatoire pour les algorithmes HMAC. |
Type | Chaîne |
Valeurs valides |
Variable de flux faisant référence à une chaîne
Remarque : Si une variable de flux, elle doit comporter le préfixe "private". Par exemple, |
<Subject>
<Subject>subject-string-here</Subject>
<Subject ref="flow_variable" />
Exemple :
<Subject ref="apigee.developer.email"/>
La stratégie génère un jeton JWT contenant une revendication sub, définie sur la valeur spécifiée. Cette revendication identifie le sujet du jeton JWT ou donne une instruction le concernant. Il s'agit de l'ensemble standard de revendications mentionné dans le document RFC7519.
Par défaut | N/A |
Présence | Facultatif |
Type | Chaîne |
Valeurs valides | Toute valeur unique identifiant un sujet ou une variable de flux faisant référence à une valeur. |
Variables de flux
La stratégie de génération d'un JWT ne définit pas de variables de flux.
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 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.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Se produit lorsque la règle de validation comporte plusieurs algorithmes. |
steps.jwt.AlgorithmMismatch |
401 | L'algorithme spécifié dans la règle "Générer" ne correspond pas à celui attendu dans la règle "Vérifier". Les algorithmes spécifiés doivent correspondre. |
steps.jwt.FailedToDecode |
401 | La règle n'a pas pu décoder le jeton JWT. Le jeton JWT est peut-être corrompu. |
steps.jwt.GenerationFailed |
401 | La règle n'a pas pu générer le jeton JWT. |
steps.jwt.InsufficientKeyLength |
401 | Pour une clé inférieure à 32 octets pour l'algorithme HS256, inférieure à 48 octets pour l'algorithme HS386 et inférieure à 64 octets pour l'algorithme HS512. |
steps.jwt.InvalidClaim |
401 | en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant. |
steps.jwt.InvalidCurve |
401 | La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique. |
steps.jwt.InvalidJsonFormat |
401 | JSON non valide trouvé dans l'en-tête ou la charge utile. |
steps.jwt.InvalidToken |
401 | Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWT. |
steps.jwt.JwtAudienceMismatch |
401 | La revendication d'audience a échoué lors de la vérification du jeton. |
steps.jwt.JwtIssuerMismatch |
401 | La revendication d'émetteur a échoué lors de la vérification du jeton. |
steps.jwt.JwtSubjectMismatch |
401 | La revendication de sujet a échoué lors de la vérification du jeton. |
steps.jwt.KeyIdMissing |
401 | La stratégie de validation utilise un JWKS comme source pour les clés publiques, mais le jeton JWT signé n'inclut pas de propriété kid dans l'en-tête. |
steps.jwt.KeyParsingFailed |
401 | Impossible d'analyser la clé publique à partir des informations de clé fournies. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Se produit lorsque le jeton JWT ne contient pas d'en-tête d'algorithme. |
steps.jwt.NoMatchingPublicKey |
401 | La règle de vérification utilise un JWKS en tant que source pour les clés publiques, mais le kid du jeton JWT signé n'est pas répertorié dans le JWKS. |
steps.jwt.SigningFailed |
401 | Dans GenerateJWT, pour une clé inférieure à la taille minimale des algorithmes HS384 ou HS512 |
steps.jwt.TokenExpired |
401 | La règle tente de vérifier un jeton expiré. |
steps.jwt.TokenNotYetValid |
401 | Le jeton n'est pas encore valide. |
steps.jwt.UnhandledCriticalHeader |
401 | Un en-tête trouvé par la règle de vérification JWT dans l'en-tête crit n'est pas répertorié dans KnownHeaders . |
steps.jwt.UnknownException |
401 | Une exception inconnue s'est produite. |
steps.jwt.WrongKeyType |
401 | Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
InvalidNameForAdditionalClaim |
Le déploiement échouera si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est l'un des noms enregistrés suivants : kid , iss , sub , aud , iat , exp , nbf ou jti .
|
build |
InvalidTypeForAdditionalClaim |
Si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string , number , boolean ou map , le déploiement échouera.
|
build |
MissingNameForAdditionalClaim |
Si le nom de la revendication n'est pas spécifié dans l'élément enfant <Claim> de l'élément <AdditionalClaims> , le déploiement échouera.
|
build |
InvalidNameForAdditionalHeader |
Cette erreur se produit lorsque le nom de la revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est alg ou typ .
|
build |
InvalidTypeForAdditionalHeader |
Si le type de revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string , number , boolean ou map , le déploiement échouera.
|
build |
InvalidValueOfArrayAttribute |
Cette erreur se produit lorsque la valeur de l'attribut de tableau dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas définie sur true ou false .
|
build |
InvalidConfigurationForActionAndAlgorithm |
Si l'élément <PrivateKey> est utilisé avec des algorithmes de la famille HS ou que l'élément <SecretKey> est utilisé avec des algorithmes de la famille RSA, le déploiement échouera.
|
build |
InvalidValueForElement |
Si la valeur spécifiée dans l'élément <Algorithm> n'est pas acceptée, le déploiement échouera.
|
build |
MissingConfigurationElement |
Cette erreur se produit si l'élément <PrivateKey> n'est pas utilisé avec les algorithmes de la famille RSA ou si l'élément <SecretKey> n'est pas utilisé avec les algorithmes de la famille HS.
|
build |
InvalidKeyConfiguration |
Si l'élément enfant <Value> n'est pas défini dans les éléments <PrivateKey> ou <SecretKey> , le déploiement échouera.
|
build |
EmptyElementForKeyConfiguration |
Si l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> est vide ou non spécifié, le déploiement échouera.
|
build |
InvalidVariableNameForSecret |
Cette erreur se produit si le nom de la variable de flux spécifié dans l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> ne contient pas le préfixe privé (private.) .
|
build |
InvalidSecretInConfig |
Cette erreur se produit si l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> ne contient pas le préfixe privé (private.) .
|
build |
InvalidTimeFormat |
Si la valeur spécifiée dans l'élément <NotBefore> n'utilise pas un format compatible, le déploiement échouera.
|
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
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 "TokenExpired" |
JWT.failed |
Toutes les règles JWT définissent la même variable en cas d'échec. | JWT.failed = true |
Exemple de réponse d'erreur
Pour le traitement des erreurs, la meilleur pratique consiste à intercepter la partie errorcode
de la réponse. Ne vous fiez pas au texte dans faultstring
, car il pourrait changer.
Exemple de règle de défaillance
<FaultRules> <FaultRule name="JWT Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWT.failed=true</Condition> </FaultRule> </FaultRules>