VerificationJWT 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 revision_number
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-Verify-RS256) claim(iss).

Örnek ekran görüntüsü

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

Neden

Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan talebin 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 belirtilir.

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

Teşhis

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

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sindeki <AdditionalClaims> öğesi altında kullanılan talep adının, 1. adımda hata mesajında belirtilen talep adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hak talebi iss olarak belirtilir. Bu, hata mesajındakiyle eşleşir:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. <AdditionalClaims> öğesinin <Claim> alt öğesinde 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 Verify JWT (JWT'yi Doğrula) politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında iss olarak belirtilir. Bu da şu hataya neden olur:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    

Çözünürlük

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

Örnek JWT politikasını doğrulama ile ilgili sorunu düzeltmek için talep adını status olarak değiştirin:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

InvalidTypeForAdditionalClaim

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 revision_number
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-Verify-RS256) claim(claim) type(integer).

Örnek ekran görüntüsü

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

Neden

VerifyJWT politikasının <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan talep türü, aşağıdaki türlerden biri değil:

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 Verify JWT politikasının adını, talep adını ve türünü belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, talep adı claim ve tür integer:'dir.

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sindeki <AdditionalClaims> öğesi altında kullanılan talep adı ve türünün, 1. adımda hata mesajında tanımlanan talep adı ve türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hak talebi claim, tür ise integer olarak belirtilmiştir. Bu, hata mesajındaki bilgilerle eşleşir:

    <VerifyJWT name="JWT-Verify-RS256">
      <DisplayName>JWT Verify RS256</DisplayName>
      <Algorithm>RS256</Algorithm>
     <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <SecretKey>
          <Value ref="private.secretkey"/>
          <Id>1918290</Id>
      </SecretKey>
      <ExpiresIn>1h</ExpiresIn>
      <Subject>monty-pythons-flying-circus</Subject>
      <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
      <Audience>fans</Audience>
      <Id/>
      <AdditionalClaims>
          <Claim name='claim' ref='reqclaim' type='integer'/>
      </AdditionalClaims>
    </VerifyJWT>
    
  3. <AdditionalClaims> öğesinin alt öğesi <Claim> içinde 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 örnek JWT politikasını doğrulama işleminde, <Claim> türü <AdditionalClaims> öğesi altında integer olarak belirtilir. integer desteklenen bir tür olmadığı için şu hatayı alırsınız:

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

Çözünürlük

<AdditionalClaims> öğesinin <Claim> alt öğesinde yalnızca desteklenen veri türleri string (varsayılan), number, boolean veya map kullanıldığından emin olun.

JWT politikasını doğrulama örneğini düzeltmek için hak talebi türünü boolean olarak değiştirin:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

MissingNameForAdditionalClaim

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 revision_number
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-Verify-RS256.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örürsünüz:

Neden

Bu hata, talebin adı <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde belirtilmediğinde oluşur.

Teşhis

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

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

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    <Claim> adı, <AdditionalClaims> öğesi altında belirtilmediği için şu hatayı alırsınız:

    Error occurred while validation of bean JWT-Verify-RS256.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 <Claim> içinde belirtildiğinden emin olun.

Örnek JWT politikasını doğrulamak için hak talebi adını aşağıdaki gibi belirtin:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

InvalidNameForAdditionalHeader

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 revision_number
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-Verify-RS256) header(alg).

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde, bir hata içeren 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 biri olduğunda 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 Verify JWT politikasının adını ve başlık adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, üstbilgi adı ise alg'dir:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sindeki <AdditionalHeaders> öğesi altında bulunan alt öğe <Claim> içinde kullanılan başlık adının, 1. adımda hata mesajında belirtilen başlık adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada üstbilgi alg olarak belirtilmiştir. Bu, hata mesajındakiyle eşleşir:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. <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 Verify JWT (JWT'yi Doğrula) politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında alg olarak belirtilir. Bu da şu hataya neden olur:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    

Çözünürlük

<AdditionalHeaders> öğesinin alt öğesi <Claim> içinde standart JWT üstbilgilerini (alg veya typ) kullanmayın.

Verify JWT (JWT'yi Doğrula) politikasındaki örneği düzeltmek için <AdditionalHeaders> öğesinin <Claim> alt öğesinde x5c adını kullanın:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidTypeForAdditionalHeader

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 revision_number
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-Verify-RS256) claim(claim1) type(integer).

Örnek ekran görüntüsü

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

Neden

JWT'yi Doğrula politikasının <AdditionalHeaders> öğesinin <Claim> alt öğesinde kullanılan talep 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 Verify JWT politikasının adını, talep adını ve türünü belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, talep adı claim ve türü integer'dir:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sindeki <AdditionalClaims> öğesi altında kullanılan talep adı ve türünün, 1. adımda hata mesajında tanımlanan talep adı ve türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hak talebi claim, hak talebi türü ise integer, olarak belirtilmiştir. Bu, hata mesajındaki bilgilerle eşleşir:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. <AdditionalHeaders> öğesinin alt öğesi <Claim> içinde 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 örnek JWT'yi Doğrula politikasında, <AdditionalHeaders> öğesi altındaki <Claim> türü integer olarak belirtilir. integer desteklenen bir tür olmadığı için şu hatayı alırsınız:

    Invalid type for additional header : policy(JWT-Verify-RS256) 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.

JWT politikasını doğrulama örneğini düzeltmek için hak talebi türünü boolean olarak değiştirin:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueOfArrayAttribute

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 revision_number
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-Verify-RS256) claim(claim).

Örnek ekran görüntüsü

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

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 Verify JWT politikasının adını ve talep adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, talep adı ise claim'dir:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sindeki <AdditionalHeaders> öğesinin altındaki <Claim> alt öğesinde kullanılan talep adının, 1. adımda hata mesajında belirtilen 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:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. <AdditionalClaims> öğesinin alt öğesi olan <Claim> öğesindeki 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-Verify-RS256) claim(claim).
    

Çözünürlük

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

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

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueForElement

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 Value for element : policy(policy_name) element(element_name).

Örnek hata mesajı

Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).

Örnek ekran görüntüsü

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

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 neden olur.

Teşhis

  1. Hata mesajından Verify JWT politikasının adını ve öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, öğe adı ise Algorithm'dir:

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

    Aşağıda örnek bir JWT politikasını doğrulama verilmiştir:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS128</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. <Algorithm> öğ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 örnek JWT politikasını doğrulama işleminde, <Algorithm> adı HS128 olarak belirtilir. Bu desteklenen bir algoritma olmadığından şu hatayı alırsınız:

    Invalid Value for element : policy(JWT-Verify-RS256) 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

<SecretKey> öğesini kullanan yukarıdaki örnek JWT 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.

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

MissingConfigurationElement

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
Missing configuration element : policy(policy_name) element(element_name).

Örnek hata mesajı

Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).

Örnek ekran görüntüsü

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

Neden

Bu hata, JWT'yi Doğrula politikasında <PublicKey> öğesi RSA Ailesi algoritmalarıyla kullanılmadığında meydana gelir. Aynı şekilde, JWT'yi Doğrula politikasında <SecretKey> öğesi HS Family algoritmalarıyla kullanılmıyorsa da hata oluşabilir.

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

Teşhis

  1. Hata mesajından Verify JWT politikasının adını ve eksik öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, eksik öğenin adı ise PublicKey'dir:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Başarısız olan JWT politikasını doğrulama 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 PublicKey öğesinin eksik olduğu ve kullanılan Algorithm öğesinin RS256 olduğu gösterilmektedir:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Örnek JWT'yi Doğrula politikası, HS Family algoritmalarını kullanıyor ancak zorunlu öğe PublicKey eksik olduğundan şu hatayla karşılaşıyoruz:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    

Çözünürlük

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

RS256 algoritmasını kullanan yukarıdaki örnek Verify JWT politikasını düzeltmek için VerifyJWT politikasına <PublicKey> öğesini ekleyin:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Algorithm>RS256</Algorithm>
    <PublicKey>
      <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidKeyConfiguration

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 2
Invalid Key configuration : policy(JWT-Verify-RS256).

Örnek ekran görüntüsü

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

Neden

Bu hata, Verify JWT politikasının <PublicKey> veya <SecretKey> öğelerinde <Value> alt öğesi ya da zorunlu <JWKS> alt öğesi tanımlanmamışsa oluşur.

Teşhis

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

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Başarısız olan JWT politikasını doğrulama XML'sini inceleyin ve <Value> alt öğesinin veya <JWKS> alt öğesinin <PublicKey> ya da <SecretKey> öğelerinde tanımlanıp tanımlanmadığını doğrulayın. Alt öğe tanımlanmamışsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada <Value> veya <JWKS> alt öğesinin <PublicKey> öğesinde tanımlanmadığı gösterilmektedir:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

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

    Invalid Key configuration : policy(JWT-Verify-RS256).
    

Çözünürlük

Verify JWT politikasının <PublicKey> öğesinde alt öğe <Value> veya <JWKS>'nin her zaman tanımlandığından emin olun.

Doğrulama JWT politikası örneğini düzeltmek için <Value> veya <JWKS> alt öğesini <PublicKey> öğesi altında aşağıdaki gibi tanımlayın:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</PublicJWT>

EmptyElementForKeyConfiguration

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 revision_number
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-Verify-RS256) element(PublicKey/Value).

Örnek ekran görüntüsü

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

Neden

Bu hata, <PublicKey> öğesinin alt öğesi olan <Value> veya <JWKS> öğesindeki ref özelliği belirtilmemişse ya da boşsa oluşur.

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

Teşhis

  1. Hata mesajından, JWT'yi doğrulama politikasının adını ve boş olan öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, öğe adı ise PublicKey/Value'dir:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sini inceleyin ve 1. adımda tanımlanan öğenin boş olduğunu doğrulayın. Boşsa hatanın nedeni budur.

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

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
            <Value/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

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

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
    

Çözünürlük

<PublicKey> öğesinin alt öğesi olan <Value> veya <JWKS> öğesindeki ref özelliğinin her zaman belirtildiğinden emin olun.

Örnek JWT politikasını doğrulamayı düzeltmek için public.publickey öğesinin alt öğesi olan <Value> öğesinde akış değişkeni <PublicKey> kullanın:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidConfigurationForVerify

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 revision_number
Invalid configuration element for verify : policy(policy_name) element(element_name).

Örnek hata mesajı

Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).

Örnek ekran görüntüsü

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

Neden

Bu hata, <Id> öğesi bir VerifyJWT politikasının <SecretKey> öğesi içinde tanımlanırsa oluşur.

Örneğin, <Id> öğesi <SecretKey> öğesinde tanımlanmışsa bu hata oluşur.

Teşhis

  1. Hata mesajından Verify JWT politikasının adını ve geçersiz öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, öğe adı ise SecretKey/Id'dir:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Başarısız olan JWT politikasını doğrulama XML'sini inceleyin ve 1. adımda tanımlanan geçersiz öğenin tanımlandığını doğrulayın. Tanımlanmışsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika, <SecretKey> öğesinin <Id> alt öğesinin tanımlandığını gösterir:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id/>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    <Id> öğesi, JWT'yi Doğrula politikasının <SecretKey> öğesinde tanımlandığı için şu hatayı alırsınız:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    

Çözünürlük

<Id> öğesinin, bir JWT'yi Doğrula politikasının <SecretKey> öğesi içinde hiçbir zaman tanımlanmadığından emin olun.

Verify JWT politikası örneğini düzeltmek için <Id> alt öğesini <SecretKey> öğesinden kaldırın:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref='private.secretkey'/>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidEmptyElement

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 empty element : policy(policy_name) element(element_name).

Örnek hata mesajı

Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).

Örnek ekran görüntüsü

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

Neden

Bu hata, JWT'yi Doğrula politikasının <Source> öğesi boşsa oluşur. Varsa bir Edge akışı değişkeni adıyla tanımlanmalıdır.

Teşhis

  1. Hata mesajından Verify JWT politikasının adını ve boş öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, öğe adı ise PublicKey/Value'dir:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sini inceleyin ve 1. adımda tanımlanan öğenin boş olduğunu doğrulayın. Boşsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika, <Source> öğesinin boş olduğunu gösteriyor:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Source></Source>
        <PublicKey>
            <Value ref="public.publickey"/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Verify JWT politikasının <Source> öğesi boş olduğundan şu hatayı alırsınız:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    

Çözünürlük

Bir JWT'yi Doğrula politikasının <Source> öğesi varsa bir akış değişkeni belirttiğinden emin olun.

Doğrulanmış JWT politikasını düzeltmek için <Source> öğesinde geçerli bir akış değişkeni kullanın:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>jwt-variable</Source>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidPublicKeyValue

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 revision_number
Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).

Örnek hata mesajı

Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).

Örnek ekran görüntüsü

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

Neden

Bu hata, <PublicKey> öğesinin <JWKS> alt öğesinde kullanılan değerin RFC 7517'de belirtildiği gibi geçerli bir biçimde olmaması durumunda oluşur.

Örneğin, abc öğesi altındaki <JWKS> alt öğesinin değeri olarak <PublicKey> kullanılması bu hataya neden olur.

Teşhis

  1. Hata mesajından, JWT'yi doğrulama politikasının adını ve geçersiz değer içeren öğe adını belirleyin. Örneğin, aşağıdaki hata mesajında Verify JWT politikasının adı JWT-Verify-RS256, öğe ise PublicKey/JWKS'dir:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Başarısız olan JWT politikasını doğrulama XML'sini inceleyin ve 1. adımda tanımlanan öğenin, RFC 7517'ye göre geçerli biçimde bir değer içerdiğini doğrulayın. Öğenin değeri geçerli biçimde değilse hatanın nedeni budur.

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
            <JWKS>abc<JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>
    

    <PublicKey> öğesinin <JWKS> alt öğesindeki değer, RFC 7517'ye göre geçerli bir biçimde olmadığı için şu hatayı alırsınız:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    

Çözünürlük

<PublicKey> öğesinin <JWKS> alt öğesinde belirtilen değerin, geçerli bir JWKS biçiminde (RFC 7517) geçerli bir dize veya akış değişkeni olduğundan emin olun.

JWT'yi Doğrula politikasını düzeltmek için <JWKS> değerini aşağıda gösterildiği gibi değiştirin:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
        <JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>

InvalidConfigurationForActionAndAlgorithm

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 <var>revision_number</var>
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).

Örnek hata mesajı

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

Örnek ekran görüntüsü

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

Neden

Bu hata, <PublicKey> öğ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, <PublicKey> öğesini HS Family algoritmalarıyla kullanmak bu hataya neden olur.

Teşhis

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

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. Başarısız olan JWT politikasını doğrulama 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 politikada öğe PublicKey, algoritma ailesi ise HMAC olarak belirtiliyor. Bu, hata mesajındaki bilgilerle eşleşiyor.

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <PublicKey>
            <Value ref="var-value"/>
        </PublicKey>
        <SecretKey>
            <Value ref="private.secretkey"/>
        </SecretKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
        </VerifyJWT>
    
  3. <Algorithm> öğesinin değeri HS256 ise ancak <PublicKey> kullanmışsanız hatanın nedeni budur.

    Yukarıda gösterilen örnek JWT'yi Doğrula politikasında, <Algorithm> öğesi aile algoritması HS256 olarak ayarlanmış olsa bile <PublicKey> öğesi kullanıldığından şu hata oluşur:

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

Çözünürlük

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

Verify JWT politikasını düzeltmek için HS256 algoritmasını kullanan VerifyJWT politikasındaki <SecretKey> öğesini kullanın:

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
    </VerifyJWT>