Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Инвалиднамефордополнительный запрос
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number Invalid name for additional claim : policy(policy_name) claim(claim_name).
Пример сообщения об ошибке
Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если имя утверждения, используемое в дочернем элементе <Claim>
элемента <AdditionalClaims>
, является одним из следующих зарегистрированных имен:
«малыш», «iss», «sub», «audi», «iat», «exp», «nbf», «jti»
Зарегистрированные утверждения указаны в RFC7519 .
Например, использование имени утверждения iss
в элементе <AdditionalClaims>
приведет к этой ошибке.
Диагностика
Определите имя политики Verify JWT и имя утверждения из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя утверждения —iss
:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
Убедитесь, что имя утверждения, используемое в элементе
<AdditionalClaims>
в неудачном XML-коде политики JWT, соответствует имени утверждения, указанному в сообщении об ошибке на шаге 1. Например, следующая политика определяет утверждение какiss
, что соответствует тому, что указано в ошибке. сообщение:<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>
Если имя утверждения, используемое в дочернем элементе
<Claim>
элемента<AdditionalClaims>
, является одним из следующих зарегистрированных имен:«малыш», «iss», «sub», «audi», «iat», «exp», «nbf», «jti»
тогда это причина ошибки.
В примере политики Verify JWT, показанном выше, имя
<Claim>
указано какiss
в элементе<AdditionalClaims>
, что приводит к ошибке:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
Разрешение
Не используйте зарегистрированные имена «kid», «iss», «sub», «aud», «iat», «exp», «nbf» или «jti» в дочернем элементе <Claim>
<AdditionalClaims>
элемент.
Чтобы исправить проблему с примером проверки политики JWT, измените имя утверждения на 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>
Инвалидтипефораддитиалклаим
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Saving Revision revision_number Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).
Пример сообщения об ошибке
Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Тип утверждения, используемого в дочернем элементе <Claim>
элемента <AdditionalClaims>
политики VerifyJWT, не является одним из следующих типов:
string
(по умолчанию), number
, boolean
или map
Например, использование integer
типа утверждения в элементе <AdditionalClaims>
приведет к ошибке.
Диагностика
Определите имя политики Verify JWT, имя утверждения и тип из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, имя утверждения —claim
, а тип —integer:
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
Убедитесь, что имя и тип утверждения, используемые в элементе
<AdditionalClaims>
в неудавшемся XML-коде политики JWT, соответствуют имени и типу утверждения, указанным в сообщении об ошибке на шаге 1. Например, следующая политика определяет утверждение какclaim
, а введитеinteger
, которое соответствует сообщению об ошибке:<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>
Если тип утверждения, используемый в дочернем элементе
<Claim>
элемента<AdditionalClaims>
, не является одним из следующих типов:string
(по умолчанию),number
,boolean
илиmap
тогда это причина ошибки.
В примере политики Verify JWT, показанном выше, тип
<Claim>
указан какinteger
в элементе<AdditionalClaims>
. Посколькуinteger
не является поддерживаемым типом, вы получаете сообщение об ошибке:Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
Разрешение
Убедитесь, что в дочернем элементе <Claim>
элемента <AdditionalClaims>
используются только поддерживаемые типы данных: string
(по умолчанию), number
, boolean
или map
.
Чтобы исправить пример проверки политики JWT, измените тип утверждения на 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
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.
Пример сообщения об ошибке
Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если имя утверждения не указано в дочернем элементе <Claim>
элемента <AdditionalClaims>
или <AdditionalHeaders>
.
Диагностика
Определите имя политики Verify JWT из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
Изучите неудачный XML-код политики Verify JWT и убедитесь, что имя утверждения отсутствует в дочернем элементе
<Claims>
в элементе<AdditionalClaims>
или<AdditionalHeaders>
. Например, следующая политика Verify JWT не указывает имя утверждения в элементе<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>
Поскольку имя
<Claim>
не указано в элементе<AdditionalClaims>
, вы получаете ошибку:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
Разрешение
Убедитесь, что имя утверждения всегда указано в дочернем элементе <Claim>
элемента <AdditionalClaims>
или <AdditionalHeaders>
.
Чтобы исправить пример проверки политики JWT, укажите имя утверждения, как показано ниже:
<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>
Инвалиднамефордополнительный заголовок
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number Invalid name for additional header : policy(policy_name)header(header_name).
Пример сообщения об ошибке
Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если имя утверждения, используемое в дочернем элементе <Claim>
элемента <AdditionalHeaders>
, является одним из следующих стандартных заголовков JWT:
alg
или typ
Например, использование имени утверждения alg
в элементе <AdditionalHeaders>
приведет к ошибке.
Диагностика
Определите имя политики Verify JWT и имя заголовка из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя заголовка —alg
:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
Убедитесь, что имя заголовка, используемое в дочернем элементе
<Claim>
в элементе<AdditionalHeaders>
в неудачном XML-коде политики Verify JWT, соответствует имени заголовка, указанному в сообщении об ошибке на шаге 1. Например, следующая политика определяет заголовок какalg
, что соответствует сообщению об ошибке:<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>
Если имя заголовка, используемое в дочернем элементе
<Claim>
элемента<AdditionalClaims>
, является одним из следующих стандартных заголовков JWT:alg
илиtyp
тогда это причина ошибки.
В примере политики Verify JWT, показанном выше, имя
<Claim>
указано какalg
в элементе<AdditionalClaims>
, что приводит к ошибке:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
Разрешение
Не используйте стандартные заголовки JWT alg
не typ
дочерний элемент <Claim>
элемента <AdditionalHeaders>
.
Чтобы исправить пример политики Verify JWT, используйте имя x5c
в дочернем элементе <Claim>
элемента <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>
Инвалидтипефораддишеналхедер
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).
Пример сообщения об ошибке
Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Ошибка возникнет, если тип утверждения, используемого в дочернем элементе <Claim>
элемента <AdditionalHeaders>
политики Verify JWT, не является одним из следующих типов:
string
(по умолчанию), number
, boolean
или map
Например, использование integer
типа утверждения в элементе <AdditionalHeaders>
приведет к ошибке.
Диагностика
Определите имя политики Verify JWT, имя утверждения и тип из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, имя утвержденияclaim
, а тип —integer
:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
Убедитесь, что имя и тип утверждения, используемые в элементе
<AdditionalClaims>
в неудавшемся XML-коде политики JWT, соответствуют имени и типу утверждения, указанным в сообщении об ошибке на шаге 1. Например, следующая политика определяет утверждение какclaim
, а тип утверждения какinteger,
что соответствует сообщению об ошибке:<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>
Если тип утверждения, используемый в дочернем элементе
<Claim>
элемента<AdditionalHeaders>
, не является одним из следующих типов:string
(по умолчанию),number
,boolean
илиmap
тогда это причина ошибки.
В примере политики Verify JWT, показанном выше, тип
<Claim>
в элементе<AdditionalHeaders>
указан какinteger
. Посколькуinteger
не является поддерживаемым типом, вы получаете сообщение об ошибке:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
Разрешение
Убедитесь, что в дочернем элементе <Claim>
элемента <AdditionalHeaders>
используются только поддерживаемые типы данных: string
, number
, boolean
или map
.
Чтобы исправить пример проверки политики JWT, измените тип утверждения на 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>
Неверное значениеOfArrayAttribute
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number Invalid value for array attribute: policy(policy_name)claim(claim_name).
Пример сообщения об ошибке
Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если для значения атрибута массива в дочернем элементе <Claim>
элемента <AdditionalClaims>
или <AdditionalHeaders>
не установлено значение true
или false
.
Например, установка значения yes
для атрибута массива в дочернем элементе <Claim>
элемента <AdditionalClaims>
или <AdditionalHeaders>
приводит к ошибке.
Диагностика
Определите имя политики Verify JWT и имя утверждения из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя утвержденияclaim
:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
Убедитесь, что имя утверждения, используемое в дочернем элементе
<Claim>
в элементе<AdditionalHeaders>
в неудачном XML-коде политики Verify JWT, соответствует имени утверждения, указанному в сообщении об ошибке на шаге 1. Например, следующая политика определяет имя утверждения какclaim
, что соответствует сообщению об ошибке:<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>
Если для значения атрибута
array
в дочернем элементе<Claim>
элемента<AdditionalClaims>
не установлено значениеtrue
илиfalse
, это и есть причина ошибки.Поскольку в приведенном выше примере для атрибута
array
в дочернем элементе<Claim>
элемента<AdditionalClaims>
установлено значениеyes
, вы получаете ошибку:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
Разрешение
Убедитесь, что для значения атрибута массива в дочернем элементе <Claim>
элементов <AdditionalClaims>
или <AdditionalHeaders>
установлено значение true
или false
.
Чтобы исправить приведенный выше пример политики Verify JWT, измените значение атрибута массива на 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>
Инвалидвалуефорэлемент
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Saving Revision Invalid Value for element : policy(policy_name) element(element_name).
Пример сообщения об ошибке
Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если значение, указанное в элементе <Algorithm>
, не является одним из следующих значений:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
Например, указание значения алгоритма как RS128
в элементе <Algorithm>
приводит к этой ошибке.
Диагностика
Определите имя политики Verify JWT и имя элемента из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя элемента —Algorithm
:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Изучите неудачный XML-код политики Verify JWT и проверьте значение, указанное для элемента
<Algorithm>
.Вот пример политики проверки 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>
Проверьте значение, указанное в элементе
<Algorithm>
. Если это не одно из следующих значений:HS256
,HS384
,HS512
,RS256
,RS384
,RS512
тогда это причина ошибки.
В примере политики Verify JWT, показанном выше, имя
<Algorithm>
указано какHS128
. Поскольку этот алгоритм не поддерживается, вы получаете сообщение об ошибке:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
Разрешение
Убедитесь, что значение, указанное в элементе <Algorithm>
, является одним из поддерживаемых значений:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
Чтобы исправить показанный выше пример политики Verify JWT, в которой используется элемент <SecretKey>
, измените значение <Algorithm>
на HS25
. Обратите внимание: при использовании элемента <SecretKey>
можно использовать только алгоритмы семейства 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>
Отсутствует элемент конфигурации
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision Missing configuration element : policy(policy_name) element(element_name).
Пример сообщения об ошибке
Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, когда элемент <PublicKey>
не используется с алгоритмами семейства RSA в политике Verify JWT. Аналогично, ошибка может возникнуть, если элемент <SecretKey>
не используется с алгоритмами семейства HS в политике Verify JWT.
Например, отсутствие использования элемента <PublicKey>
с алгоритмами семейства RSA приводит к этой ошибке.
Диагностика
Определите имя политики Verify JWT и имя отсутствующего элемента в сообщении об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя отсутствующего элемента —PublicKey
:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Изучите неудачный XML-код политики Verify JWT и убедитесь, что элемент, указанный в сообщении об ошибке, отсутствует. Если он отсутствует, то это и есть причина ошибки.
Например, следующая политика показывает, что
PublicKey
отсутствует и используетсяAlgorithm
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>
В примере политики Verify JWT используются алгоритмы семейства HS, но отсутствует обязательный элемент
PublicKey
, что приводит к ошибке:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
Разрешение
Убедитесь, что обязательный элемент <PublicKey>
используется с алгоритмами семейства RSA, а обязательный элемент <SecretKey>
используется с алгоритмами семейства HS.
Чтобы исправить приведенный выше пример политики Verify JWT, в которой используется алгоритм RS256, добавьте элемент <PublicKey>
в политику 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>
ИнвалидКейКонфигурация
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving RevisionInvalid Key configuration : policy(policy_name).
Пример сообщения об ошибке
Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если дочерний элемент <Value>
или обязательный дочерний элемент <JWKS>
не определен в элементах <PublicKey>
или <SecretKey>
политики Verify JWT.
Диагностика
Определите имя политики Verify JWT из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
:Invalid Key configuration : policy(JWT-Verify-RS256).
Изучите неудачный XML-код политики Verify JWT и убедитесь, что дочерний элемент
<Value>
или дочерний элемент<JWKS>
не определен в элементах<PublicKey>
или<SecretKey>
. Если дочерний элемент не определен, это причина ошибки.Например, следующая политика показывает, что дочерний элемент
<Value>
или<JWKS>
не определен в элементе<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>
Поскольку дочерний элемент
<Value>
или<JWKS>
не определен в элементе<PublicKey>
политики Verify JWT, вы получаете сообщение об ошибке:Invalid Key configuration : policy(JWT-Verify-RS256).
Разрешение
Убедитесь, что дочерний элемент <Value>
или <JWKS>
всегда определен в элементе <PublicKey>
политики Verify JWT.
Чтобы исправить пример политики Verify JWT, определите дочерний элемент <Value>
или <JWKS>
в элементе <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>
</PublicJWT>
ПустойЭлементФорКиКонфигурация
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Saving Revision revision_number Empty Element for Key Configuration : policy(policy_name) element(element_name).
Пример сообщения об ошибке
Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если атрибут ref в дочернем элементе <Value>
или <JWKS>
элемента <PublicKey>
не указан или пуст.
Например, если дочерний элемент <Value>
элемента <PublicKey>
пуст, возникает ошибка.
Диагностика
Определите имя политики Verify JWT и имя элемента, которое пусто в сообщении об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя элемента —PublicKey/Value
:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
Изучите неудачный XML-код политики Verify JWT и убедитесь, что элемент, указанный на шаге 1, пуст. Если он пуст, то это и есть причина ошибки.
Например, следующая политика показывает, что дочерний элемент
<Value>
элемента<PublicKey>
пуст:<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>
Поскольку дочерний элемент
<Value>
элемента<PublicKey>
политики Verify JWT пуст, вы получаете сообщение об ошибке:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
Разрешение
Убедитесь, что атрибут ref в дочернем элементе <Value>
или <JWKS>
элемента <PublicKey>
всегда указан.
Чтобы исправить пример политики Verify JWT, используйте переменную потока public.publickey
в дочернем элементе <Value>
элемента <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>
Инвалидконфигуратионфорверифи
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Saving Revision revision_number Invalid configuration element for verify : policy(policy_name) element(element_name).
Пример сообщения об ошибке
Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если элемент <Id>
определен в элементе <SecretKey>
политики VerifyJWT.
Например, если элемент <Id>
определен в элементе <SecretKey>
, возникает эта ошибка.
Диагностика
Определите имя политики Verify JWT и недопустимое имя элемента из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя элемента —SecretKey/Id
:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
Изучите неудачный XML-код политики Verify JWT и убедитесь, что определен недопустимый элемент, указанный на шаге 1. Если он определен, то это и есть причина ошибки.
Например, следующая политика показывает, что определен дочерний элемент
<Id>
элемента<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>
Поскольку элемент
<Id>
определен в элементе<SecretKey>
политики Verify JWT, вы получаете сообщение об ошибке:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
Разрешение
Убедитесь, что элемент <Id>
никогда не определен в элементе <SecretKey>
политики Verify JWT.
Чтобы исправить пример политики Verify JWT, удалите дочерний элемент <Id>
из элемента <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>
Инвалидпустойэлемент
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving RevisionInvalid empty element : policy(policy_name) element(element_name).
Пример сообщения об ошибке
Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если элемент <Source>
политики Verify JWT пуст. Если он присутствует, он должен быть определен с именем переменной потока Edge.
Диагностика
Определите имя политики Verify JWT и имя пустого элемента из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а имя элемента —PublicKey/Value
:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Изучите неудачный XML-код политики Verify JWT и убедитесь, что элемент, указанный на шаге 1, пуст. Если он пуст, то это и есть причина ошибки.
Например, следующая политика показывает, что элемент
<Source>
пуст:<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>
Поскольку элемент
<Source>
политики Verify JWT пуст, вы получаете сообщение об ошибке:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
Разрешение
Если элемент <Source>
политики Verify JWT присутствует, убедитесь, что он указывает переменную потока.
Чтобы исправить пример политики Verify JWT, используйте допустимую переменную потока в элементе <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>
Неверное значение публичного ключа
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).
Пример сообщения об ошибке
Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если значение, используемое в дочернем элементе <JWKS>
элемента <PublicKey>
, не имеет допустимого формата, указанного в RFC 7517 .
Например, использование abc
в качестве значения дочернего элемента <JWKS>
в элементе <PublicKey>
приведет к этой ошибке.
Диагностика
Определите имя политики Verify JWT и имя элемента, содержащего недопустимое значение, из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-RS256
, а элемент —PublicKey/JWKS
:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
Изучите неудачный XML-код политики Verify JWT и убедитесь, что элемент, указанный на шаге 1, содержит значение в допустимом формате согласно RFC 7517 . Если значение элемента имеет недопустимый формат, это и есть причина ошибки.
<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>
Поскольку значение в дочернем элементе
<JWKS>
элемента<PublicKey>
имеет недопустимый формат согласно RFC 7517 , вы получаете сообщение об ошибке:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
Разрешение
Убедитесь, что значение, указанное в дочернем элементе <JWKS>
элемента <PublicKey>
, является допустимой строкой или переменной потока в допустимом формате JWKS ( RFC 7517 ).
Чтобы исправить пример проверки политики JWT, измените значение <JWKS>
, как показано ниже:
<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>
Инвалидконфигуратионфорактионандалгоритм
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
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>).
Пример сообщения об ошибке
Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
Пример скриншота
В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:
Причина
Эта ошибка возникает, если элемент <PublicKey>
используется с алгоритмами семейства HS, а элемент <SecretKey>
используется с алгоритмами семейства RSA. Ошибка также возникнет, если любое из этих условий истинно.
Например, использование элемента <PublicKey>
с алгоритмами семейства HS приводит к этой ошибке.
Диагностика
Определите имя политики Verify JWT, имя элемента и имя семейства алгоритмов из сообщения об ошибке. Например, в следующем сообщении об ошибке имя политики Verify JWT —
JWT-Verify-HS256
, имя элемента —PublicKey
, а семейство алгоритмов —RSA
:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
Убедитесь, что элемент и семейство алгоритмов, использованные в сбойном XML-файле политики JWT, соответствуют элементу и семейству алгоритмов, указанным в сообщении об ошибке на шаге 1. Например, в следующей политике элемент указан как
PublicKey
, а семейство алгоритмов — какHMAC
. что соответствует тому, что в сообщении об ошибке<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>
Если значение элемента
<Algorithm>
—HS256
, но вы использовали<PublicKey>
, то это причина ошибки.В примере политики Verify JWT, показанном выше, элемент
<PublicKey>
используется, хотя для<Algorithm>
установлен алгоритм семейства HS256, что приводит к ошибке:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
Разрешение
Убедитесь, что элемент <PublicKey>
используется только с алгоритмами семейства RSA, а элемент <SecretKey>
используется только с алгоритмами семейства HS.
Чтобы исправить пример политики Verify JWT, используйте <SecretKey>
из политики VerifyJWT, которая использует алгоритм 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>