GenerateJWT politika dağıtımı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

InvalidNameForAdditionalClaim

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebinin adı aşağıdaki kayıtlı adlardan biri olduğunda oluşur:

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

Kayıtlı talepler RFC7519'da belirtilmiştir.

Örneğin, <AdditionalClaims> öğesi altında hak talebi adının iss kullanılması bu hataya neden olur.

Teşhis

  1. Hata mesajından JWT oluşturma politikasının adını ve talep adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256, talep adı ise iss'dir:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Başarısız olan JWT oluşturma politikası XML'sindeki <AdditionalClaims> öğesi altında kullanılan talep adının, hata mesajında tanımlanan talep adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, hatada belirtilenle eşleşen iss olarak talep belirtir:

    <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. <AdditionalClaims> öğesinin alt öğesi <Claim> içinde kullanılan hak talebi adı aşağıdaki kayıtlı adlardan biriyse:

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

    Bu durumda hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında iss olarak belirtilmiştir. Bu durum şu hataya neden olur:

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

Çözünürlük

<AdditionalClaims> öğesinin <Claim> alt öğesinde "kid", "iss", "sub", "aud", "iat", "exp", "nbf" veya "jti" gibi kayıtlı adlardan hiçbirini kullanmayın.

Yukarıda gösterilen JWT oluşturma politikası örneğini düzeltmek için hak talebi adını status olarak değiştirin:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, GenerateJWT politikasının <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse oluşur:

string (varsayılan), number, boolean veya map

Örneğin, <AdditionalClaims> öğesi altında integer hak talebi türünün kullanılması hataya neden olur.

Teşhis

  1. Hata mesajından JWT oluşturma politikasının adını, talep adını ve hak talebi türünü belirleyin. Örneğin, aşağıdaki hata mesajında, JWT oluşturma politikasının adı JWT-Generate-HS256, talep adı claim ve hak talebi türü integer'dir:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Başarısız olan JWT oluşturma politikası XML'sindeki <AdditionalClaims> öğesi altında kullanılan hak talebi adı ve türünün, 1. adımda hata mesajında belirtilen hak talebi adı ve türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, talebi claim ve türü integer olarak belirtir. Bu, hata mesajındaki bilgilerle eşleşir:

    <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. <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse:

    string (varsayılan), number, boolean veya map

    Bu durumda hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <AdditionalClaims> öğesi altındaki <Claim> türü integer olarak belirtilmiştir. integer desteklenen bir tür olmadığından şu hatayı alırsınız:

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

Çözünürlük

<AdditionalClaims> öğesinin alt öğesi <Claim> içinde yalnızca string, number, boolean veya map gibi desteklenen veri türlerinin kullanıldığından emin olun.

Yukarıda gösterilen JWT oluşturma politikası örneğini düzeltmek için hak talebi türünü boolean olarak değiştirin.

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

Error Saving Revision 2
Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, talebin adı <AdditionalClaims> veya <AdditionalHeaders> öğesinin alt öğesi <Claim> içinde belirtilmemişse oluşur.

Teşhis

  1. Hata mesajından Generate JWT politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256'dır:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Başarısız olan JWT oluşturma politikası XML'sini inceleyin ve <AdditionalClaims> veya <AdditionalHeaders> öğesi altındaki <Claims> alt öğesinde hak talebi adının eksik olup olmadığını doğrulayın. Örneğin, aşağıdaki JWT oluşturma politikası, <AdditionalClaims> öğesi altında hak talebi adını belirtmez:

    <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> adı, <AdditionalClaims> öğesi altında belirtilmediği için şu hatayı alırsınız:

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

Çözünürlük

Hak talebinin adının her zaman <AdditionalClaims> veya <AdditionalHeaders> öğesinin alt öğesi olan <Claim> öğesinde belirtildiğinden emin olun.

Yukarıda gösterilen JWT oluşturma politikası örneğini düzeltmek için hak talebi adını aşağıda gösterildiği gibi belirtin:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, <AdditionalHeaders> öğesinin <Claim> alt öğesinde kullanılan talebin adı aşağıdaki standart JWT başlıklarından biriyse oluşur:

alg veya typ

Örneğin, <AdditionalHeaders> öğesi altında hak talebi adının alg kullanılması hataya neden olur.

Teşhis

  1. Hata mesajından JWT oluşturma politikasının adını ve üstbilgi adını belirleyin. Örneğin, aşağıdaki hata mesajında, JWT oluşturma politikasının adı JWT-Generate-HS256, üstbilgi adı ise alg'dir:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Başarısız olan JWT politikası XML'sini oluşturma işleminde <AdditionalHeaders> öğesi altındaki <Claim> alt öğesinde kullanılan başlık adının, 1. adımda hata mesajında tanımlanan başlık adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politika üstbilgiyi alg olarak belirtir. Bu, hata mesajındakiyle eşleşir:

    <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. <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan başlık adı aşağıdaki standart JWT başlıklarından biriyse:

    alg veya typ

    Bu durumda hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında alg olarak belirtilmiştir. Bu durum şu hataya neden olur:

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

Çözünürlük

<AdditionalHeaders> öğesinin alt öğesi <Claim> içinde standart JWT başlıkları alg veya typ kullanmayın.

Yukarıda gösterilen JWT oluşturma politikası örneğini düzeltmek için <AdditionalHeaders> öğesinin <Claim> alt öğesinde x5c adını kullanın:

<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>

InvalidTypeForAdditionalHeader

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

Error Saving Revision 2
Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).

Örnek hata mesajı

Error Saving Revision 2
Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim1) type(integer).

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

GenerateJWT politikasının <AdditionalHeaders> öğesinin alt öğesi <Claim> içinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse hata oluşur:

string (varsayılan), number, boolean veya map.

Örneğin, <AdditionalHeaders> öğesi altında integer hak talebi türünün kullanılması hataya neden olur.

Teşhis

  1. Hata mesajından JWT oluşturma politikasının adını, talep adını ve hak talebi türünü belirleyin. Örneğin, aşağıdaki hata mesajında, JWT oluşturma politikasının adı JWT-Generate-HS256, talep adı claim, ve hak talebi türü integer:'dir.

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Başarısız olan JWT politikası XML'si oluşturma işlemindeki <AdditionalClaims> öğesi altında kullanılan talep adı ve hak talebi türünün, 1. adımda hata mesajında belirtilen talep adı ve hak talebi türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, hak talebini claim ve hak talebi türünü integer olarak belirtir. Bu, hata mesajındaki bilgilerle eşleşir:

    <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. <AdditionalHeaders> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse:

    string (varsayılan), number, boolean veya map

    Bu durumda hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <AdditionalHeaders> öğesi altındaki <Claim> türü integer olarak belirtilmiştir. integer desteklenen bir tür olmadığından şu hatayı alırsınız:

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

Çözünürlük

<AdditionalHeaders> öğesinin alt öğesi <Claim> içinde yalnızca desteklenen veri türleri string, number, boolean veya map'ün kullanıldığından emin olun.

Yukarıda gösterilen JWT oluşturma politikası örneğini düzeltmek için hak talebi türünü boolean olarak değiştirin:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, <AdditionalClaims> veya <AdditionalHeaders> öğesinin alt öğesi olan <Claim> öğesindeki dizi özelliğinin değeri true veya false olarak ayarlanmamışsa oluşur.

Örneğin, <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde dizi özelliğinin değerini yes olarak ayarlamak hataya neden olur.

Teşhis

  1. Hata mesajından JWT oluşturma politikasının adını ve talep adını belirleyin. Örneğin, aşağıdaki hata mesajında, JWT oluşturma politikasının adı JWT-Generate-HS256, hak talebi adı ise claim:'dir.

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. Başarısız olan JWT politikası XML'sini oluşturma işleminde <AdditionalHeaders> öğesi altındaki <Claim> alt öğesinde kullanılan talep adının, 1. adımda hata mesajında tanımlanan talep adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hak talebi adı claim olarak belirtiliyor. Bu, hata mesajındakiyle eşleşiyor:

    <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. <AdditionalClaims> öğesinin alt öğesi <Claim>'deki array özelliğinin değeri true veya false olarak ayarlanmamışsa hatanın nedeni budur.

    Yukarıdaki örnekte <AdditionalClaims> öğesinin alt öğesi olan <Claim> öğesindeki array özelliği yes olarak ayarlandığından şu hatayı alırsınız:

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

Çözünürlük

<AdditionalClaims> veya <AdditionalHeaders> öğesinin alt öğesi <Claim>'daki dizi özelliğinin değerinin true veya false olarak ayarlandığından emin olun.

Yukarıda gösterilen örnek JWT oluşturma politikasını düzeltmek için dizi özelliğinin değerini true olarak değiştirin:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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>).

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, <PrivateKey> öğesi HS ailesi algoritmalarıyla, <SecretKey> öğesi ise RSA ailesi algoritmalarıyla kullanıldığında ortaya çıkar. Bu koşullardan herhangi biri doğruysa da hata oluşur.

Örneğin, <PrivateKey> öğesini HS Family algoritmalarıyla kullanmak bu hataya neden olur.

Teşhis

  1. Hata mesajından Generate JWT politikasının adını, öğe adını ve algoritma ailesinin adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256, öğe adı PrivateKey ve algoritma ailesi HMAC'dir:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Başarısız olan JWT oluşturma politikası XML'sinde kullanılan öğe ve algoritma ailesinin, 1. adımda hata mesajında tanımlanan öğe ve algoritma ailesiyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politika öğeyi PrivateKey, algoritma ailesini ise HMAC olarak belirtir. Bu, hata mesajındaki bilgilerle eşleşir:

    <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> öğesinin değeri HS256 ise ancak <PrivateKey> kullanmışsanız hatanın nedeni budur.

    Yukarıda gösterilen örnek JWT oluşturma politikasında, <PrivateKey> bir aile algoritmasına, HS256 olarak ayarlanmış olmasına rağmen <PrivateKey> kullanılıyor ve şu hataya neden oluyor:

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

Çözünürlük

<PrivateKey> öğesinin yalnızca RSA Family algoritmalarıyla, <SecretKey> öğesinin ise yalnızca HS Family algoritmalarıyla kullanıldığından emin olun.

Yukarıda gösterilen Generate JWT politikasını düzeltmek için HS256 algoritmasını kullanan GenerateJWT politikasındaki <SecretKey> öğesini kullanın:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

<Algorithm> öğesinde belirtilen değer aşağıdaki değerlerden biri değilse bu hata oluşur:

HS256, HS384, HS512, RS256, RS384, RS512

Örneğin, <Algorithm> öğesinde algoritma değerinin RS128 olarak belirtilmesi bu hataya yol açar.

Teşhis

  1. Generate JWT politikasının adını ve hata mesajındaki öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256, öğe adı ise Algorithm.'dir.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. Başarısız olan JWT oluşturma politikası XML'sini inceleyin ve <Algorithm> öğesi için belirtilen değeri kontrol edin.

    Aşağıda örnek bir JWT oluşturma politikası verilmiştir:

    <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> öğesinde belirtilen değeri inceleyin. Aşağıdaki değerlerden biri değilse:

    HS256, HS384, HS512, RS256, RS384, RS512

    Bu durumda hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <Algorithm> adı HS128 olarak belirtilmiştir. Bu desteklenen bir algoritma olmadığından şu hatayı alırsınız:

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

Çözünürlük

<Algorithm> öğesinde belirtilen değerin desteklenen değerlerden biri olduğundan emin olun:

HS256, HS384, HS512, RS256, RS384, RS512

Yukarıda gösterilen ve <SecretKey> öğesini kullanan JWT oluşturma politikasını düzeltmek için <Algorithm> değerini HS25 olarak değiştirin. <SecretKey> öğesi kullanıldığında yalnızca HS Family algoritmalarını kullanabileceğinizi unutmayın.

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, JWT oluşturma politikasında <PrivateKey> öğesi RSA ailesi algoritmalarıyla kullanılmadığında meydana gelir. Benzer şekilde, JWT oluşturma politikasında <SecretKey> öğesi HS Family algoritmalarıyla kullanılmıyorsa da hata oluşabilir.

Örneğin, <PrivateKey> öğesinin RSA Family algoritmalarıyla kullanılmaması bu hataya neden olur.

Teşhis

  1. Hata mesajından JWT oluşturma politikasının adını ve eksik öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında, JWT oluşturma politikasının adı JWT-Generate-HS256, eksik öğenin adı ise SecretKey'dir.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Başarısız olan JWT oluşturma politikası XML'sini inceleyin ve hata mesajında belirtilen öğenin eksik olduğunu doğrulayın. Bu dosya eksikse hatanın nedeni budur.

    Örneğin, aşağıdaki politikada SecretKey eksik ve kullanılan 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>
    

    Generate JWT politikası örneğinde HS Family algoritmaları kullanılıyor ancak zorunlu öğe SecretKey eksik olduğundan şu hata oluşuyor:

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

Çözünürlük

Zorunlu <PrivateKey> öğesinin RSA Ailesi algoritmalarıyla, zorunlu <SecretKey> öğesinin ise HS Ailesi algoritmalarıyla kullanıldığından emin olun.

Yukarıda gösterilen ve HS256 algoritmasını kullanan JWT oluşturma politikası örneğini düzeltmek için JWT oluşturma politikasına <SecretKey> öğesini ekleyin:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, JWT oluşturma politikasındaki <PrivateKey> veya <SecretKey> öğelerinde zorunlu alt öğe <Value> tanımlanmamışsa oluşur.

Teşhis

  1. Hata mesajından Generate JWT politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256'dır.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Başarısız olan JWT oluşturma politikası XML'sini inceleyin ve <Value> alt öğesinin <PrivateKey> veya <SecretKey> öğelerinde tanımlanıp tanımlanmadığını doğrulayın. <Value> tanımlanmamışsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada <Value> alt öğesi, <SecretKey> öğesinde tanımlanmamıştır:

    <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>
    

    Generate JWT politikasının <SecretKey> öğesinde <Value> alt öğesi tanımlanmadığı için şu hatayı alırsınız:

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

Çözünürlük

Generate JWT politikasının <PrivateKey> veya <SecretKey> öğelerinde <Value> alt öğesinin her zaman tanımlandığından emin olun.

Yukarıda gösterilen örnek JWT oluşturma politikasını düzeltmek için <Value> alt öğesini <SecretKey> öğesi altında aşağıdaki gibi tanımlayın:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, <PrivateKey> veya <SecretKey> öğelerinin alt öğesi olan <Value> öğesindeki ref özelliği belirtilmemişse veya boşsa oluşur.

Örneğin, <SecretKey> öğesinin <Value> alt öğesi boşsa hata oluşur.

Teşhis

  1. Hata mesajından JWT oluşturma politikasının adını ve boş öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında, JWT oluşturma politikasının adı JWT-Generate-HS256, boş öğe adı ise SecretKey/Value'dir.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız olan JWT oluşturma politikası XML'sini inceleyin ve 1. adımda tanımlanan öğenin boş olup olmadığını doğrulayın. Boşsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika, <SecretKey> öğesinin alt öğesi olan <Value> öğesinin boş olduğunu gösteriyor:

    <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>
    

    Generate JWT politikasındaki <SecretKey> öğesinin alt öğesi <Value> boş olduğundan şu hatayı alırsınız:

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

Çözünürlük

<PrivateKey> veya <SecretKey> öğelerinin alt öğesi <Value>'daki ref özelliğinin her zaman belirtildiğinden ve "private." önekine sahip olduğundan emin olun.

Yukarıda gösterilen örnek JWT oluşturma politikasını düzeltmek için private.privatekey öğesinin <SecretKey> öğesindeki alt öğe <Value> içinde akış değişkenini kullanın.

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesindeki ref özelliğinde belirtilen akış değişkeni adı, özel ön eki (private.) içermiyorsa oluşur.

For example :

Akış değişkeni adı, <PrivateKey> öğesinin <Value> alt öğesinin ref özelliğinde mykey olarak belirtilirse bu hata oluşur.

Teşhis

  1. Hata mesajından, JWT oluşturma politikasının adını ve geçersiz değişken adına sahip öğenin adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256, öğe adı ise SecretKey/Value'dir.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız olan JWT politikası XML'sini inceleyin ve 1. adımda tanımlanan öğede kullanılan değişken adını doğrulayın. Değişken adında private. öneki yoksa hatanın nedeni budur.

    Örneğin, aşağıdaki politika, <SecretKey> öğesinin alt öğesi olan <Value> öğesinin geçersiz değişken adı mykey'ya sahip olduğunu gösteriyor:

    <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>
    

    Generate JWT politikasının <SecretKey> öğesinin <Value> alt öğesinde belirtilen değişken adında private. öneki bulunmadığından şu hatayı alırsınız:

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

Çözünürlük

<PrivateKey> veya <SecretKey> öğelerinin alt öğesi <Value>'daki ref özelliğinin her zaman belirtildiğinden ve private. önekine sahip olduğundan emin olun.

Yukarıda gösterilen örnek JWT oluşturma politikasını düzeltmek için <SecretKey> öğesinin <Value> alt öğesinde private.privatekey akış değişkenini kullanın:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, değer (gizli anahtar) şu yerlerde açıkça belirtilmişse oluşur:

  • <PrivateKey> öğesinin alt öğeleri <Value> veya <Password> ya da
  • <SecretKey> öğesinin alt öğesi <Value>

JWT oluşturma politikasında.

Örneğin, <SecretKey> öğesinin <Value> alt öğesinde gizli anahtar açıkça abc olarak belirtilmişse bu hata oluşur.

Teşhis

  1. Hata mesajından, Generate JWT politikasının adını ve gizli dizinin açıkça belirtildiği öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256, öğe adı ise SecretKey/Value'dir.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız olan JWT oluşturma politikası XML'sini inceleyin ve 1. adımda tanımlanan öğede sırrın açıkça belirtilip belirtilmediğini doğrulayın. Açıkça belirtilmişse hatanın nedeni budur.

    Örneğin, aşağıdaki politikada, gizli dizinin <SecretKey> öğesinin <Value> alt öğesinde açıkça belirtildiği gösterilmektedir:

    <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>
    

    Generate JWT politikasının <SecretKey> öğesinin <Value> alt öğesinde gizli anahtar açıkça belirtildiğinden şu hatayı alırsınız:

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

Çözünürlük

Değerin her zaman <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesinde akış değişkeni olarak belirtildiğinden emin olun.

Yukarıda gösterilen örnek JWT oluşturma politikasını düzeltmek için <SecretKey> öğesinin <Value> alt öğesinin ref özelliğinde private.secretkey akış değişkenini kullanın:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren iletişim kutusu gösterilir:

Neden

Bu hata, <NotBefore> öğesinde belirtilen değer desteklenen biçimlerden biri değilse oluşur:

sortable, RFC 1123, RFC 850, ANCI-C

Örneğin, <NotBefore> içinde belirtilen değer, desteklenmeyen bir biçim olan 20-JUN-1990 08:03 ise bu hata oluşur.

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

Teşhis

  1. Hata mesajından, JWT oluşturma politikasının adını ve geçersiz zaman biçimine sahip öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Generate JWT politikasının adı JWT-Generate-HS256, öğe adı ise NotBefore'dir.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Başarısız olan JWT oluşturma politikası XML'sini inceleyin ve 1. adımda tanımlanan öğede kullanılan zaman biçimini doğrulayın. Öğe, desteklenen biçimlerden herhangi birini kullanmıyorsa:

    sortable, RFC 1123, RFC 850, ANCI-C

    Bu durumda hatanın nedeni budur.

    Örneğin, aşağıdaki politikada alt öğe <NotBefore>'nın desteklenmeyen bir zaman biçimi kullandığı gösterilmektedir:

    <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>
    

    Generate JWT politikasının <NotBefore> öğesi desteklenen zaman biçimlerinden hiçbirini kullanmadığı için şu hatayı alırsınız:

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

Çözünürlük

<NotBefore> öğesinde belirtilen değerin desteklenen biçimlerden birini kullandığından emin olun:

sortable, RFC 1123, RFC 850, ANCI-C

Generate JWT politikasındaki örneği düzeltmek için <NotBefore> öğesindeki tarihi aşağıdaki gibi sortable biçimini kullanacak şekilde değiştirin:

<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>