Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do
Apigee Edge.
InvalidNameForAdditionalClaim
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o nome da reivindicação usado no elemento secundário <Claim>
do elemento <AdditionalClaims>
for um dos seguintes nomes registados:
"kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"
As reivindicações registadas são especificadas no RFC 7519.
Por exemplo, usar o nome da reivindicação iss
no elemento <AdditionalClaims>
resulta neste erro.
Diagnóstico
Identifique o nome da política Verify JWT e o nome da reivindicaçã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).
Verifique se o nome da reivindicação usado no elemento
<AdditionalClaims>
no XML da política de JWT de validação com falha corresponde ao nome da reivindicação identificado na mensagem de erro no passo 1. Por exemplo, a seguinte política especifica a reivindicação comoiss
, 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>
Se o nome da reivindicação usado no elemento secundário
<Claim>
do elemento<AdditionalClaims>
for um dos seguintes nomes registados:"kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"
Então, essa é a causa do erro.
No exemplo da política Verify JWT apresentado acima, o nome
<Claim>
é especificado comoiss
no elemento<AdditionalClaims>
, o que resulta no erro:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
Resolução
Não use nenhum dos nomes registados "kid", "iss", "sub", "aud", "iat", "exp", "nbf" ou "jti" no elemento secundário <Claim>
do elemento <AdditionalClaims>
.
Para corrigir o problema com a política de validação de JWT de exemplo, 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 implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
O tipo da reivindicação usado no elemento secundário <Claim>
do elemento <AdditionalClaims>
da política VerifyJWT não é um dos seguintes tipos:
string
(predefinição), number
, boolean
ou map
Por exemplo, a utilização do tipo de reivindicação integer
no elemento <AdditionalClaims>
resulta no erro.
Diagnóstico
Identifique o nome da política Verify JWT, o nome da reivindicação e o tipo na mensagem de erro. Por exemplo, na seguinte mensagem de erro, 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).
Verifique se o nome da reivindicação e o tipo usados no elemento
<AdditionalClaims>
no XML da política de JWT de validação com falha correspondem ao nome e ao tipo da reivindicação identificados na mensagem de erro no passo 1. Por exemplo, a seguinte política especifica a reivindicação comoclaim
e o tipo comointeger
, o 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>
Se o tipo de reivindicação usado no elemento secundário
<Claim>
do elemento<AdditionalClaims>
não for um dos seguintes tipos:string
(predefinição),number
,boolean
oumap
Então, essa é a causa do erro.
No exemplo da política Verify JWT apresentado acima, o tipo
<Claim>
é especificado comointeger
no elemento<AdditionalClaims>
. Uma vez queinteger
não é um tipo suportado, recebe o erro:Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
Resolução
Certifique-se de que apenas os tipos de dados suportados string
(predefinição), number
, boolean
ou map
são usados no elemento filho <Claim>
do elemento <AdditionalClaims>
.
Para corrigir a política de JWT de validação de exemplo, 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 implementação do proxy de API através da IU ou da API Apigee 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
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o nome da reivindicação não for especificado no elemento subordinado <Claim>
do elemento <AdditionalClaims>
ou <AdditionalHeaders>
.
Diagnóstico
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
Examine o XML da política Verify JWT com falha e verifique se o nome da reivindicação está em falta no elemento secundário
<Claims>
no elemento<AdditionalClaims>
ou<AdditionalHeaders>
. Por exemplo, a seguinte política Verify JWT não especifica o nome da reivindicaçã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>
Uma vez que o nome
<Claim>
não está especificado no elemento<AdditionalClaims>
, 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 reivindicação é sempre especificado no elemento subordinado <Claim>
do elemento <AdditionalClaims>
ou <AdditionalHeaders>
.
Para corrigir a política de JWT de validação de exemplo, especifique o nome da reivindicação, conforme 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 implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o nome da reivindicação usado no elemento filho <Claim>
do elemento <AdditionalHeaders>
for um dos seguintes cabeçalhos JWT padrão:
alg
ou typ
Por exemplo, usar o nome da reivindicação alg
no elemento <AdditionalHeaders>
vai causar o erro.
Diagnóstico
Identifique o nome da política Verify JWT e o nome do cabeçalho 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 cabeçalho éalg
:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
Verifique se o nome do cabeçalho usado no elemento secundário
<Claim>
no elemento<AdditionalHeaders>
no XML da política de JWT de validação com falha corresponde ao nome do cabeçalho identificado na mensagem de erro no passo 1. Por exemplo, a seguinte política especifica o cabeçalho comoalg
, 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>
Se o nome do cabeçalho usado no elemento filho
<Claim>
do elemento<AdditionalClaims>
for um dos seguintes cabeçalhos JWT padrão:alg
outyp
Então, essa é a causa do erro.
No exemplo da política Verify JWT apresentado acima, o nome
<Claim>
é especificado comoalg
no elemento<AdditionalClaims>
, o que resulta 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 subordinado <Claim>
do elemento <AdditionalHeaders>
.
Para corrigir o exemplo da política Verify JWT, use o nome x5c
no elemento filho <Claim>
do elemento <AdditionalHeaders>
:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='x5c'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidTypeForAdditionalHeader
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
O erro ocorre se o tipo de reivindicação usado no elemento filho <Claim>
do elemento <AdditionalHeaders>
da política Verify JWT não for um dos seguintes tipos:
string
(predefinição), number
, boolean
ou map
Por exemplo, a utilização do tipo de reivindicação integer
no elemento <AdditionalHeaders>
vai causar o erro.
Diagnóstico
Identifique o nome da política Verify JWT, o nome da reivindicação e o tipo na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política Verify JWT é
JWT-Verify-RS256
, o nome da reivindicação éclaim
e o tipo éinteger
:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
Verifique se o nome da reivindicação e o tipo usados no elemento
<AdditionalClaims>
no XML da política de JWT de validação com falha correspondem ao nome e ao tipo da reivindicação identificados na mensagem de erro no passo 1. Por exemplo, a seguinte política especifica a reivindicação comoclaim
e o tipo de reivindicação comointeger,
, o 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='claim' ref='reqclaim' type='integer'/> </AdditionalHeaders> </VerifyJWT>
Se o tipo de reivindicação usado no elemento secundário
<Claim>
do elemento<AdditionalHeaders>
não for um dos seguintes tipos:string
(predefinição),number
,boolean
oumap
Então, essa é a causa do erro.
No exemplo da política Verify JWT apresentado acima, o tipo
<Claim>
no elemento<AdditionalHeaders>
é especificado comointeger
. Uma vez queinteger
não é um tipo suportado, recebe o erro:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
Resolução
Certifique-se de que apenas os tipos de dados suportados string
, number
, boolean
ou map
são usados no elemento filho <Claim>
do elemento <AdditionalHeaders>
.
Para corrigir a política de JWT de validação de exemplo, 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/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='boolean'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidValueOfArrayAttribute
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o valor do atributo de matriz no elemento secundário <Claim>
do elemento <AdditionalClaims>
ou <AdditionalHeaders>
não estiver definido como true
ou false
.
Por exemplo, definir o valor do atributo de matriz como yes
no elemento secundário <Claim>
do elemento <AdditionalClaims>
ou <AdditionalHeaders>
causa o erro.
Diagnóstico
Identifique o nome da política Verify JWT e o nome da reivindicaçã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).
Verifique se o nome da reivindicação usado no elemento secundário
<Claim>
no elemento<AdditionalHeaders>
no XML da política de JWT de validação com falha corresponde ao nome da reivindicação identificado na mensagem de erro no passo 1. Por exemplo, a seguinte política especifica o nome da reivindicação comoclaim
, 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='string' array='yes'/> </AdditionalClaims> </VerifyJWT>
Se o valor do atributo
array
no elemento secundário<Claim>
do elemento<AdditionalClaims>
não estiver definido comotrue
oufalse
, essa é a causa do erro.Uma vez que o atributo
array
no elemento secundário<Claim>
do elemento<AdditionalClaims>
está definido comoyes
no exemplo acima, recebe o erro:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
Resolução
Certifique-se de que o valor do atributo de matriz no elemento filho <Claim>
dos elementos <AdditionalClaims>
ou <AdditionalHeaders>
está definido como true
ou false
.
Para corrigir a política Verify JWT de exemplo apresentada acima, altere o valor do atributo de matriz para true
:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidValueForElement
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o valor especificado no elemento <Algorithm>
não for um dos seguintes valores:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
Por exemplo, especificar o valor do algoritmo como RS128
no elemento <Algorithm>
gera este erro.
Diagnóstico
Identifique o nome da política JWT de validação e o nome do elemento 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 éAlgorithm
:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Examine o XML da política Verify JWT com falha e verifique o valor especificado para o elemento
<Algorithm>
.Segue-se um exemplo de uma política de validação de JWT:
<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS128</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='status' type='string'>Development</Claim> </AdditionalClaims> </VerifyJWT>
Examine o valor especificado no elemento
<Algorithm>
. Se não for um dos seguintes valores:HS256
,HS384
,HS512
,RS256
,RS384
,RS512
Então, essa é a causa do erro.
No exemplo da política Verify JWT apresentado acima, o nome
<Algorithm>
é especificado comoHS128
. Como este não é um algoritmo suportado, recebe o erro:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Resolução
Certifique-se de que o valor especificado no elemento <Algorithm>
é um dos valores suportados:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
Para corrigir o exemplo da política Verify JWT apresentado acima, que usa o elemento <SecretKey>
, altere o valor de <Algorithm>
para HS25
. Tenha em atenção que, quando o elemento <SecretKey>
é usado, só pode usar algoritmos da 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 implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre quando o elemento <PublicKey>
não é usado com algoritmos da família RSA na política Verify JWT. Da mesma forma, o erro pode ocorrer se o elemento <SecretKey>
não for usado com algoritmos da família HS na política Verify JWT.
Por exemplo, não usar o elemento <PublicKey>
com algoritmos RSA Family gera este erro.
Diagnóstico
Identifique o nome da política Verify JWT e o nome do elemento em falta 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 em falta éPublicKey
:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Examine o XML da política de validação de JWT com falha e verifique se o elemento indicado na mensagem de erro está em falta. Se estiver em falta, é essa a causa do erro.
Por exemplo, a política seguinte mostra que o elemento
PublicKey
está em falta e que o elementoAlgorithm
usado éRS256
:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>
A política Verify JWT de exemplo usa algoritmos da família HS, mas o elemento obrigatório
PublicKey
está em falta, o que resulta no seguinte erro:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Resolução
Certifique-se de que o elemento <PublicKey>
obrigatório é usado com algoritmos RSA Family e que o elemento <SecretKey>
obrigatório é usado com algoritmos HS Family.
Para corrigir o exemplo da política Verify JWT apresentado acima, que usa o algoritmo RS256, adicione o elemento <PublicKey>
à política VerifyJWT:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Algorithm>RS256</Algorithm>
<PublicKey>
<Value ref="public.publickey"/>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidKeyConfiguration
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving RevisionInvalid Key configuration : policy(policy_name).
Exemplo de mensagem de erro
Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o elemento subordinado <Value>
ou o elemento subordinado obrigatório <JWKS>
não estiver definido nos elementos <PublicKey>
ou <SecretKey>
da política Verify JWT.
Diagnóstico
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).
Examine o XML da política Verify JWT com falhas e verifique se o elemento secundário
<Value>
ou o elemento secundário<JWKS>
não está definido nos elementos<PublicKey>
ou<SecretKey>
. Se o elemento secundário não estiver definido, essa é a causa do erro.Por exemplo, a seguinte política mostra que o elemento subordinado
<Value>
ou<JWKS>
não está definido no elemento<PublicKey>
:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <PublicKey> </PublicKey> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>
Uma vez que o elemento subordinado
<Value>
ou<JWKS>
não está definido no elemento<PublicKey>
da política Verify JWT, recebe o erro:Invalid Key configuration : policy(JWT-Verify-RS256).
Resolução
Certifique-se de que o elemento subordinado <Value>
ou <JWKS>
está sempre definido no elemento <PublicKey>
da política Verify JWT.
Para corrigir a política de JWT de validação de exemplo, defina o elemento filho <Value>
ou <JWKS>
no elemento <PublicKey>
, conforme mostrado abaixo:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<PublicKey>
<Value ref="public.publickey"/>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</PublicJWT>
EmptyElementForKeyConfiguration
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o atributo ref no elemento secundário <Value>
ou <JWKS>
do elemento <PublicKey>
não for especificado ou estiver vazio.
Por exemplo, se o elemento secundário <Value>
do elemento <PublicKey>
estiver vazio, ocorre o erro.
Diagnóstico
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).
Examine o XML da política de validação de JWT com falha e verifique se o elemento identificado no passo 1 está vazio. Se estiver vazio, é essa a causa do erro.
Por exemplo, a seguinte política mostra que o elemento subordinado
<Value>
do elemento<PublicKey>
está vazio:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <PublicKey> <Value/> </PublicKey> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>
Uma vez que o elemento secundário
<Value>
do elemento<PublicKey>
da política Verify JWT está vazio, recebe o erro:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
Resolução
Certifique-se de que o atributo ref no elemento subordinado <Value>
ou <JWKS>
do elemento <PublicKey>
é sempre especificado.
Para corrigir o exemplo da política Verify JWT, use a variável de fluxo public.publickey
no elemento filho <Value>
do elemento <PublicKey>
:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<PublicKey>
<Value ref="public.publickey"/>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidConfigurationForVerify
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o elemento <Id>
estiver definido no elemento <SecretKey>
de uma política VerifyJWT.
Por exemplo, se o elemento <Id>
estiver definido no elemento <SecretKey>
, ocorre este erro.
Diagnóstico
Identifique o nome da política Verify JWT e o nome do elemento 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 nome do elemento éSecretKey/Id
:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
Examine o XML da política Verify JWT com falhas e verifique se o elemento inválido identificado no passo 1 está definido. Se estiver definido, essa é a causa do erro.
Por exemplo, a seguinte política mostra que o elemento subordinado
<Id>
do elemento<SecretKey>
está definido:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <SecretKey> <Value ref="private.secretkey"/> <Id/> </SecretKey> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>
Uma vez que o elemento
<Id>
está definido no elemento<SecretKey>
da política Verify JWT, recebe o seguinte erro:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
Resolução
Certifique-se de que o elemento <Id>
nunca é definido no elemento <SecretKey>
de uma política de JWT de validação.
Para corrigir a política Verify JWT de exemplo, remova o elemento secundário <Id>
do elemento <SecretKey>
:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref='private.secretkey'/>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidEmptyElement
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving RevisionInvalid 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o elemento <Source>
da política Verify JWT estiver vazio. Se estiver presente, tem de ser definido com um nome de variável de fluxo.
Diagnóstico
Identifique o nome da política Verify JWT e o nome do elemento 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
:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Examine o XML da política de validação de JWT com falha e verifique se o elemento identificado no passo 1 está vazio. Se estiver vazio, é essa a causa do erro.
Por exemplo, a seguinte política mostra que o elemento
<Source>
está vazio:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <Source></Source> <PublicKey> <Value ref="public.publickey"/> </PublicKey> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>
Uma vez que o elemento
<Source>
da política Verify JWT está vazio, recebe o erro:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Resolução
Se o elemento <Source>
de uma política de JWT de verificação estiver presente, certifique-se de que especifica uma variável de fluxo.
Para corrigir a política de JWT de verificação de exemplo, use uma variável de fluxo válida no elemento <Source>
:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Source>jwt-variable</Source>
<PublicKey>
<Value ref="public.publickey"/>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidPublicKeyValue
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o valor usado no elemento filho <JWKS>
do elemento <PublicKey>
não estiver num formato válido, conforme especificado na RFC 7517.
Por exemplo, usar abc
como o valor do elemento filho <JWKS>
no elemento <PublicKey>
vai gerar este erro.
Diagnóstico
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).
Examine o XML da política de verificação de JWT com falha e verifique se o elemento identificado no passo 1 contém um valor num formato válido de acordo com a RFC 7517. Se o valor do elemento não estiver num formato válido, essa é a causa do erro.
<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <PublicKey> <JWKS>abc<JWKS> </PublicKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> </VerifyJWT>
Uma vez que o valor no elemento secundário
<JWKS>
do elemento<PublicKey>
não está num formato válido de acordo com a RFC 7517, recebe o seguinte erro:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
Resolução
Certifique-se de que o valor especificado no elemento filho <JWKS>
do elemento <PublicKey>
é uma string ou uma variável de fluxo válida num formato JWKS válido (RFC 7517).
Para corrigir a política Verify JWT de exemplo, altere o valor de <JWKS>
, conforme mostrado abaixo:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<PublicKey>
<JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
</VerifyJWT>
InvalidConfigurationForActionAndAlgorithm
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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).
Captura de ecrã de exemplo
Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:
Causa
Este erro ocorre se o elemento <PublicKey>
for usado com algoritmos da família HS e o elemento <SecretKey>
for usado com algoritmos da família RSA. O erro também ocorre se qualquer uma destas condições for verdadeira.
Por exemplo, usar o elemento <PublicKey>
com algoritmos da família HS gera este erro.
Diagnóstico
Identifique o nome da política Verify JWT, o nome do elemento e o nome da família de algoritmos na 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).
Verifique se o elemento e a família de algoritmos usados no XML da política Verify JWT com falha correspondem ao elemento e à família de algoritmos identificados na mensagem de erro no passo 1. Por exemplo, a política seguinte especifica o elemento como
PublicKey
e a família de algoritmos comoHMAC
, o que corresponde ao que está na mensagem de erro<VerifyJWT name="JWT-Verify-HS256"> <DisplayName>JWT Verify HS256</DisplayName> <Algorithm>HS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request.formparam.jwt</Source> <PublicKey> <Value ref="var-value"/> </PublicKey> <SecretKey> <Value ref="private.secretkey"/> </SecretKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> </VerifyJWT>
Se o valor do elemento
<Algorithm>
forHS256
, mas tiver usado<PublicKey>
, essa é a causa do erro.No exemplo da política Verify JWT apresentado acima, o elemento
<PublicKey>
é usado, mesmo que o<Algorithm>
esteja definido para um algoritmo familiar HS256, o que resulta no erro:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
Resolução
Certifique-se de que o elemento <PublicKey>
é usado apenas com algoritmos de famílias de RSA e que o elemento <SecretKey>
é usado apenas com algoritmos de famílias de HS.
Para corrigir a política Verify JWT de exemplo, use o <SecretKey>
da política VerifyJWT que usa o algoritmo HS256:
<VerifyJWT name="JWT-Verify-HS256">
<DisplayName>JWT Verify HS256</DisplayName>
<Algorithm>HS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Source>request.formparam.jwt</Source>
<SecretKey>
<Value ref="private.secretkey"/>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
</VerifyJWT>