Soluciona problemas de errores de implementación de políticas de GenerateJWT

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

InvalidNameForAdditionalClaim

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si el nombre del reclamo que se usa en el elemento secundario <Claim> del elemento <AdditionalClaims> es uno de los siguientes nombres registrados:

“kid”, “iss”, “sub”, “ud”, “iat”, “exp”, “nbf”, “jti”

Los reclamos registrados se especifican en el documento RFC7519.

Por ejemplo, se generará este error cuando uses el nombre del reclamo iss en el elemento <AdditionalClaims>.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre de la reclamación del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre de la reclamación es iss:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Verifica que el nombre de la reclamación que se usa en el elemento <AdditionalClaims> en el error del archivo XML de la política de GenerateJWT coincida con el nombre de reclamación que se identifica en el mensaje de error (paso 1 anterior). Por ejemplo, en la siguiente política, se especifica la reclamación como iss, que coincide con el contenido del mensaje de error:

    <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 el nombre de la reclamación que se usa en el elemento secundario <Claim>del elemento <AdditionalClaims> es uno de los siguientes nombres registrados:

    “kid”, “iss”, “sub”, “ud”, “iat”, “exp”, “nbf”, “jti”

    entonces esa es la causa del error.

    En el ejemplo de una política de GenerateJWT anterior, el nombre <Claim> se especifica como iss en el elemento <AdditionalClaims>, lo que genera el siguiente error:

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

Solución

No uses ninguno de los nombres registrados “kid”, “iss”, “sub”, “aud”, “iat”, “exp”, “nbf” o “jti” en el elemento secundario <Claim> del elemento <AdditionalClaims>.

Para corregir la política GenerateJWT de ejemplo anterior, cambia el nombre de la reclamación por 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Si el tipo de reclamación que se usa en el elemento secundario <Claim> del elemento <AdditionalClaims> de la política de GenerateJWT no es uno de los siguientes tipos, se genera este error:

string (predeterminado) number, boolean, o map

Por ejemplo, se producirá un error si usas el tipo de reclamación integer en el elemento <AdditionalClaims>.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT, el nombre de la reclamación y el tipo de reclamación a partir del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política GenerateJWT es JWT-Generate-HS256, el nombre de la reclamación es claim y el tipo de reclamación es integer:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Verifica que el nombre de la reclamación y el tipo que se usa en el elemento <AdditionalClaims> en el error del archivo XML de la política de GenerateJWT coincidan con el nombre de la reclamación y el tipo identificados en el mensaje de error del paso 1. Por ejemplo, en la siguiente política, se especifica la reclamación como claim y el tipo como integer, que coincide con el contenido del mensaje de error:

    <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 el tipo de reclamación que se usa en el elemento secundario <Claim> del elemento <AdditionalClaims> no es uno de los siguientes tipos:

    string (predeterminado) number, boolean, o map

    entonces esa es la causa del error.

    En el ejemplo de política GenerateJWT anterior, el tipo <Claim> en el elemento <AdditionalClaims> se especifica como integer. Debido a que integer no es un tipo compatible, obtienes el siguiente error:

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

Solución

Asegúrate de que solo se usen tipos de datos admitidos, como string, number, boolean o map en el elemento secundario <Claim> del elemento <AdditionalClaims>.

Para corregir la política de GenerateJWT anterior, cambia el tipo de la reclamación por 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Si el nombre de la reclamación no se especifica en el elemento secundario <Claim> del elemento <AdditionalClaims> o <AdditionalHeaders>, se genera este error.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica si falta el nombre del reclamo en el elemento secundario <Claims> en el elemento <AdditionalClaims> o <AdditionalHeaders>. Por ejemplo, la siguiente política de GenerateJWT no especifica el nombre de la reclamación en el elemento <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>
    

    Debido a que el nombre <Claim> no se especifica en el elemento <AdditionalClaims>, recibirás el error:

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

Solución

Asegúrate de que el nombre de la reclamación siempre se especifique en el elemento secundario <Claim> del elemento <AdditionalClaims> o <AdditionalHeaders>.

Para corregir el ejemplo de la política GenerateJWT anterior, especifica el nombre de la reclamación como se muestra a continuación:

<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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Si el nombre de la reclamación que se usa en el elemento secundario <Claim> del elemento <AdditionalHeaders> es uno de los siguientes encabezados JWT estándar, se produce este error:

alg o typ

Por ejemplo, si usas el nombre de la reclamación alg en el elemento <AdditionalHeaders> generará el error.

Diagnóstico

  1. A partir del mensaje de error, identifica el nombre de la política de GenerateJWT y el nombre del encabezado. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de Generate JWT es JWT-Generate-HS256 y el nombre del encabezado es alg:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Verifica que el nombre del encabezado que se usa en el elemento secundario <Claim> en el elemento <AdditionalHeaders> del error del archivo XML de la política de GenerateJWT coincida con el nombre del encabezado identificado en el mensaje de error del paso 1. Por ejemplo, en la siguiente política, se especifica el encabezado como alg, que coincide con el mensaje de error:

    <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 el nombre del encabezado que se usa en el elemento secundario <Claim> del elemento <AdditionalClaims> es uno de los siguientes encabezados JWT estándar:

    alg o typ

    entonces esa es la causa del error.

    En el ejemplo de una política de GenerateJWT anterior, el nombre <Claim> se especifica como alg en el elemento <AdditionalClaims>, lo que genera el siguiente error:

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

Solución

No uses los encabezados JWT estándar alg o typ en el elemento secundario <Claim> del elemento <AdditionalHeaders>.

Para corregir la política de GenerateJWT del ejemplo anterior, usa el nombre x5c en el elemento secundario <Claim> del elemento <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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

El error se generará si el tipo de reclamación que se usa en el elemento secundario <Claim> del elemento <AdditionalHeaders> de la política GenerateJWT no es uno de los siguientes tipos:

string (predeterminado) number, boolean, or map.

Por ejemplo, se producirá el error si usas el tipo de reclamación integer en el elemento <AdditionalHeaders>.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT, el nombre de la reclamación y el tipo de reclamación a partir del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política GenerateJWT es JWT-Generate-HS256, el nombre de la reclamación es claim, y el tipo de reclamación es integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Verifica que el nombre y el tipo de la reclamación que se usa en el elemento <AdditionalClaims> del error del archivo XML de la política de GenerateJWT coincidan con el nombre y el tipo de la reclamación identificados en el mensaje de error del paso 1. Por ejemplo, en la siguiente política se especifica la reclamación como claim y el tipo de reclamación como integer, que coincide con el contenido del mensaje de error:

    <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 el tipo de reclamación que se usa en el elemento secundario <Claim> del elemento <AdditionalHeaders> no es uno de los siguientes tipos:

    string (predeterminado) number, boolean, o map

    entonces esa es la causa del error.

    En el ejemplo de política GenerateJWT anterior, el tipo <Claim> en el elemento <AdditionalHeaders> se especifica como integer. Debido a que integer no es un tipo compatible, obtienes el siguiente error:

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

Solución

Asegúrate de que solo se usen los tipos de datos compatibles con string, number, boolean o map en el elemento secundario <Claim> del elemento <AdditionalHeaders>.

Para corregir la política de GenerateJWT anterior, cambia el tipo de la reclamación por 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si el valor del atributo del arreglo del elemento secundario <Claim> del elemento <AdditionalClaims> o <AdditionalHeaders> no está configurado como true ni false.

Por ejemplo, se produce el error, si configuras el valor del atributo del arreglo como yes en el elemento secundario <Claim> de <AdditionalClaims> o <AdditionalHeaders>.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre de la reclamación del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre de la reclamación es claim:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. Verifica que el nombre de la reclamación que se usa en el elemento secundario <Claim> en el elemento <AdditionalHeaders> del error del archivo XML de la política de GenerateJWT coincida con el nombre del reclamo identificado en el mensaje de error del paso 1. Por ejemplo, en la siguiente política, se especifica el nombre de la reclamación como claim, que coincide con el contenido del mensaje de error:

    <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 el valor del atributo array en el elemento secundario <Claim> del elemento <AdditionalClaims> no está configurado como true ni false, entonces esa es la causa del error.

    Debido a que el atributo array en el elemento secundario <Claim> del elemento <AdditionalClaims> se configura como yes en el ejemplo anterior, obtendrás el siguiente error:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    

Solución

Asegúrate de que el valor del atributo del arreglo del elemento secundario <Claim>de <AdditionalClaims> o <AdditionalHeaders> esté configurado como true o false.

Para corregir la política de GenerateJWT de ejemplo anterior, cambia el valor del atributo del arreglo por 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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>).

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si el elemento <PrivateKey> se usa con la familia de algoritmos HS y el elemento <SecretKey> se usa con la familia de algoritmos RSA. El error también se generará si cualquiera de estas condiciones es verdadera.

Por ejemplo, si usas el elemento <PrivateKey> con familias de algoritmos HS, se genera este error.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT, el nombre del elemento y el nombre de la familia de algoritmos a partir del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política GenerateJWT es JWT-Generate-HS256, el nombre del elemento es PrivateKey y la familia del algoritmo es HMAC:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Verifica que el elemento y la familia de algoritmos que se usa en el error del archivo XML de la política de GenerateJWT coincidan con el elemento y la familia de algoritmos identificados en el mensaje de error del paso 1. Por ejemplo, la siguiente política especifica el elemento como PrivateKey y la familia de algoritmos como HMAC, que coincide con el contenido del mensaje de error:

    <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 el valor del elemento <Algorithm> es HS256, pero usaste <PrivateKey>, entonces esa es la causa del error.

    En el ejemplo de la política de GenerateJWT anterior, se usa <PrivateKey> aunque el <PrivateKey> esté configurado como un algoritmo familiar, HS256, lo que genera el siguiente error:

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

Solución

Asegúrate de que el elemento <PrivateKey> solo se use con la familia de algoritmos RSA y el elemento <SecretKey> solo se use con la familia de algoritmos HS.

Para corregir el ejemplo de política de GenerateJWT anterior, usa <SecretKey> desde la política de GenerateJWT que usa el algoritmo 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si el valor especificado en el elemento <Algorithm> no es uno de los siguientes valores:

HS256, HS384, HS512, RS256, RS384, RS512

Por ejemplo, si especificas el valor del algoritmo como RS128 en el elemento <Algorithm> genera este error.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre del elemento del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre del elemento es Algorithm..

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica el valor especificado en el elemento <Algorithm>.

    A continuación, te mostramos una política de GenerateJWT de muestra:

    <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. Examina el valor especificado en el elemento <Algorithm>. Si no es uno de los siguientes valores:

    HS256, HS384, HS512, RS256, RS384, RS512

    entonces esa es la causa del error.

    En el ejemplo de la política de GenerateJWT anterior, el nombre <Algorithm> se especifica como HS128. Debido a que este no es un algoritmo compatible, verás el siguiente error:

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    

Solución

Asegúrate de que el valor especificado en el elemento <Algorithm> sea uno de los valores admitidos:

HS256, HS384, HS512, RS256, RS384, RS512

Para corregir la política de GenerateJWT anterior, que usa el elemento <SecretKey>, cambia el valor de <Algorithm> a HS25. Ten en cuenta que, cuando se usa el elemento <SecretKey>, solo puedes usar la familia de algoritmos 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se produce cuando el elemento <PrivateKey> no se usa con la familia de algoritmos RSA en la política GenerateJWT. Del mismo modo, el error se puede generar si el elemento <SecretKey> no se usa con la familia de algoritmos HS en la política JWT.

Por ejemplo, si no usas el elemento <PrivateKey> con la familia de algoritmos RSA, se produce este error.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre del elemento faltante del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre del elemento faltante es SecretKey.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica que falte el elemento indicado en el mensaje de error. Si falta, entonces esa es la causa del error.

    Por ejemplo, en la siguiente política falta SecretKey y el Algorithm que se usa es 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>
    

    La política de GenerateJWT usa la familia de algoritmos HS, pero falta el elemento obligatorio SecretKey, lo que genera el siguiente error:

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

Solución

Asegúrate de que el elemento obligatorio <PrivateKey> se use con la familia de algoritmos RSA y el elemento obligatorio <SecretKey> con la familia de algoritmos HS.

Para corregir la política de GenerateJWT anterior, que usa el algoritmo HS256, agrega el elemento <SecretKey> a la política de GenerateJWT:

<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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si el elemento secundario obligatorio <Value> no está definido en los elementos <PrivateKey> o <SecretKey> en la política de GenerateJWT.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica si el elemento secundario <Value> no está definido en los elementos <PrivateKey> o <SecretKey>. Si <Value> no está definido, entonces esa es la causa del error.

    Por ejemplo, en la siguiente política, el elemento secundario <Value> no está definido en el elemento <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>
    

    Aparecerá el siguiente error debido a que el elemento secundario <Value> no está definido en el elemento <SecretKey> de la política GenerateJWT:

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

Solución

Asegúrate de que el elemento secundario <Value> siempre se defina en los elementos <PrivateKey> o <SecretKey> de la política de GenerateJWT.

Para corregir la política de GenerateJWT anterior, define el elemento secundario <Value> en el elemento <SecretKey>, como se muestra a continuación:

<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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si no se especifica o está vacío el atributo de referencia del elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey>.

Por ejemplo, se produce el error si el elemento secundario <Value> del elemento <SecretKey> está vacío.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre del elemento vacío del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre del elemento vacío es SecretKey/Value.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica si el elemento identificado en el paso 1 está vacío. Si está vacío, esa es la causa del error.

    Por ejemplo, la siguiente política muestra que el elemento secundario <Value> del elemento <SecretKey> está vacío:

    <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>
    

    Aparecerá el siguiente error debido a que el elemento secundario <Value> del elemento <SecretKey> en la política GenerateJWT está vacío:

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

Solución

Asegúrate de que el atributo de referencia del elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey> siempre se especifique y tenga el prefijo “private.”.

Para corregir la política de GenerateJWT de ejemplo anterior, usa la variable de flujo private.privatekey del elemento secundario <Value> del elemento <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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

Error Saving Revision 2
Invalid variable name for secret : policy(policy_name) element(element_name).

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se produce si el nombre de la variable de flujo especificado en el atributo de referencia del elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey> no incluye el prefijo privado (private. ).

Por ejemplo:

Si el nombre de la variable de flujo se especifica como mykey en el atributo de referencia del elemento secundario <Value> del elemento <PrivateKey>, se produce este error.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre del elemento con un nombre de variable no válido del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre del elemento es SecretKey/Value.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica el nombre de la variable que se usa en el elemento, identificado en el paso 1. Si el nombre de la variable no tiene el prefijo private., entonces esa es la causa del error.

    Por ejemplo, en la siguiente política se muestra que el elemento secundario <Value> del elemento <SecretKey> tiene el nombre de variable mykey no válido:

    <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>
    

    Debido a que el nombre de la variable especificado en el elemento secundario <Value> del elemento <SecretKey> de la política de GenerateJWT no tiene el prefijo private., aparecerá el siguiente error:

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

Solución

Asegúrate de que el atributo de referencia del elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey> siempre se especifique y tenga el prefijo private..

Para corregir la política de GenerateJWT de ejemplo anterior, usa la variable de flujo private.privatekey en el elemento secundario <Value> del elemento <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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si el valor (secreto) se especifica de forma explícita, como se indica a continuación:

  • Los elementos secundarios <Value> o <Password> del elemento <PrivateKey> o
  • El elemento secundario <Value> del elemento <SecretKey>

en la política de GenerateJWT.

Por ejemplo, se produce este error si el secreto se especifica de forma explícita como abc en el elemento secundario <Value> del elemento <SecretKey>.

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre del elemento en el que el secreto se especifica de forma explícita del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre del elemento es SecretKey/Value.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica si el secreto se especifica de manera explícita en el elemento identificado en el paso 1. Si se especifica de forma explícita, entonces esa es la causa del error.

    Por ejemplo, en la siguiente política, se muestra que se especificó de forma explícita el secreto en el elemento secundario <Value> del elemento <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>
    

    Debido a que el secreto se especifica de forma explícita en el elemento secundario <Value> del elemento <SecretKey> de la política de GenerateJWT, verás el error siguiente:

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

Solución

Asegúrate de que el valor siempre se especifique como una variable de flujo en el elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey>.

Para corregir la política de GenerateJWT del ejemplo anterior, usa la variable de flujo private.secretkey en el atributo de referencia del elemento secundario <Value> 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra el siguiente mensaje de error:

Error Saving Revision 2
Invalid Time format: policy(policy_name) element(element_name).

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la IU de Edge, verás un cuadro de diálogo con el siguiente error:

Causa

Este error se genera si el valor especificado en el elemento <NotBefore> no está entre los formatos compatibles:

sortable, RFC 1123, RFC 850, ANCI-C

Por ejemplo, si el valor especificado en <NotBefore> es 20-JUN-1990 08:03, que no es un formato compatible, se produce este error.

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

Diagnóstico

  1. Identifica el nombre de la política de GenerateJWT y el nombre del elemento que tiene un formato de tiempo no válido del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política de GenerateJWT es JWT-Generate-HS256 y el nombre del elemento es NotBefore.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Examina el error del archivo XML de la política de GenerateJWT y verifica el formato de hora que se usa en el elemento identificado en el paso 1. Si el elemento no usa ninguno de los siguientes formatos admitidos:

    sortable, RFC 1123, RFC 850, ANCI-C

    entonces esa es la causa del error.

    Por ejemplo, en la siguiente política, se muestra que el elemento secundario <NotBefore> usa un formato de tiempo no 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>
    

    Debido a que el elemento <NotBefore> de la política de GenerateJWT no usa ninguno de los formatos de hora compatibles, aparece el siguiente error:

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

Solución

Asegúrate de que el valor especificado en el elemento <NotBefore> use uno de los formatos compatibles:

sortable, RFC 1123, RFC 850, ANCI-C

Si deseas corregir la política de GenerateJWT de ejemplo, modifica la fecha en el elemento <NotBefore> para usar el formato sortable, como se muestra a continuación:

<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>