Solução de problemas de erro na implantação da política "Gerar JWT"

Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.

InvalidNameForAdditionalClaim

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Esse erro ocorrerá se o nome da declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> for um dos seguintes nomes registrados:

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

As declarações registradas são especificadas na RFC 7519.

Por exemplo, o uso do nome de declaração iss no elemento <AdditionalClaims> resultará nesse erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome da declaração da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome da declaração é iss:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Verifique se o nome da declaração usado no elemento <AdditionalClaims> do XML de política "Gerar JWT" corresponde ao nome da declaração identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica a declaração como iss, que corresponde ao que está na mensagem de erro:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Se o nome da declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> for um dos seguintes nomes registrados:

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

    essa é a causa do erro.

    No exemplo de política "Gerar JWT" mostrado acima, o nome <Claim> é especificado como iss no elemento <AdditionalClaims>, resultando no erro:

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

Resolução

Não use nenhum dos nomes registrados "kid", "iss", "sub", "aud", "iat", "exp", "nbf" ou "jti" no elemento filho <Claim> de <AdditionalClaims>.

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, altere o nome da declaração para 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

InvalidTypeForAdditionalClaim

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Esse erro ocorrerá se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> da política GenerateJWT não for um dos seguintes tipos:

string (padrão), number, boolean ou map

Por exemplo, usar o tipo de declaração integer no elemento <AdditionalClaims> resultará no erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT", o nome da declaração e o tipo de declaração na mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política "Gerar JWT" é JWT-Generate-HS256, o nome da declaração é claim e o tipo de declaração é integer:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Verifique se o nome da declaração e o tipo usado no elemento <AdditionalClaims> no XML de política "Gerar JWT" correspondem ao nome da declaração e ao tipo identificado na mensagem de erro na Etapa 1. Por exemplo, a política a seguir especifica a declaração como claim e o tipo como integer, que corresponde ao que está na mensagem de erro:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> não for um dos seguintes tipos:

    string (padrão), number, boolean ou map

    essa é a causa do erro.

    No exemplo de política "Gerar JWT" exibida acima, o tipo <Claim> no elemento <AdditionalClaims> é especificado como integer. Como integer não é um tipo compatível, você recebe o erro:

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

Resolução

Garanta que apenas os tipos de dados compatíveis, como string, number, boolean ou map, sejam usados no elemento filho <Claim> do elemento <AdditionalClaims>.

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, altere o tipo da declaração para 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

MissingNameForAdditionalClaim

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Esse erro ocorrerá se o nome da declaração não for especificado no elemento filho <Claim> do elemento <AdditionalClaims> ou <AdditionalHeaders>.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Examine o XML da política "Gerar JWT" com falha e confira se o nome da declaração está ausente no elemento filho <Claims> no elemento <AdditionalClaims> ou <AdditionalHeaders>. Por exemplo, a política "Gerar JWT" a seguir não especifica o nome da declaração no 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Como o nome <Claim> não está especificado no elemento <AdditionalClaims>, você recebe o erro:

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

Resolução

Certifique-se de que o nome da declaração seja sempre especificado no elemento filho <Claim> do elemento <AdditionalClaims> ou <AdditionalHeaders>.

Para corrigir o exemplo de política "Gerar JWT", especifique o nome da declaração conforme mostrado abaixo:

<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

InvalidNameForAdditionalHeader

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Este erro ocorrerá se o nome da declaração usada no elemento filho <Claim> do elemento <AdditionalHeaders> for um dos seguintes cabeçalhos JWT padrão:

alg ou typ

Por exemplo, o uso do nome de reivindicação alg no elemento <AdditionalHeaders> causará o erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome do cabeçalho da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome do cabeçalho é alg:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Verifique se o nome do cabeçalho usado no elemento filho <Claim> no elemento <AdditionalHeaders> no XML da política "Gerar JWT" com falha corresponde ao nome do cabeçalho identificado na mensagem de erro na Etapa 1. Por exemplo, a política a seguir especifica o cabeçalho como alg, que corresponde ao que está na mensagem de erro:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. Se o nome de cabeçalho usado no elemento filho <Claim> do elemento <AdditionalClaims> é um dos seguintes cabeçalhos JWT padrão:

    alg ou typ

    essa é a causa do erro.

    No exemplo de política "Gerar JWT" mostrado acima, o nome <Claim> é especificado como alg no elemento <AdditionalClaims>, resultando no erro:

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

Resolução

Não use os cabeçalhos JWT padrão alg ou typ no elemento filho <Claim> do elemento <AdditionalHeaders>.

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, use o nome x5c no elemento filho <Claim> do 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTypeForAdditionalHeader

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

O erro ocorrerá se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalHeaders> da política GenerateJWT não for um dos seguintes tipos:

string (padrão), number, boolean ou map.

Por exemplo, o uso do tipo de declaração integer no elemento <AdditionalHeaders> causará o erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT", o nome da declaração e o tipo de declaração na mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política "Gerar JWT" é JWT-Generate-HS256, o nome da declaração é claim, e o tipo de declaração é integer:.

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Verifique se o nome da declaração e o tipo usado no elemento <AdditionalClaims> no XML de política "Gerar JWT" correspondem ao nome da reivindicação e ao tipo identificado na mensagem de erro na Etapa 1. Por exemplo, a política a seguir especifica a declaração como claim e o tipo de declaração como integer, que corresponde ao que está na mensagem de erro:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. Se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalHeaders> não for um dos seguintes tipos:

    string (padrão), number, boolean ou map

    essa é a causa do erro.

    No exemplo de política "Gerar JWT" exibida acima, o tipo <Claim> no elemento <AdditionalHeaders> é especificado como integer. Como integer não é um tipo compatível, você recebe o erro:

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

Resolução

Verifique se apenas os tipos de dados compatíveis string, number, boolean ou map são usados no elemento filho <Claim> do elemento <AdditionalHeaders>.

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, altere o tipo da declaração para 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueOfArrayAttribute

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Este erro ocorre se o valor do atributo de matriz no elemento filho <Claim> do elemento <AdditionalClaims> ou <AdditionalHeaders> não estiver definido como true ou false.

Por exemplo, definir o valor do atributo da matriz como yes no elemento filho <Claim> do <AdditionalClaims> ou <AdditionalHeaders> causa o erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome da declaração da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome da declaração é claim:.

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. Verifique se o nome da declaração usado no elemento filho <Claim> no elemento <AdditionalHeaders> da falha no XML da política "Gerar JWT" corresponde ao nome da declaração identificado na mensagem de erro na Etapa 1. Por exemplo, a seguinte política especifica o nome da declaração como claim, que corresponde ao que está na mensagem de erro:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Se o valor do atributo array no elemento filho <Claim> do elemento <AdditionalClaims> não estiver definido como true ou false, essa é a causa do erro.

    Como o atributo array no elemento filho <Claim> do elemento <AdditionalClaims> está definido como yes no exemplo acima, você recebe o erro:

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

Resolução

Verifique se o valor do atributo da matriz no elemento filho <Claim> de <AdditionalClaims> ou <AdditionalHeaders> está definido como true ou false.

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, altere o valor do atributo da matriz para 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Esse erro ocorrerá se o elemento <PrivateKey> for usado com algoritmos da família HS, e o elemento <SecretKey> for usado com algoritmos RSA Family. O erro também ocorrerá se qualquer uma dessas condições for verdadeira.

Por exemplo, usar o elemento <PrivateKey> com os algoritmos da família HS leva esse erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT", o nome do elemento e o nome da família do algoritmo da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256, o nome do elemento é PrivateKey e a família de algoritmos é HMAC:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Verifique se o elemento e a família de algoritmos usados no XML da política Gerar JWT falhou no elemento e na família de algoritmos identificada na mensagem de erro na Etapa 1. Por exemplo, a política a seguir especifica o elemento como PrivateKey e a família de algoritmos como HMAC, que corresponde ao que está na mensagem de erro.

    <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-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
            <Id/>
            <AdditionalClaims>
                <Claim name='claim' ref='reqclaim' type='string' array=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. Se o valor do elemento <Algorithm> for HS256, mas você tiver usado <PrivateKey>, essa será a causa do erro.

    No exemplo de política "Gerar JWT" exibida acima, o elemento <PrivateKey> é usado mesmo que o <PrivateKey> esteja definido como um algoritmo de família HS256, resultando no erro:

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

Resolução

O elemento <PrivateKey> é usado apenas com algoritmos RSA Family e o elemento <SecretKey> é usado apenas com algoritmos HS Family.

Para corrigir o exemplo de política "Gerar JWT" mostrado acima, use <SecretKey> da política GenerateJWT que usa o 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueForElement

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Este erro ocorre se o valor especificado no elemento <Algorithm> não é um dos seguintes valores:

HS256, HS384, HS512, RS256, RS384, RS512

Por exemplo, especificar o valor do algoritmo como RS128 no elemento <Algorithm> leva a esse erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome do elemento da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome do elemento é Algorithm.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. Analise o XML da política "Gerar JWT" com falha e verifique o valor especificado para o elemento <Algorithm>.

    Veja uma amostra da política "Gerar 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Analisa o valor especificado no elemento <Algorithm>. Se não for um dos seguintes valores:

    HS256, HS384, HS512, RS256, RS384, RS512

    essa é a causa do erro.

    No exemplo de política "Gerar JWT" mostrado acima, o nome <Algorithm> é especificado como HS128. Como este não é um algoritmo compatível, você recebe o erro:

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

Resolução

Verifique se o valor especificado no elemento <Algorithm> é um dos valores compatíveis:

HS256, HS384, HS512, RS256, RS384, RS512

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, que usa o elemento <SecretKey>, altere o valor de <Algorithm> para HS25. Quando o elemento <SecretKey> é usado, só é possível usar algoritmos de família 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

MissingConfigurationElement

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Esse erro ocorre quando o elemento <PrivateKey> não é usado com algoritmos RSA Family na política "Gerar JWT". Da mesma forma, o erro poderá ocorrer se o elemento <SecretKey> não for usado com algoritmos da HS Family na política "Gerar JWT".

Por exemplo, não usar o elemento <PrivateKey> com algoritmos RSA da família leva a esse erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome do elemento ausente na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome do elemento ausente é SecretKey

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Examine o XML da política "Gerar JWT" com falha e verifique se o elemento indicado na mensagem de erro está ausente. Se estiver faltando, essa é a causa do erro.

    Por exemplo, na política a seguir, o SecretKey está ausente e o Algorithm usado é 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    O exemplo de política "Gerar JWT" usa algoritmos HS Family, mas o elemento obrigatório SecretKey está ausente, resultando no erro:

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

Resolução

Certifique-se de que o elemento obrigatório <PrivateKey> seja usado com algoritmos RSA Family e o elemento obrigatório <SecretKey> seja usado com algoritmos HS.

Para corrigir o exemplo de política "Gerar JWT" mostrado acima, que usa o algoritmo HS256, adicione o elemento <SecretKey> à política "Gerar 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidKeyConfiguration

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 3.

Causa

Esse erro ocorrerá se o elemento filho obrigatório <Value> não estiver definido nos elementos <PrivateKey> ou <SecretKey> na política "Gerar JWT".

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Gerar JWT" é JWT-Generate-HS256.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Examine o XML da política "Gerar JWT" com falha e verifique se o elemento filho <Value> não está definido nos elementos <PrivateKey> ou <SecretKey>. Se <Value> não estiver definido, essa será a causa do erro.

    Por exemplo, na política a seguir, o elemento filho <Value> não é definido no 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Como o elemento filho <Value> não está definido no elemento <SecretKey> da política "Gerar JWT", você receberá o erro:

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

Resolução

Verifique se o elemento filho <Value> está sempre definido nos elementos <PrivateKey> ou <SecretKey> da política "Gerar JWT".

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, defina o elemento filho <Value> no elemento <SecretKey>, conforme mostrado abaixo:

<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

EmptyElementForKeyConfiguration

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Este erro ocorre se o atributo de referência no elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> não estiver especificado ou vazio.

Por exemplo, se o elemento filho <Value> do elemento <SecretKey> estiver vazio, ocorrerá o erro.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome do elemento vazio da mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome do elemento vazio é SecretKey/Value.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Analise o XML da política "Gerar JWT" com falha e verifique se o elemento identificado na Etapa 1 está vazio. Se estiver vazio, essa é a causa do erro.

    Por exemplo, a política a seguir mostra que o elemento filho <Value> do elemento <SecretKey> está vazio:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Como o elemento filho <Value> do elemento <SecretKey> na política "Gerar JWT" está vazio, você recebe o erro:

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

Resolução

Verifique se o atributo "ref" no elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> é sempre especificado e tem o prefixo "private.".

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, use a variável de fluxo private.privatekey no elemento filho <Value> do 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidVariableNameForSecret

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Esse erro ocorrerá se o nome da variável de fluxo especificado no atributo ref do elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> não incluir o prefixo privado (private.).

Exemplo:

Se o nome da variável de fluxo for especificado como mykey no atributo "ref" do elemento filho <Value> do elemento <PrivateKey>, esse erro ocorrerá.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome do elemento com um nome de variável inválido da mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome do elemento é SecretKey/Value.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examine o XML da política "Gerar JWT" com falha e verifique o nome da variável usada no elemento, identificado na Etapa 1. Se o nome da variável não tiver o prefixo private., essa será a causa do erro.

    Por exemplo, a política a seguir mostra que o elemento filho <Value> do elemento <SecretKey> tem o nome de variável inválido mykey:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Como o nome da variável especificado no elemento filho <Value> do elemento <SecretKey> da política "Gerar JWT" não tem o prefixo private., ocorrerá o seguinte erro:

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

Resolução

Verifique se o atributo ref no elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> é sempre especificado e tem o prefixo private..

Para corrigir o exemplo de política "Gerar JWT" mostrada acima, use a variável de fluxo private.privatekey no elemento filho <Value> do 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidSecretInConfig

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 2.

Causa

Esse erro ocorre quando o valor (secreto) é especificado explicitamente em:

  • Os elementos filhos <Value> ou <Password> do elemento <PrivateKey> ou
  • O elemento filho <Value> do elemento <SecretKey>

na política "Gerar JWT".

Por exemplo, se o secret for especificado explicitamente como abc no elemento filho <Value> do elemento <SecretKey>, esse erro ocorrerá.

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome do elemento em que a chave secreta é explicitamente especificada a partir da mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome do elemento é SecretKey/Value.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Examine o XML da política "Gerar JWT" com falha e verifique se o secret está explicitamente especificado no elemento identificado na Etapa 1. Se ele for especificado explicitamente, essa será a causa do erro.

    Por exemplo, a política a seguir mostra que o secret foi especificado explicitamente no elemento filho <Value> do 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Como o secret é especificado explicitamente no elemento filho <Value> do elemento <SecretKey> da política "Gerar JWT", você recebe o erro:

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

Resolução

Certifique-se de que o valor seja sempre especificado como uma variável de fluxo no elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey>.

Para corrigir o exemplo de política "Gerar JWT" mostrado acima, use a variável de fluxo private.secretkey no atributo "ref" do elemento filho <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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTimeFormat

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão 3.

Causa

Este erro ocorre se o valor especificado no elemento <NotBefore> não estiver entre um dos formatos compatíveis:

sortable, RFC 1123, RFC 850, ANCI-C

Por exemplo, se o valor especificado em <NotBefore> for 20-JUN-1990 08:03, que não é um formato compatível, esse erro ocorrerá.

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

Diagnóstico

  1. Identifique o nome da política "Gerar JWT" e o nome do elemento que tem um formato de tempo inválido na mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política "Gerar JWT" é JWT-Generate-HS256 e o nome do elemento é NotBefore.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Examine o XML da política "Gerar JWT" com falha e verifique o formato de tempo usado no elemento, identificado na Etapa 1. Se o elemento não usar nenhum dos formatos compatíveis:

    sortable, RFC 1123, RFC 850, ANCI-C

    essa é a causa do erro.

    Por exemplo, a política a seguir mostra que o elemento filho <NotBefore> usa um formato de tempo não compatível:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Como o elemento <NotBefore> da política "Gerar JWT" não usa nenhum dos formatos de tempo compatíveis, você recebe o erro:

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

Resolução

Verifique se o valor especificado no elemento <NotBefore> usa um dos formatos compatíveis:

sortable, RFC 1123, RFC 850, ANCI-C

Para corrigir o exemplo de política "Gerar JWT", modifique a data no elemento <NotBefore> para usar o formato sortable, conforme mostrado abaixo:

<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>