Solução de problemas de implantação da política VerifyJWT

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

InvalidNameForAdditionalClaim

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
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-Verify-RS256) claim(iss).

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

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 reivindicações registradas são especificadas no RFC7519.

Por exemplo, o uso do nome da reivindicação iss no elemento <AdditionalClaims> resultará neste erro.

Diagnóstico

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

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

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. 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 Verify JWT mostrado acima, o nome <Claim> é especificado como iss no elemento <AdditionalClaims>, resultando no erro:

    Invalid name for additional claim : policy(JWT-Verify-RS256) 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 problema com o exemplo de política Verify JWT, altere o nome da reivindicação para status:

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

InvalidTypeForAdditionalClaim

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
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-Verify-RS256) claim(claim) type(integer).

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

O tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> da política VerifyJWT não é 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 "Verify JWT", o nome da reivindicação e o tipo na mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política "Verify JWT" é JWT-Verify-RS256, o nome da reivindicação é claim e o tipo é integer:

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Verifique se o nome da reivindicação e o tipo usado no elemento <AdditionalClaims> no XML de política "Verify 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 como integer, que corresponde ao que está na mensagem de erro:

    <VerifyJWT name="JWT-Verify-RS256">
      <DisplayName>JWT Verify RS256</DisplayName>
      <Algorithm>RS256</Algorithm>
     <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <SecretKey>
          <Value ref="private.secretkey"/>
          <Id>1918290</Id>
      </SecretKey>
      <ExpiresIn>1h</ExpiresIn>
      <Subject>monty-pythons-flying-circus</Subject>
      <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
      <Audience>fans</Audience>
      <Id/>
      <AdditionalClaims>
          <Claim name='claim' ref='reqclaim' type='integer'/>
      </AdditionalClaims>
    </VerifyJWT>
    
  3. 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 "Verify JWT" mostrado acima, o tipo <Claim> é especificado como integer no elemento <AdditionalClaims>. Como integer não é um tipo compatível, você recebe o erro:

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

Resolução

Garanta que somente os tipos de dados compatíveis string (padrão), number, boolean ou map sejam usados no elemento filho <Claim> do elemento <AdditionalClaims>.

Para corrigir o exemplo de política Verify JWT, altere o tipo de reivindicação para boolean:

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

MissingNameForAdditionalClaim

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
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-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

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 "Verify JWT" na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Verify JWT" é JWT-Verify-RS256:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Examine o XML da política Verify 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 "Verify JWT" a seguir não especifica o nome da declaração no elemento <AdditionalClaims>:

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

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

    Error occurred while validation of bean JWT-Verify-RS256.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 Verify JWT, especifique o nome da reivindicação como mostrado abaixo:

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

InvalidNameForAdditionalHeader

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
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-Verify-RS256) header(alg).

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

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 Verify JWT e o nome do cabeçalho da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política de JWT de verificação é JWT-Verify-RS256 e o nome do cabeçalho é alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Verifique se o nome do cabeçalho usado no elemento filho <Claim> no elemento <AdditionalHeaders> no XML de política 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:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. 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 Verify JWT mostrado acima, o nome <Claim> é especificado como alg no elemento <AdditionalClaims>, resultando no erro:

    Invalid name for additional header: policy(JWT-Verify-RS256) 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 "Verify JWT", use o nome x5c no elemento filho <Claim> do elemento <AdditionalHeaders>:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/D>ispla<yName
   > Algo<rithmRS256>/Algo<rithm
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
   > SecretKe<y
        Value ref="priv>ate.secre<tk>ey"<;/
>     <   Id19182>90/Id<
    /Sec>re<tKey
    E>xpire<sIn1h/E>xpiresIn
    Subjectmonty-p<ythons-f>lying<-circu>s/Subject
    Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
    A>udien<cef>ans/A<udience
    Id/
 >   Additi<onalHeaders
     >   Cl<aim name='x5c&>#<39;/
    />AdditionalHeaders
/VerifyJWT

InvalidTypeForAdditionalHeader

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
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-Verify-RS256) claim(claim1) type(integer).

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

O erro ocorrerá se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalHeaders> da política Verify JWT 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 "Verify JWT", o nome da declaração e o tipo da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política Verify JWT é JWT-Verify-RS256, o nome da declaração é claim e o tipo é integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Verifique se o nome da reivindicação e o tipo usado no elemento <AdditionalClaims> no XML de política "Verify 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:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > SecretKe<y
            Value ref="priv>ate.secre<tk>ey"<;/
    >     <   Id19182>90/Id<
        /Sec>re<tKey
        E>xpire<sIn1h/E>xpiresIn
        Subjectmonty-p<ythons-f>lying<-circu>s/Subject
        Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
        A>udien<cef>ans/A<udience
        Id/
     >   Additi<onalHeaders
            Claim name='claim' re>f=<9;reqclaim' ty>p<e='int>eger'/
        /AdditionalHeaders
    /VerifyJWT
    
  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 de verificação do JWT mostrado 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-Verify-RS256) 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 Verify JWT, altere o tipo de reivindicação para boolean:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/D>ispla<yName
   > Algo<rithmRS256>/Algo<rithm
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
   > SecretKe<y
        Value ref="priv>ate.secre<tk>ey"<;/
>     <   Id19182>90/Id<
    /Sec>re<tKey
    E>xpire<sIn1h/E>xpiresIn
    Subjectmonty-p<ythons-f>lying<-circu>s/Subject
    Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
    A>udien<cef>ans/A<udience
    Id/
 >   Additi<onalHeaders
        Claim name='claim' re>f=<9;reqclaim' ty>p<e='boo>lean'/
    /AdditionalHeaders
/VerifyJWT

InvalidValueOfArrayAttribute

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
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-Verify-RS256) claim(claim).

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

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 elemento <AdditionalClaims> ou <AdditionalHeaders> causa o erro.

Diagnóstico

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

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Verifique se o nome da reivindicação usado no elemento filho <Claim> no elemento <AdditionalHeaders> da falha no XML da política Verify JWT corresponde ao nome da reivindicaçã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:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > SecretKe<y
            Value ref="priv>ate.secre<tk>ey"<;/
    >     <   Id19182>90/Id<
        /Sec>re<tKey
        E>xpire<sIn1h/E>xpiresIn
        Subjectmonty-p<ythons-f>lying<-circu>s/Subject
        Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
        A>udien<cef>ans/A<udience
        Id/
    >    Addit<ionalClaims
            Claim name='claim' ref='reqc>laim&<#39; type='st>r<ing' a>rray='yes'/
        /AdditionalClaims
    /VerifyJWT
    
  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-Verify-RS256) claim(claim).
    

Resolução

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

Para corrigir o exemplo de política Verify JWT mostrada acima, altere o valor do atributo da matriz para true:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/D>ispla<yName
   > Algo<rithmRS256>/Algo<rithm
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
   > SecretKe<y
        Value ref="priv>ate.secre<tk>ey"<;/
>     <   Id19182>90/Id<
    /Sec>re<tKey
    E>xpire<sIn1h/E>xpiresIn
    Subjectmonty-p<ythons-f>lying<-circu>s/Subject
    Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
    A>udien<cef>ans/A<udience
    Id/
 >   Additi<onalHeaders
        Claim name='claim' ref='reqcl>aim&#<39; type='stri>n<g' arr>ay='true'/
    /AdditionalHeaders
/VerifyJWT

InvalidValueForElement

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

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 Verify JWT e o nome do elemento da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Verify JWT" é JWT-Verify-RS256 e o nome do elemento é Algorithm:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Examine o XML da política Verify JWT com falha e verifique o valor especificado para o elemento <Algorithm>.

    Veja uma amostra de política Verify JWT:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS128>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > SecretKe<y
            Value ref="priv>ate.secre<tk>ey"<;/
    >     <   Id19182>90/Id<
        /Sec>re<tKey
        E>xpire<sIn1h/E>xpiresIn
        Subjectmonty-p<ythons-f>lying<-circu>s/Subject
        Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
        A>udien<cef>ans/A<udience
        Id/
    >    Addit<ionalClaims
            Claim name=&#>39;status&#<39; ty>pe=&#<39;string'Dev>e<lopment/Cl>aim
        /AdditionalClaims
    /VerifyJWT
    
  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 Verify 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-Verify-RS256) 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 Verify 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.

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

MissingConfigurationElement

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

Esse erro ocorre quando o elemento <PublicKey> não é usado com algoritmos RSA da família na política "Verify JWT". Da mesma forma, o erro poderá ocorrer se o elemento <SecretKey> não for usado com algoritmos da família HSS na política "Verify JWT".

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

Diagnóstico

  1. Identifique o nome da política "Verify JWT" e o nome do elemento ausente na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política Verify JWT de verificação é JWT-Verify-RS256 e o nome do elemento ausente é PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Examine o XML da política Verify 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, a política a seguir mostra que PublicKey está ausente e Algorithm usado é RS256:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > E<xpiresIn1h>/Expi<resIn
     >   Subjectmonty-pythons-fly<ing-circ>us/Su<bject<>/span>
        Issuerurn://apigee-edge-JWT-p<olicy-t>est/I<ssuer
      >  Au<diencefan>s/Aud<ien>ce
      <  Id/
        Additi>onalClaim<s
            Claim name='claim' ref='reqclaim' t>ype=&<#39;string' a>r<ray='t>rue'/
        /AdditionalClaims
    /VerifyJWT
    

    O exemplo de política "Verify JWT" usa algoritmos da família HS, mas o elemento obrigatório PublicKey está ausente, resultando no erro:

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

Resolução

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

Para corrigir o exemplo de política Verify JWT mostrado acima, que usa o algoritmo RS256, adicione o elemento <PublicKey> à política Verify JWT:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/Displa<yName
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
   > Algo<rithmRS256>/Algo<rithm
   > Public<Key
      Value ref="pub>lic.p<ublickey&q>uot;/<
    /Pub>li<cKey
    E>xpire<sIn1h/E>xpiresIn
    Subjectmonty-p<ythons-f>lying<-circu>s/Subject
    Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
    A>udien<cef>ans/A<udience
    Id/
 >   Additi<onalHeaders
        Claim name='claim' ref='reqcl>aim&#<39; type='stri>n<g' arr>ay='true'/
    /AdditionalHeaders
/VerifyJWT

InvalidKeyConfiguration

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

Este erro ocorrerá se o elemento filho <Value> ou o elemento filho obrigatório <JWKS> não estiver definido nos elementos <PublicKey> ou <SecretKey> da política Verify JWT.

Diagnóstico

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

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

    Por exemplo, a política a seguir mostra que o elemento filho <Value> ou <JWKS> não está definido no elemento <PublicKey>:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > E<xpiresIn1h>/Expi<resIn
       > Publ<icKey
        >/Publ<icKey
     >   Subjectmonty-pythons-fly<ing-circ>us/Su<bject<>/span>
        Issuerurn://apigee-edge-JWT-p<olicy-t>est/I<ssuer
      >  Au<diencefan>s/Aud<ien>ce
      <  Id/
        Additi>onalClaim<s
            Claim name='claim' ref='reqclaim' t>ype=&<#39;string' a>r<ray='t>rue'/
        /AdditionalClaims
    /VerifyJWT
    

    Como o elemento filho <Value> ou <JWKS> não está definido no elemento <PublicKey> da política "Verify JWT", o erro aparece:

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

Resolução

Verifique se o elemento filho <Value> ou <JWKS> está sempre definido no elemento <PublicKey> da política Verify JWT.

Para corrigir o exemplo de política Verify JWT, defina o elemento filho <Value> ou <JWKS> no elemento <PublicKey>, conforme mostrado abaixo:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/D>ispla<yName
   > Algo<rithmRS256>/Algo<rithm
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
   > PublicKe<y
        Value ref="pub>lic.p<ublickey&q>uot;/<
    /Pub>li<cKey
    E>xpire<sIn1h/E>xpiresIn
    Subjectmonty-p<ythons-f>lying<-circu>s/Subject
    Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
    A>udien<cef>ans/A<udience
    Id/
 >   Additi<onalHeaders
        Claim name='claim' ref='reqcl>aim&#<39; type='stri>n<g' arr>ay='true'/
    /AdditionalHeaders
/PublicJWT

EmptyElementForKeyConfiguration

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
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-Verify-RS256) element(PublicKey/Value).

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

Este erro ocorre se o atributo de referência no elemento filho <Value> ou <JWKS> do elemento <PublicKey> não estiver especificado ou estiver vazio.

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

Diagnóstico

  1. Identifique o nome da política Verify JWT e o nome do elemento que está vazio na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Verify JWT" é JWT-Verify-RS256 e o nome do elemento é PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Examine o XML da política Verify 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 <PublicKey> está vazio:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > E<xpiresIn1h>/Expi<resIn
       > PublicKe<y
        >    V<alue/
        >/Publ<icKey
     >   Subjectmonty-pythons-fly<ing-circ>us/Su<bject<>/span>
        Issuerurn://apigee-edge-JWT-p<olicy-t>est/I<ssuer
      >  Au<diencefan>s/Aud<ien>ce
      <  Id/
        Additi>onalClaim<s
            Claim name='claim' ref='reqclaim' t>ype=&<#39;string' a>r<ray='t>rue'/
        /AdditionalClaims
    /VerifyJWT
    

    Como o elemento filho <Value> do elemento <PublicKey> da política Verify JWT está vazio, você recebe o erro:

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

Resolução

Verifique se o atributo "ref" no elemento filho <Value> ou <JWKS> do elemento <PublicKey> é sempre especificado.

Para corrigir o exemplo de política Verify JWT, use a variável de fluxo public.publickey no elemento filho <Value> do elemento <PublicKey>:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/D>ispla<yName
   > Algo<rithmRS256>/Algo<rithm
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
   > PublicKe<y
        Value ref="pub>lic.p<ublickey&q>uot;/<
    /Pub>li<cKey
    E>xpire<sIn1h/E>xpiresIn
    Subjectmonty-p<ythons-f>lying<-circu>s/Subject
    Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
    A>udien<cef>ans/A<udience
    Id/
 >   Additi<onalHeaders
        Claim name='claim' ref='reqcl>aim&#<39; type='stri>n<g' arr>ay='true'/
    /AdditionalHeaders
/VerifyJWT

InvalidConfigurationForVerify

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

Este erro ocorre se o elemento <Id> for definido no elemento <SecretKey> de uma política VerifyJWT.

Por exemplo, se o elemento <Id> for definido no elemento <SecretKey>, esse erro ocorrerá.

Diagnóstico

  1. Identifique o nome da política "Verify JWT" e o nome do elemento inválido da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política Verify JWT é JWT-Verify-RS256 e o nome do elemento é SecretKey/Id:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Examine o XML da política Verify JWT com falha e confira se o elemento inválido identificado na Etapa 1 está definido. Se estiver definido, essa será a causa do erro.

    Por exemplo, a política a seguir mostra que o elemento filho <Id> do elemento <SecretKey> é definido:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > E<xpiresIn1h>/Expi<resIn
       > SecretKe<y
            Value ref="priv>ate.secre<tke>y&quo<t;/
          >  Id/<
        /S>ecretKey
        Subjectmonty-p<ythons-f>lying<-circu>s/Subject
        Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
        A>udien<cef>ans/A<udience
        Id/
    >    Addit<ionalClaims
            Claim name='claim' ref='reqcl>aim&#<39; type='str>i<ng' ar>ray='true'/
        /AdditionalClaims
    /VerifyJWT
    

    Como o elemento <Id> é definido no elemento <SecretKey> da política "Verify JWT", você recebe o erro:

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

Resolução

Garanta que o elemento <Id> nunca seja definido no elemento <SecretKey> de uma política "Verify JWT".

Para corrigir o exemplo de política Verify JWT, remova o elemento filho <Id> do elemento <SecretKey>:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/D>ispla<yName
   > Algo<rithmRS256>/Algo<rithm
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
   > SecretKe<y
        Value ref='priva>te.se<cretkey>9;/
 <   /Secre>tK<ey
    Exp>iresI<n1h/Exp>iresIn
    Subjectmonty-pyt<hons-fly>ing-c<ircus/>Subject
    Issuerurn://apigee-ed<ge-JWT->polic<y-test/I>ssue<r
    Aud>ience<fan>s/Aud<ience
    Id/
   > Addition<alHeaders
        Claim name='claim' ref='reqclai>m'<; type='string>&<#39; array>='true'/
    /AdditionalHeaders
/VerifyJWT

InvalidEmptyElement

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

Este erro ocorre se o elemento <Source> da política Verify JWT estiver vazio. Se presente, precisa ser definido com um nome de variável de fluxo de borda.

Diagnóstico

  1. Identifique o nome da política "Verify JWT" e o nome do elemento vazio da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política "Verify JWT" é JWT-Verify-RS256 e o nome do elemento é PublicKey/Value:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Examine o XML da política Verify 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 <Source> está vazio:

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > E<xpiresIn1h>/Expi<resIn<>/span>
    <    Sou>rce/S<ource
       > PublicKe<y
            Value ref="pub>lic.p<ublickey&q>uot;/<
        /P>ublicKey
        Subjectmonty-p<ythons-f>lying<-circu>s/Subject
        Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
        A>udien<cef>ans/A<udience
        Id/
    >    Addit<ionalClaims
            Claim name='claim' ref='reqcl>aim&#<39; type='str>i<ng' ar>ray='true'/
        /AdditionalClaims
    /VerifyJWT
    

    Como o elemento <Source> da política "Verify JWT" está vazio, você recebe o erro:

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

Resolução

Se o elemento <Source> de uma política Verify JWT estiver presente, verifique se ele especifica uma variável de fluxo.

Para corrigir o exemplo de política Verify JWT, use uma variável de fluxo válida no elemento <Source>:

<VerifyJWT name="JWT-Verify-R>S256&<quot;
    D>isplayNameJWT Ve<rify RS256/D>ispla<yName
   > Algo<rithmRS256>/Algo<rithm
    IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables<>/span>
    Sourcejw<t-varia>ble/S<ource
   > PublicKe<y
        Value ref="pub>lic.p<ublickey&q>uot;/<
    /Pub>li<cKey
    E>xpire<sIn1h/E>xpiresIn
    Subjectmonty-p<ythons-f>lying<-circu>s/Subject
    Issuerurn://apigee-<edge-JW>T-pol<icy-test>/Iss<uer
    A>udien<cef>ans/A<udience
    Id/
 >   Additi<onalHeaders
        Claim name='claim' ref='reqcl>aim&#<39; type='stri>n<g' arr>ay='true'/
    /AdditionalHeaders
/VerifyJWT

InvalidPublicKeyValue

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

Esse erro ocorrerá se o valor usado no elemento filho <JWKS> do elemento <PublicKey> não estiver em um formato válido, conforme especificado em RFC 7517.

Por exemplo, usar abc como o valor do elemento filho <JWKS> no elemento <PublicKey> resultará nesse erro.

Diagnóstico

  1. Identifique o nome da política Verify JWT e o nome do elemento que contém um valor inválido na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política Verify JWT é JWT-Verify-RS256 e o elemento é PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Examine o XML da política Verify JWT e verifique se o elemento identificado na Etapa 1 contém um valor em um formato válido de acordo com a RFC 7517. Se o valor do elemento não estiver em formato válido, essa é a causa do erro.

    <VerifyJWT name="JWT-Verify-R>S256&<quot;
        D>isplayNameJWT Ve<rify RS256/D>ispla<yName
       > Algo<rithmRS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables
       > PublicKe<y
      >   <   J>WKSab<cJWKS
        >/Publ<icKey
       > E<xpiresIn1h>/Expi<resIn
     >   Subjectmonty-pythons-fly<ing-circ>us/Su<bject
    >    Issuerurn://apigee-edge-JWT-p<olicy-t>est/I<ssuer
      >  Au<diencefan>s/Aud<ien>c<e
        Id/
    >/VerifyJWT
    

    Como o valor no elemento filho <JWKS> do elemento <PublicKey> não está em um formato válido de acordo com o RFC 7517 (em inglês), você recebe o erro:

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

Resolução

Verifique se o valor especificado no elemento filho <JWKS> do elemento <PublicKey> é uma string válida ou uma variável de fluxo em um formato JWKS válido (RFC 7517).

Para corrigir o exemplo de política Verify JWT, altere o valor de <JWKS>, conforme mostrado abaixo:

    <VerifyJWT name="JWT-Verify-R>S256"<;
        D>isplayNameJWT Ve<rify RS256/D>isplayNam<e
       > Algo<rithmRS256>/Algorith<m
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVariable<s
       > PublicKe<y
  >      JWKSeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1<537t3>rGzcM/JWK<S
        >/PublicKe<y
       > E<xpiresIn1h>/ExpiresI<n
     >   Subjectmonty-pythons-fly<ing-circ>us/Subjec<t
    >    Issuerurn://apigee-edge-JWT-p<olicy-t>est/Issue<r
      >  Au<diencefan>s/Audienc<e
 >     <  Id/
    >/VerifyJWT

InvalidConfigurationForActionAndAlgorithm

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Na interface do Edge, você verá uma caixa de diálogo com um erro:

Causa

Esse erro ocorrerá se o elemento <PublicKey> 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 <PublicKey> com os algoritmos da família HS leva esse erro.

Diagnóstico

  1. Identifique o nome da política Verify 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 "Verify JWT" é JWT-Verify-HS256, o nome do elemento é PublicKey e a família de algoritmos é RSA:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. Verifique se o elemento e a família de algoritmos usados na política Verify JWT XML 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 PublicKey e a família de algoritmos como HMAC, que corresponde ao que está na mensagem de erro.

    <VerifyJWT name="JWT-Verify-H>S256&<quot;
        D>isplayNameJWT Ve<rify HS256/D>ispla<yName
       > Algo<rithmHS256>/Algo<rithm
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVari<ables<>/span>
        Sourcerequest.for<mparam.>jwt/S<ource
       > PublicKe<y
            Value ref=&q>uot;v<ar-value&q>uot;/<
        /Pub>licKey
      <  SecretKey
            Value ref=>"<;private.s>ecretkey&<quot;/
      >  </SecretKey>
            <Expires>In1h/ExpiresIn
            Subj<ectmonty>-pythons-<flying>-circus/Subject
            Issuerurn<://apig>ee-edge-J<WT-polic>y-te<st/Issuer>
        <    Audien>cefans/Audience
        /VerifyJWT
    
  3. Se o valor do elemento <Algorithm> for HS256, mas você tiver usado <PublicKey>, essa será a causa do erro.

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

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

Resolução

O elemento <PublicKey> deve ser usado somente com algoritmos RSA Family, e o elemento <SecretKey> é usado apenas com algoritmos HS Family.

Para corrigir o exemplo de política Verify JWT, use <SecretKey> da política VerifyJWT que usa o algoritmo HS256:

    <VerifyJWT name="JWT-Verify-H>S256"<;
        D>isplayNameJWT Ve<rify HS256/D>isplayNam<e
       > Algo<rithmHS256>/Algorith<m
        IgnoreUnresolve>dVari<ablesfalse/IgnoreUnresolve>dVariable<s
    >    Sourcerequest.for<mparam.>jwt/Sourc<e
       > SecretKe<y
        Value ref="priv>ate.s<ecretkey&q>uot;/
   < /SecretK>ey<
        E>xpiresIn1<h/Expir>esIn
        Subjectmonty-p<ythons-f>lying-cir<cus/Su>bject
        Issuerurn://apigee-<edge-JW>T-policy-<test/Iss>uer
<        A>udien<cefans/Aud>ience
    /VerifyJWT