Устранение неполадок при развертывании правила VerifyJWT

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

InvalidNameForAdditionalClaim

Сообщение об ошибке

Развертывание прокси-сервера 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>, является одним из следующих зарегистрированных названий:

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

Зарегистрированные утверждения указаны в RFC7519.

Например, если вы используете название заявки iss в элементе <AdditionalClaims>, возникнет ошибка.

диагностика;

  1. Определите название политики Verify JWT и название утверждения из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название утверждения – iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Убедитесь, что имя утверждения, используемое в элементе <AdditionalClaims> в XML-файле неудачной политики Verify 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>
    
  3. Если в дочернем элементе <Claim> элемента <AdditionalClaims> используется одно из следующих зарегистрированных названий утверждений:

    "kid", "iss", "sub", "aud", "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>.

Чтобы исправить проблему с примером правила Verify 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>

InvalidTypeForAdditionalClaim

Сообщение об ошибке

Развертывание прокси-сервера 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>, возникнет ошибка.

диагностика;

  1. Определите название правила Verify JWT, название утверждения и тип из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, название утверждения – claim, а тип – integer:.

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Убедитесь, что название и тип утверждения, используемые в элементе <AdditionalClaims> в XML-файле неудачной политики Verify 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>
    
  3. Если тип заявки, используемый в дочернем элементе <Claim> элемента <AdditionalClaims>, не относится к одному из следующих типов:

    string (по умолчанию), number, boolean или map

    то это и есть причина ошибки.

    В примере выше тип <Claim> указан как integer в элементе <AdditionalClaims>. Поскольку тип integer не поддерживается, вы получите сообщение об ошибке:

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

Разрешение

Убедитесь, что в дочернем элементе <Claim> элемента <AdditionalClaims> используются только поддерживаемые типы данных: string (по умолчанию), number, boolean или map.

Чтобы исправить пример правила Verify 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>.

диагностика;

  1. Определите название правила 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
    
  2. Проверьте 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>.

Чтобы исправить пример правила Verify 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>

InvalidNameForAdditionalHeader

Сообщение об ошибке

Развертывание прокси-сервера 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>, возникнет ошибка.

диагностика;

  1. Определите название политики Verify JWT и название заголовка из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название заголовка – alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Убедитесь, что название заголовка, используемое в дочернем элементе <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>
    
  3. Если в дочернем элементе <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>

InvalidTypeForAdditionalHeader

Сообщение об ошибке

Развертывание прокси-сервера 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>, возникнет ошибка.

диагностика;

  1. Определите название правила Verify JWT, название утверждения и тип из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, название утверждения – claim, а тип – integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Убедитесь, что название и тип утверждения, используемые в элементе <AdditionalClaims> в XML-файле неудачной политики Verify 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>
    
  3. Если тип заявки, используемый в дочернем элементе <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.

Чтобы исправить пример правила Verify 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>

InvalidValueOfArrayAttribute

Сообщение об ошибке

Развертывание прокси-сервера 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>.

диагностика;

  1. Определите название политики Verify JWT и название утверждения из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название утверждения – claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Убедитесь, что название утверждения, используемое в дочернем элементе <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>
    
  3. Если значение атрибута array в дочернем элементе <Claim> элемента <AdditionalClaims> не равно true или false, то это и является причиной ошибки.

    Поскольку в примере выше атрибут array в дочернем элементе <Claim> элемента <AdditionalClaims> имеет значение yes, возникает ошибка:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    

Разрешение

Убедитесь, что атрибуту array в дочернем элементе <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>

InvalidValueForElement

Сообщение об ошибке

Развертывание прокси-сервера 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

Например, если в элементе <Algorithm> указать значение алгоритма RS128, возникнет ошибка.

диагностика;

  1. Определите название политики Verify JWT и название элемента из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название элемента – Algorithm:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Проверьте XML-код правила Verify JWT и значение элемента <Algorithm>.

    Ниже приведен пример правила 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>
    
  3. Проверьте значение, указанное в элементе <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 Family.

<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

Сообщение об ошибке

Развертывание прокси-сервера 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 Family в правиле Verify JWT.

Например, эта ошибка возникает, если не использовать элемент <PublicKey> с семейными алгоритмами RSA.

диагностика;

  1. Определите название политики Verify JWT и название отсутствующего элемента из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название отсутствующего элемента – PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Проверьте 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>

InvalidKeyConfiguration

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

В интерфейсе Edge появится диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если дочерний элемент <Value> или обязательный дочерний элемент <JWKS> не определен в элементах <PublicKey> или <SecretKey> правила Verify JWT.

диагностика;

  1. Определите название правила Verify JWT по сообщению об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Проверьте 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>

EmptyElementForKeyConfiguration

Сообщение об ошибке

Развертывание прокси-сервера 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> пуст, возникает ошибка.

диагностика;

  1. Определите название политики Verify JWT и название элемента, который не указан в сообщении об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название элемента – PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Проверьте 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>

InvalidConfigurationForVerify

Сообщение об ошибке

Развертывание прокси-сервера 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>, возникает ошибка.

диагностика;

  1. Определите название политики Verify JWT и недопустимое название элемента из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название элемента – SecretKey/Id:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Проверьте 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>

InvalidEmptyElement

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision 
Invalid 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.

диагностика;

  1. Определите название политики Verify JWT и название пустого элемента из сообщения об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а название элемента – PublicKey/Value:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Проверьте 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>

InvalidPublicKeyValue

Сообщение об ошибке

Развертывание прокси-сервера 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.

Например, если в качестве значения дочернего элемента <JWKS> под элементом <PublicKey> используется abc, возникнет ошибка.

диагностика;

  1. Определите название правила Verify JWT и название элемента, содержащего недопустимое значение, по сообщению об ошибке. Например, в следующем сообщении об ошибке название правила Verify JWT – JWT-Verify-RS256, а элемент – PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Проверьте 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).

Чтобы исправить пример правила Verify 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>

InvalidConfigurationForActionAndAlgorithm

Сообщение об ошибке

Развертывание прокси-сервера 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 Family приводит к этой ошибке.

диагностика;

  1. Определите название политики 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).
    
  2. Убедитесь, что элемент и семейство алгоритмов, используемые в XML-файле неудачной политики Verify 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>
    
  3. Если значение элемента <Algorithm> – HS256, но вы использовали <PublicKey>, то это и является причиной ошибки.

    В примере выше элемент <PublicKey> используется в правиле Verify JWT, хотя для элемента <Algorithm> задан алгоритм семейства HS256. В результате возникает ошибка:

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

Разрешение

Убедитесь, что элемент <PublicKey> используется только с алгоритмами адаптивных поисковых объявлений для всей семьи, а элемент <SecretKey> – только с алгоритмами объявлений для всей семьи в верхней части страницы.

Чтобы исправить пример правила 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>