Résoudre les erreurs de déploiement de la règle VerifyJWT

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

InvalidNameForAdditionalClaim

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Invalid name for additional claim : policy(policy_name) claim(claim_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si le nom de la revendication utilisée dans l'élément <Claim> enfant de l'élément <AdditionalClaims> est l'un des noms enregistrés suivants :

"kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

Les revendications enregistrées sont spécifiées dans le document RFC7519.

Par exemple, cette erreur se produit si vous utilisez le nom de revendication iss sous l'élément <AdditionalClaims>.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de la revendication dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de la revendication est iss :

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Vérifiez que le nom de revendication utilisé sous l'élément <AdditionalClaims> dans le fichier XML de la règle VerifyJWT défaillante correspond au nom de revendication identifié dans le message d'erreur à l'étape 1. Par exemple, la règle suivante spécifie la revendication iss, ce qui correspond au contenu du message d'erreur :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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="iss"/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. Si le nom de revendication utilisé 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", "jti"

    alors il s'agit de la cause de l'erreur.

    Dans l'exemple de règle VerifyJWT présenté ci-dessus, le nom <Claim> est spécifié en tant que iss sous l'élément <AdditionalClaims>, ce qui entraîne l'erreur :

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    

Solution

N'utilisez aucun des noms enregistrés "kid", "iss", "sub", "aud", "iat", "exp", "nbf" ou "jti" dans l'élément enfant <Claim> de l'élément <AdditionalClaims>.

Pour résoudre le problème rencontré avec l'exemple de règle VerifyJWT, remplacez le nom de la revendication par status :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

InvalidTypeForAdditionalClaim

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Le type de la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> de la règle VerifyJWT n'est pas l'un des types suivants :

string (par défaut), number, boolean ou map.

Par exemple, l'utilisation du type de revendication integer sous l'élément <AdditionalClaims> génère l'erreur.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT, le nom de la revendication et le type à partir du message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256, le nom de la revendication est claim et le type est integer:.

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Vérifiez que le nom de revendication et le type utilisés sous l'élément <AdditionalClaims> dans le fichier XML de la règle VerifyJWT défaillante correspondent au nom de revendication et au type identifiés dans le message d'erreur à l'étape 1. Par exemple, la règle suivante spécifie la revendication claim et le type integer, ce qui correspond au contenu du message d'erreur :

    <VerifyJWT name="JWT-Verify-RS256">
      <DisplayName>JWT Verify RS256</DisplayName>
      <Algorithm>RS256</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='claim' ref='reqclaim' type='integer'/>
      </AdditionalClaims>
    </VerifyJWT>
    
  3. Si le type de revendication utilisé dans l'élément <Claim> enfant de l'élément <AdditionalClaims> n'est pas l'un des types suivants :

    string (par défaut), number, boolean ou map.

    alors il s'agit de la cause de l'erreur.

    Dans l'exemple de règle VerifyJWT présenté ci-dessus, le type <Claim> est spécifié en tant que integer sous l'élément <AdditionalClaims>. Comme integer n'est pas un type compatible, vous obtenez l'erreur suivante :

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

Solution

Assurez-vous que seuls les types de données compatibles string (par défaut), number, boolean ou map sont utilisés dans l'élément enfant <Claim> de l'élément <AdditionalClaims>.

Pour corriger l'exemple de règle VerifyJWT, définissez le type de revendication sur boolean :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

MissingNameForAdditionalClaim

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.

Exemple de message d'erreur

Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si le nom de la revendication n'est pas spécifié dans l'élément <Claim> enfant de l'élément <AdditionalClaims> ou <AdditionalHeaders>.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 :

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Examinez le fichier XML de la règle VerifyJWT défaillante, puis vérifiez si le nom de la revendication est manquant dans l'élément enfant <Claims> sous l'élément <AdditionalClaims> ou <AdditionalHeaders>. Par exemple, la règle VerifyJWT suivante n'indique pas le nom de la revendication sous l'élément <AdditionalClaims> :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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 ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Comme le nom <Claim> n'est pas spécifié sous l'élément <AdditionalClaims>, vous obtenez l'erreur :

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    

Solution

Assurez-vous que le nom de la revendication est toujours spécifié dans l'élément enfant <Claim> de l'élément <AdditionalClaims> ou <AdditionalHeaders>.

Pour corriger l'exemple de règle VerifyJWT, spécifiez le nom de la revendication comme indiqué ci-dessous :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

InvalidNameForAdditionalHeader

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Invalid name for additional header : policy(policy_name)header(header_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si le nom de la revendication utilisée dans l'élément <Claim> enfant de l'élément <AdditionalHeaders> correspond à l'un des en-têtes JWT standards suivants :

alg ou typ

Par exemple, l'utilisation du nom de revendication alg sous l'élément <AdditionalHeaders> entraîne l'erreur.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de l'en-tête dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de l'en-tête est alg :

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Vérifiez que le nom d'en-tête utilisé dans l'élément enfant <Claim> sous l'élément <AdditionalHeaders> dans le fichier XML de la règle VerifyJWT défaillante correspond au nom d'en-tête identifié dans le message d'erreur à l'étape 1. Par exemple, la règle suivante spécifie l'en-tête alg, ce qui correspond au contenu du message d'erreur :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. Si le nom d'en-tête utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est l'un des en-têtes JWT standards suivants :

    alg ou typ

    alors il s'agit de la cause de l'erreur.

    Dans l'exemple de règle VerifyJWT présenté ci-dessus, le nom <Claim> est spécifié en tant que alg sous l'élément <AdditionalClaims>, ce qui entraîne l'erreur :

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    

Solution

N'utilisez pas les en-têtes JWT standards alg ou typ dans l'élément enfant <Claim> de l'élément <AdditionalHeaders>.

Pour corriger l'exemple de règle VerifyJWT, utilisez le nom x5c dans l'élément enfant <Claim> de l'élément <AdditionalHeaders> :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidTypeForAdditionalHeader

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

L'erreur se produit si le type de revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalHeaders> de la règle VerifyJWT n'est pas de l'un des types suivants :

string (par défaut), number, boolean ou map.

Par exemple, l'utilisation du type de revendication integer sous l'élément <AdditionalHeaders> entraîne l'erreur.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT, le nom de la revendication et le type à partir du message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256, le nom de la revendication est claim et le type est integer :

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Vérifiez que le nom de revendication et le type utilisés sous l'élément <AdditionalClaims> dans le fichier XML de la règle VerifyJWT défaillante correspondent au nom de revendication et au type identifiés dans le message d'erreur à l'étape 1. Par exemple, la règle suivante spécifie la revendication claim et le type integer,, ce qui correspond au contenu du message d'erreur :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. Si le type de revendication utilisé dans l'élément <Claim> enfant de l'élément <AdditionalHeaders> n'est pas l'un des types suivants :

    string (par défaut), number, boolean ou map.

    alors il s'agit de la cause de l'erreur.

    Dans l'exemple de règle VerifyJWT présenté ci-dessus, le type <Claim> sous l'élément <AdditionalHeaders> est spécifié en tant que integer. Comme integer n'est pas un type compatible, vous obtenez l'erreur suivante :

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

Solution

Assurez-vous que seuls les types de données compatibles string, number, boolean ou map sont utilisés dans l'élément <Claim> enfant de l'élément <AdditionalHeaders>.

Pour corriger l'exemple de règle VerifyJWT, définissez le type de revendication sur boolean :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueOfArrayAttribute

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Invalid value for array attribute: policy(policy_name)claim(claim_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si la valeur de l'attribut de tableau dans l'élément enfant <Claim> de l'élément <AdditionalClaims> ou <AdditionalHeaders> n'est pas définie sur true ou false.

Par exemple, la définition de la valeur de l'attribut de tableau sur yes dans l'élément enfant <Claim> de l'élément <AdditionalClaims> ou <AdditionalHeaders> entraîne l'erreur.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de la revendication dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de la revendication est claim :

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Vérifiez que le nom de revendication utilisé dans l'élément enfant <Claim> sous l'élément <AdditionalHeaders> dans le fichier XML de la règle VerifyJWT défaillante correspond au nom de revendication identifié dans le message d'erreur à l'étape 1. Par exemple, la règle suivante spécifie le nom de déclaration claim, ce qui correspond au contenu du message d'erreur :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. Si la valeur de l'attribut array dans l'élément <Claim> enfant de l'élément <AdditionalClaims> n'est pas définie sur true ou false, il s'agit de la cause de l'erreur.

    Comme l'attribut array de l'élément <Claim> enfant de l'élément <AdditionalClaims> est défini sur yes dans l'exemple ci-dessus, vous obtenez l'erreur suivante :

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    

Solution

Assurez-vous que la valeur de l'attribut de tableau dans l'élément enfant <Claim> des éléments <AdditionalClaims> ou <AdditionalHeaders> est définie sur true ou false.

Pour corriger l'exemple de règle VerifyJWT présenté ci-dessus, remplacez la valeur de l'attribut de tableau par true :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueForElement

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision
Invalid Value for element : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si la valeur spécifiée dans l'élément <Algorithm> n'est pas l'une des valeurs suivantes :

HS256, HS384, HS512, RS256, RS384, RS512

Par exemple, si vous spécifiez la valeur d'algorithme RS128 dans l'élément <Algorithm>, cela entraîne cette erreur.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de l'élément dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de l'élément est Algorithm :

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Examinez le fichier XML de la règle VerifyJWT défaillante et vérifiez la valeur spécifiée pour l'élément <Algorithm>.

    Voici un exemple de règle VerifyJWT :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS128</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='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. Examinez la valeur spécifiée dans l'élément <Algorithm>. S'il ne s'agit pas de l'une des valeurs suivantes :

    HS256, HS384, HS512, RS256, RS384, RS512

    alors il s'agit de la cause de l'erreur.

    Dans l'exemple de règle VerifyJWT présenté ci-dessus, le nom <Algorithm> est spécifié en tant que HS128. Comme cet algorithme n'est pas compatible, vous obtenez l'erreur suivante :

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    

Solution

Assurez-vous que la valeur spécifiée dans l'élément <Algorithm> correspond à l'une des valeurs acceptées :

HS256, HS384, HS512, RS256, RS384, RS512

Pour corriger l'exemple de règle VerifyJWT présenté ci-dessus, qui utilise l'élément <SecretKey>, remplacez la valeur de <Algorithm> par HS25. Remarque : Lorsque l'élément <SecretKey> est utilisé, vous ne pouvez utiliser que des algorithmes de la famille HS.

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

MissingConfigurationElement

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision
Missing configuration element : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit lorsque l'élément <PublicKey> n'est pas utilisé avec des algorithmes de la famille RSA dans la règle VerifyJWT. De même, l'erreur peut se produire si l'élément <SecretKey> n'est pas utilisé avec des algorithmes de la famille HS dans la règle VerifyJWT.

Par exemple, l'utilisation de l'élément <PublicKey> avec des algorithmes de la famille RSA entraîne cette erreur.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de l'élément manquant dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de l'élément manquant est PublicKey :

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Examinez le fichier XML de la règle VerifyJWT défaillante et vérifiez si l'élément indiqué dans le message d'erreur est manquant. Si c'est le cas, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante indique que l'élément PublicKey est manquant et que la valeur Algorithm utilisée est RS256 :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    L'exemple de règle VerifyJWT utilise des algorithmes de la famille HS, mais l'élément PublicKey obligatoire est manquant, ce qui entraîne l'erreur :

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    

Solution

Assurez-vous que l'élément <PublicKey> obligatoire est utilisé avec des algorithmes de la famille RSA et que l'élément <SecretKey> obligatoire est utilisé avec des algorithmes de la famille HS.

Pour corriger l'exemple de règle VerifyJWT présenté ci-dessus, qui utilise l'algorithme RS256, ajoutez l'élément <PublicKey> à la règle VerifyJWT :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Algorithm>RS256</Algorithm>
    <PublicKey>
      <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidKeyConfiguration

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision 
Invalid Key configuration : policy(policy_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si l'élément enfant <Value> ou l'élément enfant <JWKS> obligatoire ne sont pas définis dans les éléments <PublicKey> ou <SecretKey> de la règle VerifyJWT.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 :

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Examinez le fichier XML de la règle VerifyJWT défaillante et vérifiez si l'élément enfant <Value> ou l'élément enfant <JWKS> ne sont pas définis dans les éléments <PublicKey> ou <SecretKey>. Si l'élément enfant n'est pas défini, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante indique que l'élément enfant <Value> ou <JWKS> n'est pas défini dans l'élément <PublicKey> :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Comme l'élément enfant <Value> ou <JWKS> n'est pas défini dans l'élément <PublicKey> de la règle VerifyJWT, vous obtenez l'erreur suivante :

    Invalid Key configuration : policy(JWT-Verify-RS256).
    

Solution

Assurez-vous que l'élément enfant <Value> ou <JWKS> est toujours défini dans l'élément <PublicKey> de la règle VerifyJWT.

Pour corriger l'exemple de règle VerifyJWT, définissez l'élément enfant <Value> ou <JWKS> sous l'élément <PublicKey>, comme indiqué ci-dessous :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</PublicJWT>

EmptyElementForKeyConfiguration

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Empty Element for Key Configuration : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si l'attribut "ref" de l'élément enfant <Value> ou <JWKS> de l'élément <PublicKey> n'est pas spécifié ou est vide.

Par exemple, si l'élément enfant <Value> de l'élément <PublicKey> est vide, l'erreur se produit.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de l'élément qui est vide dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de l'élément est PublicKey/Value :

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Examinez le fichier XML de la règle VerifyJWT et vérifiez si l'élément identifié à l'étape 1 est vide. Si c'est le cas, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante indique que l'élément enfant <Value> de l'élément <PublicKey> est vide :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
            <Value/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Comme l'élément enfant <Value> de l'élément <PublicKey> de la règle VerifyJWT est vide, vous obtenez l'erreur suivante :

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
    

Solution

Assurez-vous que l'attribut "ref" de l'élément enfant <Value> ou <JWKS> de l'élément <PublicKey> est toujours spécifié.

Pour corriger l'exemple de règle VerifyJWT, utilisez la variable de flux public.publickey dans l'élément enfant <Value> de l'élément <PublicKey> :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidConfigurationForVerify

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Invalid configuration element for verify : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si l'élément <Id> est défini dans l'élément <SecretKey> d'une règle VerifyJWT.

Par exemple, si l'élément <Id> est défini dans l'élément <SecretKey>, cette erreur se produit.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de l'élément non valide dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de l'élément est SecretKey/Id :

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Examinez le fichier XML de la règle VerifyJWT défaillante et vérifiez si l'élément non valide identifié à l'étape 1 est défini. Si c'est le cas, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante indique que l'élément enfant <Id> de l'élément <SecretKey> est défini :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id/>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Comme l'élément <Id> est défini dans l'élément <SecretKey> de la règle VerifyJWT, vous obtenez l'erreur suivante :

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    

Solution

Assurez-vous que l'élément <Id> n'est jamais défini dans l'élément <SecretKey> d'une règle VerifyJWT.

Pour corriger l'exemple de règle VerifyJWT, supprimez l'élément enfant <Id> de l'élément <SecretKey> :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref='private.secretkey'/>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidEmptyElement

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision 
Invalid empty element : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si l'élément <Source> de la règle VerifyJWT est vide. S'il est présent, il doit être défini avec un nom de variable de flux Edge.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT et le nom de l'élément vide dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et le nom de l'élément est PublicKey/Value :

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Examinez le fichier XML de la règle VerifyJWT et vérifiez si l'élément identifié à l'étape 1 est vide. Si c'est le cas, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante indique que l'élément <Source> est vide :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Source></Source>
        <PublicKey>
            <Value ref="public.publickey"/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Comme l'élément <Source> de la règle VerifyJWT est vide, vous obtenez l'erreur suivante :

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    

Solution

Si l'élément <Source> d'une règle VerifyJWT est présent, assurez-vous qu'il spécifie une variable de flux.

Pour corriger l'exemple de règle VerifyJWT, utilisez une variable de flux valide dans l'élément <Source> :

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>jwt-variable</Source>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidPublicKeyValue

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision revision_number
Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si le format de la valeur utilisée dans l'élément enfant <JWKS> de l'élément <PublicKey> n'est pas valide comme indiqué dans le document RFC 7517.

Par exemple, l'utilisation de abc en tant que valeur de l'élément enfant <JWKS> sous l'élément <PublicKey> génère cette erreur.

Diagnostic

  1. Identifiez le nom de la règle JWT et le nom de l'élément contenant une valeur non valide dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-RS256 et l'élément est PublicKey/JWKS :

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Examinez le fichier XML de la règle VerifyJWT et vérifiez que l'élément identifié à l'étape 1 contient une valeur dont le format est valide, conformément au document RFC 7517. Si le format de la valeur de l'élément n'est pas valide, il s'agit de la cause de l'erreur.

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
            <JWKS>abc<JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>
    

    Comme le format de la valeur de l'élément enfant <JWKS> de l'élément <PublicKey> n'est pas valide conformément au document RFC 7517, vous obtenez l'erreur suivante :

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    

Solution

Assurez-vous que la valeur spécifiée dans l'élément enfant <JWKS> de l'élément <PublicKey> est une chaîne ou une variable de flux valide dans un format JWKS valide (RFC 7517).

Pour corriger l'exemple de règle VerifyJWT, modifiez la valeur de <JWKS> comme indiqué ci-dessous :

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
        <JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>

InvalidConfigurationForActionAndAlgorithm

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec ce message d'erreur:

Error Saving Revision <var>revision_number</var>
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).

Exemple de message d'erreur

Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une boîte de dialogue avec une erreur:

Cause

Cette erreur se produit si l'élément <PublicKey> est utilisé avec des algorithmes de la famille HS et que l'élément <SecretKey> est utilisé avec des algorithmes de la famille RSA. L'erreur se produit également si l'une ou l'autre de ces conditions est vraie.

Par exemple, l'utilisation de l'élément <PublicKey> avec les algorithmes de la famille HS entraîne cette erreur.

Diagnostic

  1. Identifiez le nom de la règle VerifyJWT, le nom de l'élément et le nom de la famille d'algorithmes dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle VerifyJWT est JWT-Verify-HS256, le nom de l'élément est PublicKey et la famille d'algorithmes est RSA :

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. Vérifiez que l'élément et la famille d'algorithmes utilisés dans la règle VerifyJWT défaillante correspondent à l'élément et à la famille d'algorithmes identifiés dans le message d'erreur à l'étape 1. Par exemple, la règle suivante spécifie l'élément PublicKey et la famille d'algorithmes HMAC, ce qui correspond au contenu du message d'erreur :

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <PublicKey>
            <Value ref="var-value"/>
        </PublicKey>
        <SecretKey>
            <Value ref="private.secretkey"/>
        </SecretKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
        </VerifyJWT>
    
  3. Si la valeur de l'élément <Algorithm> est HS256 alors que vous avez utilisé <PublicKey>, il s'agit de la cause de l'erreur.

    Dans l'exemple de règle VerifyJWT présenté ci-dessus, l'élément <PublicKey> est utilisé même si <Algorithm> est défini sur un algorithme de la famille HS256, ce qui entraîne l'erreur :

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    

Solution

Assurez-vous que l'élément <PublicKey> n'est utilisé qu'avec les algorithmes de la famille RSA et que l'élément <SecretKey> n'est utilisé qu'avec les algorithmes de la famille HS.

Pour corriger l'exemple de règle VerifyJWT, utilisez l'élément <SecretKey> de la règle VerifyJWT qui fait appel à l'algorithme HS256 :

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
    </VerifyJWT>