Résoudre les problèmes liés au déploiement d'une règle Generate JWT

<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 2
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-Generate-HS256) 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, l'utilisation du nom de revendication iss sous l'élément <AdditionalClaims> entraîne cette erreur.

Diagnostic

  1. Identifiez le nom de la règle Generate JWT 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 Generate JWT est JWT-Generate-HS256 et le nom de la revendication est iss :

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

    <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="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Si le nom de revendication utilisé 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"

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

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

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    

Solution

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

Pour corriger l'exemple de règle Generate JWT présenté ci-dessus, remplacez le nom de la revendication par status :

<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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

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 2
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-Generate-HS256) 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

Cette erreur se produit si le type de revendication utilisé dans l'élément <Claim> enfant de l'élément <AdditionalClaims> de la règle Generate JWT 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 Generate JWT, le nom de la revendication et le type de revendication dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256, le nom de la revendication est claim et le type de revendication est integer :

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Vérifiez que le nom de la revendication et le type utilisés sous l'élément <AdditionalClaims> dans le fichier XML de la règle Generate JWT correspondent au nom et au type de revendication identifiés dans le message d'erreur de 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 :

    <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='claim' ref='reqclaim' type='integer'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  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 Generate JWT présenté ci-dessus, le type <Claim> sous l'élément <AdditionalClaims> est défini comme integer. Comme integer n'est pas un type compatible, vous obtenez l'erreur suivante :

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

Solution

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

Pour corriger l'exemple de règle Generate JWT présenté ci-dessus, remplacez le type de revendication par boolean.

<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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

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 2
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-Generate-HS256.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 Generate JWT dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256 :

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Examinez le fichier XML de la règle Generate JWT 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 Generate JWT suivante ne spécifie pas le nom de la revendication sous l'élément <AdditionalClaims> :

    <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 ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    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-Generate-HS256.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 <Claim> enfant de l'élément <AdditionalClaims> ou <AdditionalHeaders>.

Pour corriger l'exemple de règle Generate JWT présenté ci-dessus, spécifiez le nom de la revendication, comme indiqué ci-dessous :

<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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

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 2
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-Generate-HS256) 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 Generate JWT et le nom de l'en-tête du message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256 et le nom de l'en-tête est alg :

    Invalid name for additional header: policy(JWT-Generate-HS256) 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 Generate JWT défaillante correspond au nom d'en-tête identifié dans le message d'erreur de l'étape 1. Par exemple, la règle suivante spécifie l'en-tête alg, qui correspond au contenu du message d'erreur :

    <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/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. Si le nom d'en-tête utilisé dans l'élément <Claim> enfant 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 Generate JWT présenté ci-dessus, le nom <Claim> est spécifié sous la forme alg sous l'élément <AdditionalClaims>, ce qui entraîne l'erreur :

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    

Solution

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

Pour corriger l'exemple de règle Generate JWT ci-dessus, utilisez le nom x5c dans l'élément <Claim> enfant de l'élément <AdditionalHeaders> :

<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/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</GenerateJWT>

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 2
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-Generate-HS256) 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 <Claim> enfant de l'élément <AdditionalHeaders> de la règle Generate JWT ne correspond 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 <AdditionalHeaders> entraîne l'erreur.

Diagnostic

  1. Identifiez le nom de la règle Generate JWT, le nom de la revendication et le type de revendication dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256, le nom de la revendication est claim, et le type de revendication est integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Vérifiez que le nom de la revendication et le type utilisés sous l'élément <AdditionalClaims> dans le fichier XML de la règle Generate JWT correspondent au nom et au type de revendication identifiés dans le message d'erreur de 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 :

    <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/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  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 Generate JWT présenté ci-dessus, le type <Claim> sous l'élément <AdditionalHeaders> est défini comme integer. Comme integer n'est pas un type compatible, vous obtenez l'erreur suivante :

    Invalid type for additional header : policy(JWT-Generate-HS256) 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 Generate JWT présenté ci-dessus, remplacez le type de revendication par boolean :

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</GenerateJWT>

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 2
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-Generate-HS256) 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 <Claim> enfant de l'élément <AdditionalClaims> ou <AdditionalHeaders> n'est pas définie sur true ou false.

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

Diagnostic

  1. Identifiez le nom de la règle Generate JWT 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 Generate JWT est JWT-Generate-HS256 et le nom de la revendication est claim:

    Invalid value for array attribute: policy(JWT-Generate-HS256) 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 Generate JWT défaillante correspond au nom de revendication identifié dans le message d'erreur de 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 :

    <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='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  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-Generate-HS256) claim(claim).
    

Solution

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

Pour corriger l'exemple de règle Generate JWT ci-dessus, remplacez la valeur de l'attribut de tableau par true :

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

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 2
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 2
Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).

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 <PrivateKey> 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 <PrivateKey> avec les algorithmes de la famille HS entraîne cette erreur.

Diagnostic

  1. Identifiez le nom de la règle Generate JWT, le nom de l'élément et le nom de famille de l'algorithme à partir du message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256, le nom de l'élément est PrivateKey et la famille d'algorithmes est HMAC :

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PrivateKey>
            <Password ref="private.privatekey-password"/>
    
        </PrivateKey>
            <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=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. Si la valeur de l'élément <Algorithm> est HS256 alors que vous avez utilisé <PrivateKey>, ceci est la cause de l'erreur.

    Dans l'exemple de règle Generate JWT présenté ci-dessus, le champ <PrivateKey> est utilisé même si l'élément <PrivateKey> est défini sur un algorithme de la famille HS256, ce qui génère l'erreur :

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    

Solution

Assurez-vous que l'élément <PrivateKey> 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 Generate JWT présenté ci-dessus, utilisez le <SecretKey> de la règle Generate JWT qui fait appel à l'algorithme HS256 :

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

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 2
Invalid Value for element : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) 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 Generate JWT 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 Generate JWT est JWT-Generate-HS256 et le nom de l'élément est Algorithm.

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

    Voici un exemple de règle Generate JWT :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS128</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>
    </GenerateJWT>
    
  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 Generate JWT 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-Generate-HS256) 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 Generate JWT 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.

<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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

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 2
Missing configuration element : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).

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 <PrivateKey> n'est pas utilisé avec les algorithmes de la famille RSA dans la règle Generate JWT. De même, l'erreur peut se produire si l'élément <SecretKey> n'est pas utilisé avec les algorithmes de la famille HS dans la règle Generate JWT.

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

Diagnostic

  1. Identifiez le nom de la règle Generate JWT 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 Generate JWT est JWT-Generate-HS256 et le nom de l'élément manquant est SecretKey.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Examinez le fichier XML de la règle Generate JWT défaillante et vérifiez que 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, dans la règle suivante, la valeur SecretKey est manquante et la valeur Algorithm utilisée est HS256 :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    

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

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    

Solution

Assurez-vous que l'élément <PrivateKey> 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 Generate JWT présenté ci-dessus qui utilise l'algorithme HS256, ajoutez l'élément <SecretKey> à la règle Generate JWT :

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

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 3
Invalid Key configuration : policy(JWT-Generate-HS256).

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 obligatoire <Value> n'est pas défini dans les éléments <PrivateKey> ou <SecretKey> de la règle Generate JWT.

Diagnostic

  1. Identifiez le nom de la règle Generate JWT dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256.

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

    Par exemple, dans la règle suivante, l'élément enfant <Value> n'est pas défini dans l'élément <SecretKey> :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
        </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>
    </GenerateJWT>
    

    Comme l'élément enfant <Value> n'est pas défini dans l'élément <SecretKey> de la règle Generate JWT, vous obtenez l'erreur suivante :

    Invalid Key configuration : policy(JWT-Generate-HS256).
    

Solution

Assurez-vous que l'élément enfant <Value> est toujours défini dans les éléments <PrivateKey> ou <SecretKey> de la règle Generate JWT.

Pour corriger l'exemple de règle Generate JWT présenté ci-dessus, définissez l'élément enfant <Value> sous l'élément <SecretKey> comme indiqué ci-dessous :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

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 2
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-Generate-HS256) element(SecretKey/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 <Value> enfant des éléments <PrivateKey> ou <SecretKey> n'est pas spécifié ou vide.

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

Diagnostic

  1. Identifiez le nom de la règle Generate JWT 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 Generate JWT est JWT-Generate-HS256 et le nom de l'élément vide est SecretKey/Value.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examinez le fichier XML de la règle Generate JWT défaillante 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 <Value> enfant de l'élément <SecretKey> est vide :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value/>
            <Id>1918290</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>
    </GenerateJWT>
    

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

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Solution

Assurez-vous que l'attribut "ref" de l'élément <Value> enfant des éléments <PrivateKey> ou <SecretKey> est toujours spécifié et comporte le préfixe "private.".

Pour corriger l'exemple de règle Generate JWT présenté ci-dessus, utilisez la variable de flux private.privatekey dans l'élément <Value> enfant de l'élément <SecretKey>.

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidVariableNameForSecret

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 2
Invalid variable name for secret : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 2
Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/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 le nom de la variable de flux spécifié dans l'attribut "ref" de l'élément <Value> enfant de <PrivateKey> ou <SecretKey> n'inclut pas le préfixe privé (private.).

Par exemple :

Si le nom de la variable de flux est spécifié sous la forme mykey dans l'attribut "ref" de l'élément <Value> enfant de l'élément <PrivateKey>, cette erreur se produit.

Diagnostic

  1. Identifiez le nom de la règle Generate JWT et le nom de l'élément comportant un nom de variable non valide dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256 et le nom de l'élément est SecretKey/Value.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examinez le fichier XML de la règle Generate JWT défaillante et vérifiez le nom de variable utilisé dans l'élément identifié à l'étape 1. Si le nom de la variable ne comporte pas le préfixe private., alors il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante indique que le nom de variable mykey de l'élément <Value> enfant de l'élément <SecretKey> est incorrect :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="mykey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    Comme le nom de la variable spécifié dans l'élément <Value> enfant de l'élément <SecretKey> de la règle Generate JWT ne comporte pas le préfixe private., vous obtenez l'erreur :

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Solution

Assurez-vous que l'attribut "ref" de l'élément <Value> enfant des éléments <PrivateKey> ou <SecretKey> est toujours spécifié et comporte le préfixe private..

Pour corriger l'exemple de règle Generate JWT ci-dessus, utilisez la variable de flux private.privatekey dans l'élément <Value> enfant de l'élément <SecretKey> :

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidSecretInConfig

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 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/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 la valeur (secret) est spécifiée de manière explicite dans :

  • Les éléments <Value> ou <Password> enfants de l'élément <PrivateKey> ou
  • L'élément <Value> enfant de l'élément <SecretKey>

dans la règle Generate JWT.

Par exemple, si le secret est clairement spécifié en tant que abc dans l'élément <Value> enfant de l'élément <SecretKey>, cette erreur se produit.

Diagnostic

  1. Identifiez le nom de la règle Generate JWT et le nom de l'élément dans lesquels le secret est explicitement spécifié à partir du message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256 et le nom de l'élément est SecretKey/Value.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examinez le fichier XML de la règle Generate JWT défaillante et vérifiez si le secret est clairement spécifié dans l'élément identifié à l'étape 1. Si c'est le cas, alors il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante montre que le secret a été clairement spécifié dans l'élément <Value> enfant de l'élément <SecretKey> :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value>abc</Value>
            <Id>1918290</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>
    </GenerateJWT>
    

    Étant donné que le secret est clairement spécifié dans l'élément <Value> enfant de l'élément <SecretKey> de la règle Generate JWT, vous obtenez l'erreur :

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Solution

Assurez-vous que la valeur est toujours spécifiée en tant que variable de flux dans l'élément <Value> enfant des éléments <PrivateKey> ou <SecretKey>.

Pour corriger l'exemple de règle Generate JWT présenté ci-dessus, utilisez la variable de flux private.secretkey dans l'attribut "ref" de l'élément <Value> enfant de <SecretKey> :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>

InvalidTimeFormat

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 2
Invalid Time format: policy(policy_name) element(element_name).

Exemple de message d'erreur

Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).

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 <NotBefore> ne fait pas partie des formats compatibles :

sortable, RFC 1123, RFC 850, ANCI-C

Par exemple, si la valeur spécifiée dans <NotBefore> est 20-JUN-1990 08:03, qui n'est pas un format compatible, cette erreur se produit.

<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>

Diagnostic

  1. Identifiez le nom de la règle Generate JWT et le nom de l'élément qui présente un format d'heure non valide d'après le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle Generate JWT est JWT-Generate-HS256 et le nom de l'élément est NotBefore.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Examinez le fichier XML de la règle Generate JWT défaillante et vérifiez le format d'heure utilisé dans l'élément identifié à l'étape 1. Si l'élément n'utilise aucun des formats compatibles :

    sortable, RFC 1123, RFC 850, ANCI-C

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

    Par exemple, la règle suivante indique que l'élément enfant <NotBefore> utilise un format d'heure non compatible :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    Comme l'élément <NotBefore> de la règle Generate JWT n'utilise aucun des formats d'heure compatibles, vous obtenez l'erreur :

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Solution

Assurez-vous que la valeur spécifiée dans l'élément <NotBefore> utilise l'un des formats compatibles :

sortable, RFC 1123, RFC 850, ANCI-C

Pour corriger l'exemple de règle Generate JWT, modifiez la date dans l'élément <NotBefore> au format sortable, comme indiqué ci-dessous :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>