Устранение ошибок при развертывании политики GenerateJWT

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

InvalidNameForAdditionalClaim

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

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

Error Saving Revision 2
Invalid name for additional claim : policy(policy_name) claim(claim_name).

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

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если имя утверждения, используемого в дочернем элементе <Claim> элемента <AdditionalClaims> , совпадает с одним из следующих зарегистрированных имен:

«малыш», «iss», «sub», «audi», «iat», «exp», «nbf», «jti»

Зарегистрированные пункты формулы изобретения указаны в RFC7519 .

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

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя утверждения. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя утверждения — iss :

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Убедитесь, что имя утверждения, используемое в элементе <AdditionalClaims> в XML-файле политики генерации JWT, которая завершилась неудачей, совпадает с именем утверждения, указанным в сообщении об ошибке (шаг 1 выше). Например, следующая политика указывает утверждение как iss , что соответствует содержимому сообщения об ошибке:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. Если имя утверждения, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , совпадает с одним из следующих зарегистрированных имен:

    «малыш», «iss», «sub», «audi», «iat», «exp», «nbf», «jti»

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

    В приведенном выше примере генерации политики JWT имя <Claim> указано как iss в элементе <AdditionalClaims> , что приводит к ошибке:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    

Разрешение

Не используйте зарегистрированные имена "kid", "iss", "sub", "aud", "iat", "exp", "nbf" или "jti" в дочернем элементе <Claim> элемента <AdditionalClaims> .

Чтобы исправить приведенный выше пример генерации политики JWT, измените имя утверждения на status :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidTypeForAdditionalClaim

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

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

Error Saving Revision 2
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-Generate-HS256) claim(claim) type(integer).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если тип утверждения, используемого в дочернем элементе <Claim> элемента <AdditionalClaims> политики GenerateJWT, не относится к одному из следующих типов:

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

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

Диагноз

  1. В сообщении об ошибке необходимо определить имя политики генерации JWT, имя утверждения и тип утверждения. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , имя утверждения — claim , а тип утверждения — integer :

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Убедитесь, что имя утверждения и тип, используемые в элементе <AdditionalClaims> в XML-файле политики генерации JWT, которая завершилась неудачей, соответствуют имени утверждения и типу, указанным в сообщении об ошибке на шаге 1. Например, следующая политика указывает утверждение как claim и тип как integer , что соответствует содержимому сообщения об ошибке:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. Если тип утверждения, используемый в дочернем элементе <Claim> элемента <AdditionalClaims> , не относится к одному из следующих типов:

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

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

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

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

Разрешение

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

Чтобы исправить приведенный выше пример генерации политики JWT, измените тип утверждения на boolean .

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

MissingNameForAdditionalClaim

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

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

Error Saving Revision 2
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-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если имя утверждения не указано в дочернем элементе <Claim> элемента <AdditionalClaims> или <AdditionalHeaders> .

Диагноз

  1. Найдите название политики генерации JWT в сообщении об ошибке. Например, в следующем сообщении об ошибке название политики генерации JWT — JWT-Generate-HS256 :

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Изучите XML-файл политики генерации JWT, в котором произошла ошибка, и проверьте, отсутствует ли имя утверждения в дочернем элементе <Claims> под элементом <AdditionalClaims> или <AdditionalHeaders> . Например, в следующей политике генерации JWT имя утверждения не указано в элементе <AdditionalClaims> :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    

    Поскольку имя <Claim> не указано в элементе <AdditionalClaims> , возникает ошибка:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    

Разрешение

Убедитесь, что имя утверждения всегда указывается в дочернем элементе <Claim> элемента <AdditionalClaims> или <AdditionalHeaders> .

Чтобы исправить приведенный выше пример генерации политики JWT, укажите имя утверждения, как показано ниже:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidNameForAdditionalHeader

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

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

Error Saving Revision 2
Invalid name for additional header : policy(policy_name)header(header_name).

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

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если имя утверждения, используемого в дочернем элементе <Claim> элемента <AdditionalHeaders> , совпадает с одним из следующих стандартных заголовков JWT:

alg или typ

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

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя заголовка. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя заголовка — alg :

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Убедитесь, что имя заголовка, используемое в дочернем элементе <Claim> под элементом <AdditionalHeaders> в XML-файле политики генерации JWT, которая завершилась с ошибкой, совпадает с именем заголовка, указанным в сообщении об ошибке на шаге 1. Например, следующая политика указывает заголовок как alg , что соответствует сообщению об ошибке:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. Если имя заголовка, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , является одним из следующих стандартных заголовков JWT:

    alg или typ

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

    В приведенном выше примере генерации политики JWT имя <Claim> указано как alg в элементе <AdditionalClaims> , что приводит к ошибке:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    

Разрешение

Не используйте стандартные alg или typ заголовков JWT в дочернем элементе <Claim> элемента <AdditionalHeaders> .

Чтобы исправить приведенный выше пример генерации политики JWT, используйте имя x5c в дочернем элементе <Claim> элемента <AdditionalHeaders> :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

Инвалидтипефораддишеналхедер

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

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

Error Saving Revision 2
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-Generate-HS256) claim(claim1) type(integer).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Ошибка возникнет, если тип утверждения, используемого в дочернем элементе <Claim> элемента <AdditionalHeaders> политики GenerateJWT, не относится к одному из следующих типов:

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

Например, использование типа утверждения integer в элементе <AdditionalHeaders> приведет к ошибке.

Диагноз

  1. В сообщении об ошибке необходимо определить имя политики генерации JWT, имя утверждения и тип утверждения. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , имя утверждения — claim, а тип утверждения — integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Убедитесь, что имя и тип утверждения, используемые в элементе <AdditionalClaims> в XML-файле политики генерации JWT, которая завершилась неудачей, соответствуют имени и типу утверждения, указанным в сообщении об ошибке на шаге 1. Например, следующая политика указывает утверждение как claim и тип утверждения как integer , что соответствует содержимому сообщения об ошибке:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. Если тип утверждения, используемый в дочернем элементе <Claim> элемента <AdditionalHeaders> , не относится к одному из следующих типов:

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

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

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

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

Разрешение

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

Чтобы исправить приведенный выше пример генерации политики JWT, измените тип утверждения на boolean :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidValueOfArrayAttribute

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

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

Error Saving Revision 2
Invalid value for array attribute: policy(policy_name)claim(claim_name).

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

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если значение атрибута array в дочернем элементе <Claim> элемента <AdditionalClaims> или <AdditionalHeaders> не установлено в true или false .

Например, установка значения атрибута array как yes в дочернем элементе <Claim> элементов <AdditionalClaims> или <AdditionalHeaders> приводит к ошибке.

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя утверждения. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя утверждения — claim:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. Убедитесь, что имя утверждения, используемое в дочернем элементе <Claim> под элементом <AdditionalHeaders> в XML-файле политики генерации JWT, которая завершилась с ошибкой, совпадает с именем утверждения, указанным в сообщении об ошибке на шаге 1. Например, следующая политика указывает имя утверждения как claim , что совпадает с тем, что указано в сообщении об ошибке:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. Если значение атрибута array в дочернем элементе <Claim> элемента <AdditionalClaims> не установлено на true или false , то это и является причиной ошибки.

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

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    

Разрешение

Убедитесь, что значение атрибута array в дочернем элементе <Claim> элементов <AdditionalClaims> или <AdditionalHeaders> установлено на true или false .

Чтобы исправить приведенный выше пример генерации политики JWT, измените значение атрибута array на true :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

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

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

Error Saving Revision 2
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 2
Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если элемент <PrivateKey> используется с алгоритмами семейства HS, а элемент <SecretKey> — с алгоритмами семейства RSA. Ошибка также возникнет, если выполняется хотя бы одно из этих условий.

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

Диагноз

  1. В сообщении об ошибке укажите имя политики генерации JWT, имя элемента и имя семейства алгоритмов. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , имя элемента — PrivateKey , а семейство алгоритмов — HMAC :

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Убедитесь, что элемент и семейство алгоритмов, использованные в XML-файле политики генерации JWT, не удалось сгенерировать, соответствуют элементу и семейству алгоритмов, указанным в сообщении об ошибке на шаге 1. Например, следующая политика указывает элемент как PrivateKey и семейство алгоритмов как HMAC , что соответствует информации в сообщении об ошибке:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PrivateKey>
            <Password ref="private.privatekey-password"/>
    
        </PrivateKey>
            <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=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. Если значение элемента <Algorithm> равно HS256 , но вы использовали <PrivateKey> , то это и является причиной ошибки.

    В приведенном выше примере генерации политики JWT используется <PrivateKey> , даже несмотря на то, что для <PrivateKey> установлен алгоритм семейства HS256 , что приводит к ошибке:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    

Разрешение

Убедитесь, что элемент <PrivateKey> используется только с алгоритмами семейства RSA, а элемент <SecretKey> — только с алгоритмами семейства HS.

Чтобы исправить приведенный выше пример политики генерации JWT, используйте <SecretKey> из политики генерации JWT, использующей алгоритм HS256:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidValueForElement

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

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

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

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

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если значение, указанное в элементе <Algorithm> , не является одним из следующих значений:

HS256 , HS384 , HS512 , RS256 , RS384 , RS512

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

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя элемента. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя элемента — Algorithm.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. Изучите неудачно сгенерированный XML-файл политики JWT и проверьте значение, указанное для элемента <Algorithm> .

    Вот пример политики генерации JWT:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS128</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>
    </GenerateJWT>
    
  3. Проверьте значение, указанное в элементе <Algorithm> . Если оно не совпадает с одним из следующих значений:

    HS256 , HS384 , HS512 , RS256 , RS384 , RS512

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

    В приведенном выше примере генерации политики JWT имя <Algorithm> указано как HS128 . Поскольку это неподдерживаемый алгоритм, вы получите ошибку:

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    

Разрешение

Убедитесь, что значение, указанное в элементе <Algorithm> , является одним из поддерживаемых значений:

HS256 , HS384 , HS512 , RS256 , RS384 , RS512

Чтобы исправить приведенный выше пример политики генерации JWT, в котором используется элемент <SecretKey> , измените значение элемента <Algorithm> на HS25 . Обратите внимание, что при использовании элемента <SecretKey> можно использовать только алгоритмы семейства HS.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

MissingConfigurationElement

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

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

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

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

Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если элемент <PrivateKey> не используется с алгоритмами семейства RSA в политике генерации JWT. Аналогично, ошибка может возникнуть, если элемент <SecretKey> не используется с алгоритмами семейства HS в политике генерации JWT.

Например, отсутствие элемента <PrivateKey> при работе с алгоритмами семейства RSA приводит к этой ошибке.

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя отсутствующего элемента. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя отсутствующего элемента — SecretKey .

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Проанализируйте XML-файл политики генерации JWT, который завершился с ошибкой, и убедитесь, что указанный в сообщении об ошибке элемент отсутствует. Если он отсутствует, то это и является причиной ошибки.

    Например, в следующей политике отсутствует SecretKey , а используется Algorithm HS256 :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    

    В примере генерации политики JWT используются алгоритмы семейства HS, но отсутствует обязательный элемент SecretKey , что приводит к ошибке:

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    

Разрешение

Убедитесь, что обязательный элемент <PrivateKey> используется с алгоритмами семейства RSA, а обязательный элемент <SecretKey> — с алгоритмами семейства HS.

Чтобы исправить приведенный выше пример политики генерации JWT, использующий алгоритм HS256 , добавьте элемент <SecretKey> в политику генерации JWT:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidKeyConfiguration

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

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

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

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

Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

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

Диагноз

  1. Найдите название политики генерации JWT в сообщении об ошибке. Например, в следующем сообщении об ошибке название политики генерации JWT — JWT-Generate-HS256 .

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Изучите XML-файл политики генерации JWT, в котором произошла ошибка, и убедитесь, что дочерний элемент <Value> не определен в элементах <PrivateKey> или <SecretKey> . Если <Value> не определен, то это и является причиной ошибки.

    Например, в следующей политике дочерний элемент <Value> не определен в элементе <SecretKey> :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
        </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>
    </GenerateJWT>
    

    Поскольку дочерний элемент <Value> не определен в элементе <SecretKey> политики Generate JWT, возникает ошибка:

    Invalid Key configuration : policy(JWT-Generate-HS256).
    

Разрешение

Убедитесь, что дочерний элемент <Value> всегда определен в элементах <PrivateKey> или <SecretKey> политики генерации JWT.

Чтобы исправить приведенный выше пример генерации политики JWT, определите дочерний элемент <Value> внутри элемента <SecretKey> , как показано ниже:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

EmptyElementForKeyConfiguration

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

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

Error Saving Revision 2
Empty Element for Key Configuration : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если атрибут ref в дочернем элементе <Value> элементов <PrivateKey> или <SecretKey> не указан или пуст.

Например, если дочерний элемент <Value> элемента <SecretKey> пуст, то возникает ошибка.

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя пустого элемента. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя пустого элемента — SecretKey/Value .

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Изучите XML-файл политики генерации JWT, в котором произошла ошибка, и убедитесь, что элемент, определенный на шаге 1, пуст. Если он пуст, то это и есть причина ошибки.

    Например, следующая политика показывает, что дочерний элемент <Value> элемента <SecretKey> пуст:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value/>
            <Id>1918290</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>
    </GenerateJWT>
    

    Поскольку дочерний элемент <Value> элемента <SecretKey> в политике Generate JWT пуст, возникает ошибка:

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Разрешение

Убедитесь, что атрибут `ref` в дочернем элементе <Value> элементов <PrivateKey> ` или <SecretKey> ` всегда указан и имеет префикс ` private. .

Чтобы исправить приведенный выше пример генерации политики JWT, используйте переменную потока private.privatekey в дочернем элементе <Value> элемента <SecretKey> .

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidVariableNameForSecret

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

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

Error Saving Revision 2
Invalid variable name for secret : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если имя переменной потока, указанное в атрибуте ref в дочернем элементе <Value> элементов <PrivateKey> или <SecretKey> , не содержит префикс private ( private. ).

Например :

Если имя переменной потока указано как mykey в атрибуте ref дочернего элемента <Value> элемента <PrivateKey> , то возникает эта ошибка.

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя элемента с недопустимым именем переменной. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя элемента — SecretKey/Value .

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Изучите XML-файл политики генерации JWT, в котором произошла ошибка, и проверьте имя переменной, используемой в элементе, определенном на шаге 1. Если имя переменной не имеет префикса private. , то это и является причиной ошибки.

    Например, следующая политика показывает, что дочерний элемент <Value> элемента <SecretKey> имеет недопустимое имя переменной mykey :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="mykey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    Поскольку имя переменной, указанное в дочернем элементе <Value> элемента <SecretKey> политики Generate JWT, не имеет префикса private. возникает ошибка:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Разрешение

Убедитесь, что атрибут `ref` в дочернем элементе <Value> элементов ` <PrivateKey> или <SecretKey> всегда указан и имеет префикс private. .

Чтобы исправить приведенный выше пример генерации политики JWT, используйте переменную потока private.privatekey в дочернем элементе <Value> элемента <SecretKey> :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidSecretInConfig

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

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

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если значение (секрет) указано явно в:

  • Дочерние элементы <Value> или <Password> элемента <PrivateKey> или
  • Дочерний элемент <Value> элемента <SecretKey>

в политике генерации JWT.

Например, если секретный ключ явно указан как abc в дочернем элементе <Value> элемента <SecretKey> , то возникает эта ошибка.

Диагноз

  1. В сообщении об ошибке укажите имя политики генерации JWT и имя элемента, в котором явно указан секрет. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя элемента — SecretKey/Value .

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Изучите XML-файл политики генерации JWT, в котором произошла ошибка, и убедитесь, что секретный ключ явно указан в элементе, определенном на шаге 1. Если он указан явно, то это и является причиной ошибки.

    Например, следующая политика показывает, что секретный ключ был явно указан в дочернем элементе <Value> элемента <SecretKey> :

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value>abc</Value>
            <Id>1918290</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>
    </GenerateJWT>
    

    Поскольку секретный ключ явно указан в дочернем элементе <Value> элемента <SecretKey> политики Generate JWT, возникает ошибка:

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Разрешение

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

Чтобы исправить приведенный выше пример генерации политики JWT, используйте переменную потока private.secretkey в атрибуте ref дочернего элемента <Value> элемента <SecretKey> :

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>

InvalidTimeFormat

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

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

Error Saving Revision 2
Invalid Time format: policy(policy_name) element(element_name).

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

Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).

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

В пользовательском интерфейсе Edge вы увидите диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если значение, указанное в элементе <NotBefore> не входит в число поддерживаемых форматов:

sortable , RFC 1123 , RFC 850 , ANCI-C

Например, если значение, указанное в <NotBefore> равно 20-JUN-1990 08:03 , что не является поддерживаемым форматом, то возникает эта ошибка.

<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>

Диагноз

  1. Найдите в сообщении об ошибке имя политики генерации JWT и имя элемента, имеющего недопустимый формат времени. Например, в следующем сообщении об ошибке имя политики генерации JWT — JWT-Generate-HS256 , а имя элемента — NotBefore .

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Изучите XML-файл политики генерации JWT, в котором произошла ошибка, и проверьте формат времени, используемый в элементе, указанном на шаге 1. Если элемент не использует ни один из поддерживаемых форматов:

    sortable , RFC 1123 , RFC 850 , ANCI-C

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

    Например, следующая политика показывает, что дочерний элемент <NotBefore> использует неподдерживаемый формат времени:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    Поскольку элемент <NotBefore> политики Generate JWT не использует ни один из поддерживаемых форматов времени, возникает ошибка:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Разрешение

Убедитесь, что значение, указанное в элементе <NotBefore> использует один из поддерживаемых форматов:

sortable , RFC 1123 , RFC 850 , ANCI-C

Чтобы исправить пример генерации политики JWT, измените дату в элементе <NotBefore> , используя формат sortable как показано ниже:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>