Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
InvalidNameForAdditionalClaim
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Invalid name for additional claim : policy(policy_name) claim(claim_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el nombre de la reclamación utilizada en el elemento secundario <Claim>
del elemento <AdditionalClaims>
es uno de los siguientes nombres registrados:
"kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"
Las reclamaciones registradas se especifican en RFC 7519.
Por ejemplo, si se usa el nombre de la reclamación iss
en el elemento <AdditionalClaims>
, se producirá este error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre de la reclamación en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre de la reclamación esiss
:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
Verifica que el nombre de la reclamación usado en el elemento
<AdditionalClaims>
del XML de la política Verify JWT fallida coincida con el nombre de la reclamación identificado en el mensaje de error del paso 1. Por ejemplo, la siguiente política especifica la reclamación comoiss
, que coincide con lo que aparece en el mensaje de error:<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>
Si el nombre de la reclamación que se usa en el elemento secundario
<Claim>
del elemento<AdditionalClaims>
es uno de los siguientes nombres registrados:"kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"
entonces, esa es la causa del error.
En el ejemplo de política Verify JWT que se muestra arriba, el nombre
<Claim>
se especifica comoiss
en el elemento<AdditionalClaims>
, lo que provoca el siguiente error:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
Resolución
No utilice ninguno de los nombres registrados "kid", "iss", "sub", "aud", "iat", "exp", "nbf" o "jti" en el elemento secundario <Claim>
del elemento <AdditionalClaims>
.
Para corregir el problema con la política Verify JWT de ejemplo, cambia el nombre de la reclamación a 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
El tipo de la reclamación utilizada en el elemento secundario <Claim>
del elemento <AdditionalClaims>
de la política VerifyJWT no es uno de los siguientes tipos:
string
(predeterminada), number
, boolean
o map
Por ejemplo, si se usa el tipo de reclamación integer
en el elemento <AdditionalClaims>
, se producirá un error.
Diagnóstico
Identifica el nombre de la política Verify JWT, el nombre de la reclamación y el tipo a partir del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
, el nombre de la reclamación esclaim
y el tipo esinteger:
.Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
Verifica que el nombre y el tipo de la reclamación que se usan en el elemento
<AdditionalClaims>
del archivo XML de la política Verify JWT fallida coincidan con el nombre y el tipo de la reclamación que se han identificado en el mensaje de error del paso 1. Por ejemplo, la siguiente política especifica la reclamación comoclaim
y el tipo comointeger
, que coincide con lo que aparece en el mensaje de error:<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>
Si el tipo de reclamación utilizado en el elemento secundario
<Claim>
del elemento<AdditionalClaims>
no es uno de los siguientes tipos:string
(predeterminada),number
,boolean
omap
entonces, esa es la causa del error.
En el ejemplo de política de verificación de JWT que se muestra arriba, el tipo
<Claim>
se especifica comointeger
en el elemento<AdditionalClaims>
. Comointeger
no es un tipo admitido, aparece el siguiente error:Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
Resolución
Asegúrate de que solo se usen los tipos de datos admitidos string
(predeterminado), number
, boolean
o map
en el elemento secundario <Claim>
del elemento <AdditionalClaims>
.
Para corregir la política de verificación de JWT de ejemplo, cambia el tipo de reclamación a 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.
Ejemplo de mensaje de error
Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el nombre de la reclamación no se especifica en el elemento secundario <Claim>
del elemento <AdditionalClaims>
o <AdditionalHeaders>
.
Diagnóstico
Identifica el nombre de la política Verify JWT en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
Examina el archivo XML de la política Verify JWT que ha fallado y comprueba que falta el nombre de la reclamación en el elemento secundario
<Claims>
del elemento<AdditionalClaims>
o<AdditionalHeaders>
. Por ejemplo, la siguiente política Verify JWT no especifica el nombre de la reclamación en el 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 el nombre
<Claim>
no se ha especificado en el elemento<AdditionalClaims>
, se muestra el siguiente error:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
Resolución
Asegúrate de que el nombre de la reclamación siempre se especifique en el elemento secundario <Claim>
del elemento <AdditionalClaims>
o <AdditionalHeaders>
.
Para corregir la política Verify JWT de ejemplo, especifica el nombre de la reclamación como se muestra a continuación:
<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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Invalid name for additional header : policy(policy_name)header(header_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el nombre de la reclamación utilizada en el elemento secundario <Claim>
del elemento <AdditionalHeaders>
es uno de los siguientes encabezados JWT estándar:
alg
o typ
Por ejemplo, si se usa el nombre de reclamación alg
en el elemento <AdditionalHeaders>
, se producirá un error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre del encabezado en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre del encabezado esalg
:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
Verifica que el nombre del encabezado usado en el elemento secundario
<Claim>
del elemento<AdditionalHeaders>
del XML de la política Verify JWT fallida coincida con el nombre del encabezado identificado en el mensaje de error del paso 1. Por ejemplo, la siguiente política especifica la cabecera comoalg
, que coincide con lo que aparece en el mensaje de error:<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>
Si el nombre del encabezado utilizado en el elemento secundario
<Claim>
del elemento<AdditionalClaims>
es uno de los siguientes encabezados JWT estándar:alg
otyp
entonces, esa es la causa del error.
En el ejemplo de política Verify JWT que se muestra arriba, el nombre
<Claim>
se especifica comoalg
en el elemento<AdditionalClaims>
, lo que provoca el siguiente error:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
Resolución
No uses los encabezados JWT estándar alg
o typ
en el elemento secundario <Claim>
del elemento <AdditionalHeaders>
.
Para corregir la política de ejemplo Verify JWT, usa el nombre x5c
en el elemento secundario <Claim>
del 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Se producirá un error si el tipo de reclamación utilizado en el elemento secundario <Claim>
del elemento <AdditionalHeaders>
de la política Verify JWT no es uno de los siguientes tipos:
string
(predeterminada), number
, boolean
o map
Por ejemplo, si se usa el tipo de reclamación integer
en el elemento <AdditionalHeaders>
, se producirá un error.
Diagnóstico
Identifica el nombre de la política Verify JWT, el nombre de la reclamación y el tipo a partir del mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
, el nombre de la reclamación esclaim
y el tipo esinteger
:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
Verifica que el nombre y el tipo de la reclamación que se usan en el elemento
<AdditionalClaims>
del archivo XML de la política Verify JWT fallida coincidan con el nombre y el tipo de la reclamación que se han identificado en el mensaje de error del paso 1. Por ejemplo, la siguiente política especifica la reclamación comoclaim
y el tipo de reclamación comointeger,
, que coincide con lo que aparece en el mensaje de error:<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>
Si el tipo de reclamación utilizado en el elemento secundario
<Claim>
del elemento<AdditionalHeaders>
no es uno de los siguientes tipos:string
(predeterminada),number
,boolean
omap
entonces, esa es la causa del error.
En el ejemplo de política Verify JWT que se muestra arriba, el tipo
<Claim>
del elemento<AdditionalHeaders>
se especifica comointeger
. Comointeger
no es un tipo admitido, aparece el siguiente error:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
Resolución
Asegúrate de que solo se usen los tipos de datos admitidos string
, number
, boolean
o map
en el elemento secundario <Claim>
del elemento <AdditionalHeaders>
.
Para corregir la política de verificación de JWT de ejemplo, cambia el tipo de reclamación a 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Invalid value for array attribute: policy(policy_name)claim(claim_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el valor del atributo de matriz del elemento secundario <Claim>
del elemento <AdditionalClaims>
o <AdditionalHeaders>
no es true
ni false
.
Por ejemplo, si se asigna el valor yes
al atributo de matriz del elemento secundario <Claim>
del elemento <AdditionalClaims>
o <AdditionalHeaders>
, se produce un error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre de la reclamación en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre de la reclamación esclaim
:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
Verifica que el nombre de la reclamación usado en el elemento secundario
<Claim>
del elemento<AdditionalHeaders>
del XML de la política Verify JWT fallida coincida con el nombre de la reclamación identificado en el mensaje de error del paso 1. Por ejemplo, la siguiente política especifica el nombre de la reclamación comoclaim
, que coincide con lo que aparece en el mensaje de error:<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>
Si el valor del atributo
array
del elemento secundario<Claim>
del elemento<AdditionalClaims>
no estrue
nifalse
, esa es la causa del error.Como el atributo
array
del elemento secundario<Claim>
del elemento<AdditionalClaims>
se ha definido comoyes
en el ejemplo anterior, se muestra el siguiente error:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
Resolución
Comprueba que el valor del atributo de matriz del elemento secundario <Claim>
de los elementos <AdditionalClaims>
o <AdditionalHeaders>
se haya definido como true
o false
.
Para corregir la política Verify JWT de ejemplo que se muestra arriba, cambia el valor del atributo de matriz a 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision Invalid Value for element : policy(policy_name) element(element_name).
Ejemplo de mensaje de error
Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el valor especificado en el elemento <Algorithm>
no es uno de los siguientes:
HS256
, HS384
, HS512
, RS256
, RS384
y RS512
Por ejemplo, si especifica el valor del algoritmo como RS128
en el elemento <Algorithm>
, se producirá este error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre del elemento en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre del elemento esAlgorithm
:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Examina el XML de la política Verify JWT que ha fallado y comprueba el valor especificado para el elemento
<Algorithm>
.A continuación se muestra un ejemplo de política Verify 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 el valor especificado en el elemento
<Algorithm>
. Si no es uno de los siguientes valores:HS256
,HS384
,HS512
,RS256
,RS384
yRS512
entonces, esa es la causa del error.
En el ejemplo de política Verify JWT que se muestra arriba, el nombre
<Algorithm>
se especifica comoHS128
. Como no se trata de un algoritmo admitido, se produce el siguiente error:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Resolución
Compruebe que el valor especificado en el elemento <Algorithm>
sea uno de los valores admitidos:
HS256
, HS384
, HS512
, RS256
, RS384
y RS512
Para corregir la política Verify JWT de ejemplo que se muestra arriba, que usa el elemento <SecretKey>
, cambia el valor de <Algorithm>
a HS25
. Ten en cuenta que, cuando se usa el elemento <SecretKey>
, solo puedes usar algoritmos de la familia 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision Missing configuration element : policy(policy_name) element(element_name).
Ejemplo de mensaje de error
Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce cuando el elemento <PublicKey>
no se usa con algoritmos de la familia RSA en la política Verify JWT. Del mismo modo, el error puede producirse si el elemento <SecretKey>
no se usa con los algoritmos de la familia HS en la política Verify JWT.
Por ejemplo, si no se usa el elemento <PublicKey>
con los algoritmos de la familia RSA, se produce este error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre del elemento que falta en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre del elemento que falta esPublicKey
:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Examina el XML de la política Verify JWT que ha fallado y comprueba que falta el elemento indicado en el mensaje de error. Si falta, esa es la causa del error.
Por ejemplo, la siguiente política muestra que falta el
PublicKey
y que elAlgorithm
utilizado esRS256
:<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>
En el ejemplo de política Verify JWT se usan algoritmos de la familia HS, pero falta el elemento obligatorio
PublicKey
, lo que provoca el siguiente error:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Resolución
Asegúrate de que el elemento obligatorio <PublicKey>
se usa con los algoritmos de la familia RSA y de que el elemento obligatorio <SecretKey>
se usa con los algoritmos de la familia HS.
Para corregir el ejemplo de política Verify JWT que se muestra arriba, que usa el algoritmo RS256, añade el elemento <PublicKey>
a la 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving RevisionInvalid Key configuration : policy(policy_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el elemento secundario <Value>
o el elemento secundario obligatorio <JWKS>
no se definen en los elementos <PublicKey>
o <SecretKey>
de la política Verify JWT.
Diagnóstico
Identifica el nombre de la política Verify JWT en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
:Invalid Key configuration : policy(JWT-Verify-RS256).
Examina el XML de la política Verify JWT fallida y comprueba si el elemento secundario
<Value>
o el elemento secundario<JWKS>
no están definidos en los elementos<PublicKey>
o<SecretKey>
. Si el elemento secundario no está definido, esa es la causa del error.Por ejemplo, la siguiente política muestra que el elemento secundario
<Value>
o<JWKS>
no está definido en el 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>
Como el elemento secundario
<Value>
o<JWKS>
no está definido en el elemento<PublicKey>
de la política Verify JWT, se produce el siguiente error:Invalid Key configuration : policy(JWT-Verify-RS256).
Resolución
Asegúrate de que el elemento secundario <Value>
o <JWKS>
siempre esté definido en el elemento <PublicKey>
de la política Verify JWT.
Para corregir el ejemplo de política Verify JWT, define el elemento secundario <Value>
o <JWKS>
en el elemento <PublicKey>
, tal como se muestra a continuación:
<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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Empty Element for Key Configuration : policy(policy_name) element(element_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el atributo ref del elemento secundario <Value>
o <JWKS>
del elemento <PublicKey>
no se especifica o está vacío.
Por ejemplo, si el elemento secundario <Value>
del elemento <PublicKey>
está vacío, se produce un error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre del elemento que está vacío en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre del elemento esPublicKey/Value
:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
Examina el archivo XML de la política Verify JWT que ha fallado y comprueba que el elemento identificado en el paso 1 está vacío. Si está vacío, ese es el motivo del error.
Por ejemplo, la siguiente política muestra que el elemento secundario
<Value>
del elemento<PublicKey>
está vacío:<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>
Como el elemento secundario
<Value>
del elemento<PublicKey>
de la política Verify JWT está vacío, se produce el siguiente error:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
Resolución
Asegúrate de que el atributo ref del elemento secundario <Value>
o <JWKS>
del elemento <PublicKey>
siempre esté especificado.
Para corregir la política Verify JWT del ejemplo, usa la variable de flujo public.publickey
en el elemento secundario <Value>
del 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Invalid configuration element for verify : policy(policy_name) element(element_name).
Ejemplo de mensaje de error
Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el elemento <Id>
se define en el elemento <SecretKey>
de una política VerifyJWT.
Por ejemplo, si el elemento <Id>
se define en el elemento <SecretKey>
, se produce este error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre del elemento no válido en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre del elemento esSecretKey/Id
:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
Examina el archivo XML de la política Verify JWT que ha fallado y comprueba que el elemento no válido identificado en el paso 1 esté definido. Si se ha definido, esa es la causa del error.
Por ejemplo, en la siguiente política se muestra que se ha definido el elemento secundario
<Id>
del elemento<SecretKey>
:<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>
Como el elemento
<Id>
se define en el elemento<SecretKey>
de la política Verify JWT, se produce el siguiente error:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
Resolución
Asegúrate de que el elemento <Id>
nunca se defina en el elemento <SecretKey>
de una política Verify JWT.
Para corregir la política de ejemplo Verify JWT, quita el elemento secundario <Id>
del 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving RevisionInvalid empty element : policy(policy_name) element(element_name).
Ejemplo de mensaje de error
Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el elemento <Source>
de la política Verify JWT está vacío. Si está presente, debe definirse con un nombre de variable de flujo.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre del elemento vacío en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el nombre del elemento esPublicKey/Value
:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Examina el archivo XML de la política Verify JWT que ha fallado y comprueba que el elemento identificado en el paso 1 está vacío. Si está vacío, ese es el motivo del error.
Por ejemplo, la siguiente política muestra que el elemento
<Source>
está vacío:<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>
Como el elemento
<Source>
de la política Verify JWT está vacío, se produce el siguiente error:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Resolución
Si el elemento <Source>
de una política Verify JWT está presente, asegúrate de que especifique una variable de flujo.
Para corregir la política Verify JWT de ejemplo, usa una variable de flujo válida en el 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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Saving Revision revision_number Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).
Ejemplo de mensaje de error
Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el valor usado en el elemento secundario <JWKS>
del elemento <PublicKey>
no tiene un formato válido, tal como se especifica en RFC 7517.
Por ejemplo, si usa abc
como valor del elemento secundario <JWKS>
del elemento <PublicKey>
, se producirá este error.
Diagnóstico
Identifica el nombre de la política Verify JWT y el nombre del elemento que contiene un valor no válido en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-RS256
y el elemento esPublicKey/JWKS
:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
Examina el archivo XML de la política Verify JWT que ha fallado y comprueba que el elemento identificado en el paso 1 contiene un valor en un formato válido según el RFC 7517. Si el valor del elemento no tiene un formato válido, esa es la causa del error.
<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>
Como el valor del elemento secundario
<JWKS>
del elemento<PublicKey>
no tiene un formato válido según el RFC 7517, se muestra el siguiente error:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
Resolución
Asegúrate de que el valor especificado en el elemento secundario <JWKS>
del elemento <PublicKey>
sea una cadena o una variable de flujo válidas en un formato JWKS válido (RFC 7517).
Para corregir la política Verify JWT de ejemplo, cambia el valor de <JWKS>
como se muestra a continuación:
<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
Mensaje de error
La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
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>).
Ejemplo de mensaje de error
Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
Captura de pantalla de ejemplo
En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:
Causa
Este error se produce si el elemento <PublicKey>
se usa con algoritmos de la familia HS y el elemento <SecretKey>
se usa con algoritmos de la familia RSA. El error también se producirá si se cumple alguna de estas condiciones.
Por ejemplo, si se usa el elemento <PublicKey>
con algoritmos de la familia HS, se produce este error.
Diagnóstico
Identifica el nombre de la política Verify JWT, el nombre del elemento y el nombre de la familia del algoritmo en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política Verify JWT es
JWT-Verify-HS256
, el nombre del elemento esPublicKey
y la familia de algoritmos esRSA
:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
Verifica que el elemento y la familia de algoritmos utilizados en el XML de la política Verify JWT fallida coincidan con el elemento y la familia de algoritmos identificados en el mensaje de error del paso 1. Por ejemplo, la siguiente política especifica el elemento como
PublicKey
y la familia de algoritmos comoHMAC
, que coincide con lo que aparece en el mensaje de error.<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>
Si el valor del elemento
<Algorithm>
esHS256
, pero ha usado<PublicKey>
, ese es el motivo del error.En la política Verify JWT de ejemplo que se muestra arriba, se usa el elemento
<PublicKey>
aunque el<Algorithm>
se haya definido en el algoritmo de la familia HS256, lo que provoca el siguiente error:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
Resolución
Asegúrese de que el elemento <PublicKey>
se utilice solo con algoritmos de la familia RSA y de que el elemento <SecretKey>
se utilice solo con algoritmos de la familia HS.
Para corregir la política Verify JWT de ejemplo, usa el <SecretKey>
de la política VerifyJWT que usa el 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>