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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebinin adı aşağıdaki kayıtlı adlardan biriyse ortaya çıkar:

"çocuk", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

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

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

Teşhis

  1. Hata mesajındaki Generate JWT politikasının adını ve talep adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, hak talebi adı ise iss şeklindedir:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Başarısız JWT politikası oluşturma XML dosyasındaki <AdditionalClaims> öğesi altında kullanılan hak talebi adının, hata mesajında belirtilen hak talebi adıyla eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politika hak talebini iss olarak belirtir ve bu değer, hata mesajındaki metinle 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="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. <Claim><AdditionalClaims> öğesinin alt öğesinde kullanılan hak talebi adı, aşağıdaki kayıtlı adlardan biriyse:

    "çocuk", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

    hatanın nedeni budur.

    Yukarıda gösterilen JWT Oluşturma politikasında <Claim> adı, <AdditionalClaims> öğesi altında iss olarak belirtilerek ş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" kayıtlı adlarından hiçbirini kullanmayın.

Yukarıda gösterilen JWT oluşturma politikasını 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

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 ortaya çıkar:

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

Örneğin, <AdditionalClaims> öğesi altında integer hak talebi türünün kullanılması hatayla sonuçlanır.

Teşhis

  1. Hata mesajındaki Generate JWT politikasının adını, hak talebi adını ve talep türünü tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, hak talebi 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 JWT Oluşturma politikası XML'indeki <AdditionalClaims> öğesi altında kullanılan hak talebi adının ve türün, 1. adımdaki hata mesajında belirtilen hak talebi adı ve türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, hak talebini claim ve türü, hata mesajındakiyle eşleşen integer olarak 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='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

    hatanın nedeni budur.

    Yukarıda gösterilen JWT Oluştur politikasında, <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 <Claim> alt öğesinde 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ını 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, iddianın adı <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde belirtilmemişse ortaya çıkar.

Teşhis

  1. Hata mesajındaki Generate JWT politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256 şeklindedir:

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

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

    <AdditionalClaims> öğesi altında <Claim> adı 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

İddia adının her zaman <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde belirtildiğinden emin olun.

Yukarıda gösterilen JWT oluşturma politikasını 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

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

alg veya typ

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

Teşhis

  1. Hata mesajındaki Generate JWT politikasının adını ve üstbilgi adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, üst bilgi adı ise alg'dir:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Başarısız JWT politikası oluşturma XML dosyasındaki <AdditionalHeaders> öğesinin altındaki <Claim> alt öğesinde kullanılan üstbilgi adının, 1. adımdaki hata mesajında tanımlanan başlık adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada üstbilgi, hata mesajındaki metinle eşleşen alg olarak belirtilir:

    <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

    hatanın nedeni budur.

    Yukarıda gösterilen JWT Oluşturma politikasında <Claim> adı, <AdditionalClaims> öğesi altında alg olarak belirtilerek şu hataya neden olur:

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

Çözünürlük

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

Yukarıda gösterilen JWT oluşturma politikasını 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

GenerateJWT politikasının <AdditionalHeaders> öğesinin <Claim> alt öğesinde 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ındaki Generate JWT politikasının adını, hak talebi adını ve talep türünü tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, hak talebi 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 JWT oluşturma politikası XML'indeki <AdditionalClaims> öğesi altında kullanılan hak talebi adının ve hak talebi türünün, 1. adımdaki hata mesajında belirtilen hak talebi adı ve hak talebi türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hak talebi claim ve hak talebi türü integer olarak belirtilir. Bu, hata mesajındaki metinle 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

    hatanın nedeni budur.

    Yukarıda gösterilen JWT Oluştur politikasında, <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 <Claim> alt öğesinde yalnızca desteklenen string, number, boolean veya map veri türlerinin kullanıldığından emin olun.

Yukarıda gösterilen JWT oluşturma politikasını 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde yer alan dizi özelliğinin değeri true veya false olarak ayarlanmamışsa ortaya çıkar.

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

Teşhis

  1. Hata mesajındaki Generate JWT politikasının adını ve talep adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, hak talebinin adı ise claim: şeklindedir.

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. Başarısız JWT politikası oluşturma XML dosyasındaki <AdditionalHeaders> öğesi altındaki <Claim> alt öğesinde kullanılan hak talebi adının, 1. adımdaki hata mesajında belirtilen hak talebi adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hak talebi adı, hata mesajındaki adla eşleşen claim olarak belirtilmektedir:

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

    Yukarıdaki örnekte <AdditionalClaims> öğesinin <Claim> alt öğ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> alt öğesinde <Claim> dizi özelliği değerinin true ya da false olarak ayarlandığından emin olun.

Yukarıda gösterilen 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <PrivateKey> öğesi HS Family algoritmaları ile ve <SecretKey> öğesi RSA Aile algoritmaları ile kullanıldığında ortaya çıkar. Hata, bu koşullardan biri doğru olduğunda da oluşur.

Örneğin, <PrivateKey> öğesini HS Family algoritmalarıyla kullanmak bu hataya yol açar.

Teşhis

  1. Hata mesajındaki Generate JWT politikasının adını, öğe adını ve algoritma ailesinin adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, öğe adı PrivateKey ve algoritma ailesi HMAC şeklindedir:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Başarısız JWT politikası XML'inde kullanılan öğenin ve algoritma ailesinin, 1. adımdaki hata mesajında tanımlanan öğe ve algoritma ailesiyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, öğeyi PrivateKey ve algoritma ailesini HMAC olarak belirtir. Bu da hata mesajındaki metinle 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> öğesini kullandıysanız hatanın nedeni budur.

    Yukarıda gösterilen JWT Oluştur politikasında, <PrivateKey> bir aile algoritması (HS256) olarak ayarlanmış olsa bile <PrivateKey> kullanılmıştır ve şu hataya neden olur:

    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 JWT oluşturma örneğini düzeltmek için, HS256 algoritmasını kullanan GenerateJWT politikasındaki <SecretKey> politikası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='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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <Algorithm> öğesinde belirtilen değer aşağıdaki değerlerden biri değilse ortaya çıkar:

HS256, HS384, HS512, RS256, RS384, RS512

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

Teşhis

  1. JWT Oluşturma politikasının adını ve hata mesajındaki öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, öğe adı ise Algorithm. şeklindedir.

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

    Aşağıda, JWT oluşturma politikası örneği 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

    hatanın nedeni budur.

    Yukarıda gösterilen JWT Oluşturma politikasında <Algorithm> adı, HS128 olarak belirtilmiştir. Bu desteklenen bir algoritma olmadığı için ş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 <SecretKey> öğesini kullanan JWT oluşturma politikası örneğini 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <PrivateKey> öğesi, JWT oluşturma politikasında RSA Ailesi algoritmalarıyla kullanılmadığında ortaya çıkar. Benzer şekilde, <SecretKey> öğesi JWT oluşturma politikasındaki HS Family algoritmalarıyla kullanılmazsa da bu hata oluşabilir.

Örneğin, <PrivateKey> öğesinin RSA Aile algoritmalarıyla kullanılmaması bu hataya yol açar.

Teşhis

  1. JWT oluşturma politikasının adını ve hata mesajındaki eksik öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, eksik öğe adı ise SecretKey şeklindedir.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Başarısız JWT Oluşturma politikası XML'ini inceleyin ve hata mesajında belirtilen öğenin eksik olduğunu doğrulayın. 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>
    

    JWT Oluşturma politikası örneği, HS Family algoritmalarını kullanır ancak zorunlu SecretKey öğesi eksik olduğundan şu hataya neden oluyor:

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

Çözünürlük

Zorunlu <PrivateKey> öğesinin RSA Family algoritmaları ile, zorunlu <SecretKey> öğesinin de HS Family algoritmaları ile kullanıldığından emin olun.

Yukarıda gösterilen HS256 algoritmasını kullanan JWT oluşturma politikasını düzeltmek için <SecretKey> öğesini Generate JWT politikasına 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

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

Teşhis

  1. Hata mesajındaki Generate JWT politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256 şeklindedir.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Başarısız JWT Oluşturma politikası XML'ini 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>
    

    <Value> alt öğesi, JWT Oluştur politikasının <SecretKey> öğesinde tanımlı olmadığı için şu hatayı alırsınız:

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

Çözünürlük

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

Yukarıda gösterilen JWT oluşturma politikasını düzeltmek için <SecretKey> öğesi altında <Value> alt öğesini aşağıda gösterildiği 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesindeki ref özelliği belirtilmemiş veya boşsa ortaya çıkar.

Örneğin <SecretKey> öğesinin <Value> alt öğesi boşsa hata meydana gelir.

Teşhis

  1. JWT Oluşturma politikasının adını ve hata mesajındaki boş öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, boş öğe adı ise SecretKey/Value şeklindedir.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız JWT Oluşturma politikası XML'ini 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 politikada <SecretKey> öğesinin <Value> alt öğesinin boş olduğu gösterilmektedir:

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

    JWT Oluştur politikasındaki <SecretKey> öğesinin <Value> alt öğesi boş olduğu için ş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 <Value> alt öğesindeki ref özelliğinin her zaman belirtildiğinden ve "private." ön ekine sahip olduğundan emin olun.

Yukarıda gösterilen 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>

InvalidVariableNameForSecret

Hata mesajı

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

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 hata içeren bir iletişim kutusu görürsünüz:

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 ortaya çıkar.

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. JWT Oluşturma politikasının adını ve hata mesajındaki geçersiz bir değişken adına sahip öğenin adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, öğe adı ise SecretKey/Value şeklindedir.

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

    Örneğin, aşağıdaki politikada <SecretKey> öğesinin <Value> alt öğesinin geçersiz mykey değişken adına sahip olduğu gösterilmektedir:

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

    JWT Oluştur politikasının <SecretKey> öğesinin <Value> alt öğesinde belirtilen değişken adı private. ön ekine sahip olmadığı için ş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 <Value> alt öğesindeki ref özelliğinin her zaman belirtildiğinden ve private. önekine sahip olduğundan emin olun.

Yukarıda gösterilen 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, değer (gizli) şurada açıkça belirtilmişse ortaya çıkar:

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

oluşturma politikasını gözden geçirin.

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

Teşhis

  1. Generate JWT politikasının adını ve gizli anahtarın hata mesajında açıkça belirtildiği öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, öğe adı ise SecretKey/Value şeklindedir.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız JWT Oluşturma politikası XML'ini inceleyin ve gizli anahtarın 1. Adım'da tanımlanan öğede açıkça belirtilip belirtilmediğini doğrulayın. Açıkça belirtilirse hatanın nedeni budur.

    Örneğin, aşağıdaki politikada gizli anahtarın <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>
    

    Gizli anahtar, JWT Oluştur politikasının <SecretKey> öğesinin <Value> alt öğesinde açıkça belirtildiği için ş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 <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesinde her zaman bir akış değişkeni olarak belirtildiğinden emin olun.

Yukarıda gösterilen 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ılması şu hata mesajıyla başarısız olur:

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 hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <NotBefore> öğesinde belirtilen değer desteklenen biçimlerden birinde değilse ortaya çıkar:

sortable, RFC 1123, RFC 850, ANCI-C

Örneğin, <NotBefore> özelliğinde belirtilen değer 20-JUN-1990 08:03 olmayan ve desteklenen bir biçimse bu hata oluşur.

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

Teşhis

  1. JWT Oluşturma politikasının adını ve hata mesajındaki geçersiz saat biçimine sahip öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Oluşturma politikasının adı JWT-Generate-HS256, öğe adı ise NotBefore şeklindedir.

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

    sortable, RFC 1123, RFC 850, ANCI-C

    hatanın nedeni budur.

    Örneğin, aşağıdaki politikada <NotBefore> alt öğesinin desteklenmeyen bir saat 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>
    

    JWT Oluşturma politikasının <NotBefore> öğesi, desteklenen saat biçimlerinden hiçbirini kullanmadığından ş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

JWT oluşturma politikasını düzeltmek için <NotBefore> öğesindeki tarihi, aşağıda gösterildiği 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>