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

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 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 JWT Doğrulama politikasının ve hak talebi adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT'yi Doğrulama politikasının adı JWT-Verify-RS256, hak talebinin adı ise iss şeklindedir:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Başarısız olan JWT doğrulama politikası XML'indeki <AdditionalClaims> öğesi altında 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 politika hak talebini iss olarak belirtir ve bu değer, hata mesajındaki metinle 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:

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

    hatanın nedeni budur.

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

Örnek JWT'yi Doğrulama politikası ile ilgili sorunu düzeltmek için hak talebi 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ılması şu hata mesajıyla başarısız olur:

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

Neden

DoğrulamaJWT politikasının <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi 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ı hatayla sonuçlanır.

Teşhis

  1. JWT Doğrulama politikasının adını, hak talebinin adını ve hata mesajındaki türü tanımlayın. Örneğin, aşağıdaki hata mesajında JWT'yi Doğrulama politikasının adı JWT-Verify-RS256, hak talebinin 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 JWT Doğrulama 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:

    <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 <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'yi Doğrula politikasındaki örnekte <Claim> türü, <AdditionalClaims> öğesi altında integer olarak belirtilir. integer desteklenen bir tür olmadığından ş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 string (varsayılan), number, boolean veya map veri türlerinin kullanıldığından emin olun.

Örnek JWT'yi Doğrulama politikasını 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ılması şu hata mesajıyla başarısız olur:

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 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 JWT Doğrulama politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında JWT'yi Doğrulama politikasının adı JWT-Verify-RS256 şeklindedir:

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

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

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

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

Örnek JWT'yi Doğrulama politikasını düzeltmek için hak talebi adını aşağıda gösterildiği 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ılması şu hata mesajıyla başarısız olur:

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 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 JWT Doğrulama politikasının adını ve üstbilgi adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Doğrulama politikasının adı JWT-Verify-RS256, üstbilgi adı alg şeklindedir:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Başarısız JWT politikası XML'indeki <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:

    <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

    hatanın nedeni budur.

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

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

Çözünürlük

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

Örnek JWT Doğrulama politikasını 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ılması şu hata mesajıyla başarısız olur:

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

Neden

Hata, JWT'yi Doğrulama politikasının <AdditionalHeaders> öğ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, <AdditionalHeaders> öğesi altında integer hak talebi türünün kullanılması hataya neden olur.

Teşhis

  1. JWT Doğrulama politikasının adını, hak talebi adını ve hata mesajındaki türü tanımlayın. Örneğin aşağıdaki hata mesajında JWT Doğrulama politikasının adı JWT-Verify-RS256, hak talebi 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 JWT Doğrulama 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 politikada hak talebi claim, hak talebi türü ise hata mesajındakiyle eşleşen integer, olarak belirtilir:

    <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 <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'yi Doğrula 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-Verify-RS256) 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.

Örnek JWT'yi Doğrulama politikasını 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ılması şu hata mesajıyla başarısız olur:

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 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, <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde dizi özelliğinin değerinin yes olarak ayarlanması hataya neden olur.

Teşhis

  1. Hata mesajındaki JWT Doğrulama politikasının ve hak talebi adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT Doğrulama politikasının adı JWT-Verify-RS256, hak talebi adı ise claim şeklindedir:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Başarısız JWT politikası XML'indeki <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:

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

Çözünürlük

<AdditionalClaims> veya <AdditionalHeaders> öğelerinin <Claim> alt öğesindeki dizi özelliği değerinin true veya false olarak ayarlandığından emin olun.

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

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 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. Hata mesajındaki JWT Doğrulama politikasının adını ve öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT'yi Doğrulama politikasının adı JWT-Verify-RS256, öğe adı ise Algorithm şeklindedir:

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

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

    hatanın nedeni budur.

    Yukarıda gösterilen JWT'yi Doğrulama 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-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

Yukarıda gösterilen, <SecretKey> öğesini kullanan JWT Doğrulama 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ılması şu hata mesajıyla başarısız olur:

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

Neden

Bu hata, <PublicKey> öğesi, JWT'yi Doğrula politikasında RSA Ailesi algoritmalarıyla kullanılmadığında ortaya çıkar. Benzer şekilde, <SecretKey> öğesi, JWT'yi Doğrula politikasında HS Family algoritmalarıyla kullanılmazsa da hata oluşabilir.

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

Teşhis

  1. JWT Doğrulama 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'yi Doğrulama politikasının adı JWT-Verify-RS256, eksik öğe adı ise PublicKey şeklindedir:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Başarısız JWT Doğrulama 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 PublicKey eksik, kullanılan Algorithm ise RS256 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>
    

    Örnekteki JWT Doğrulama politikası, HS Family algoritmalarını kullanır ancak zorunlu PublicKey öğesi eksik olduğundan şu hataya neden oluyor:

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

Çözünürlük

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

Yukarıda gösterilen ve RS256 algoritmasını kullanan JWT doğrulama örneğini düzeltmek için, <PublicKey> öğesini VerificationJWT politikasına 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ı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 2
Invalid Key configuration : policy(JWT-Verify-RS256).

Ö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, <Value> alt öğesi veya zorunlu <JWKS> alt öğesi, JWT'yi Doğrulama politikasının <PublicKey> veya <SecretKey> öğelerinde tanımlanmamışsa ortaya çıkar.

Teşhis

  1. Hata mesajındaki JWT Doğrulama politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında JWT'yi Doğrulama politikasının adı JWT-Verify-RS256 şeklindedir:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Başarısız JWT doğrulama politikası XML'ini inceleyin ve <Value> alt öğesinin veya <JWKS> alt öğesinin <PublicKey> veya <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>
    

    <Value> veya <JWKS> alt öğesi, JWT'yi Doğrula politikasının <PublicKey> öğesinde tanımlanmadığından şu hatayı alırsınız:

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

Çözünürlük

<Value> veya <JWKS> alt öğesinin, JWT'yi Doğrula politikasının <PublicKey> öğesinde her zaman tanımlandığından emin olun.

Örnek JWT Doğrulama politikasını düzeltmek için <PublicKey> öğesi altında <Value> veya <JWKS> alt öğesini aşağıda gösterildiği 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ılması şu hata mesajıyla başarısız olur:

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

Neden

Bu hata, <PublicKey> öğesinin <Value> veya <JWKS> alt öğesindeki ref özelliği belirtilmemiş veya boşsa ortaya çıkar.

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

Teşhis

  1. JWT Doğrulama 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'yi Doğrulama politikasının adı JWT-Verify-RS256, öğe adı ise PublicKey/Value şeklindedir:

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

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

    JWT'yi Doğrulama politikasının <PublicKey> öğesinin <Value> alt öğesi boş olduğu için şu hatayı alırsınız:

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

Çözünürlük

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

Örnek JWT'yi Doğrulama politikasını düzeltmek için <PublicKey> öğesinin <Value> alt öğesinde public.publickey akış değişkenini 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ılması şu hata mesajıyla başarısız olur:

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

Neden

Bu hata, <Id> öğesi bir VerificationJWT politikasının <SecretKey> öğesi içinde tanımlanırsa ortaya çıkar.

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

Teşhis

  1. JWT Doğrulama politikasının adını ve hata mesajındaki geçersiz öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT'yi Doğrulama politikasının adı JWT-Verify-RS256, öğe adı ise SecretKey/Id şeklindedir:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Başarısız JWT Doğrulama politikası XML'ini 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 politikada <SecretKey> öğesinin <Id> alt öğesinin tanımlandığı gösterilmektedir:

    <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ğrulama politikasının <SecretKey> öğesi içinde 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ğrulama politikasının <SecretKey> öğesi içinde hiçbir zaman tanımlanmadığından emin olun.

Örnek JWT Doğrulama politikasını 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ılması şu hata mesajıyla başarısız olur:

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

Neden

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

Teşhis

  1. JWT Doğrulama 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'yi Doğrulama politikasının adı JWT-Verify-RS256, öğe adı ise PublicKey/Value şeklindedir:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Başarısız JWT Doğrulama politikası XML'ini 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 politikada <Source> öğesinin boş olduğu gösterilmektedir:

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

    JWT'yi Doğrula politikasının <Source> öğesi boş olduğu için şu hatayı alırsınız:

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

Çözünürlük

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

Örnek JWT'yi Doğrulama 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ılması şu hata mesajıyla başarısız olur:

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

Neden

Bu hata, <PublicKey> öğesinin <JWKS> alt öğesinde kullanılan değer RFC 7517'de belirtildiği gibi geçerli bir biçimde değilse ortaya çıkar.

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

Teşhis

  1. JWT'yi Doğrulama politikasının adını ve hata mesajındaki geçersiz bir değeri içeren öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT'yi Doğrulama politikasının adı JWT-Verify-RS256, öğenin adı ise PublicKey/JWKS şeklindedir:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Başarısız JWT doğrulama politikası XML'ini inceleyin ve 1. adımda tanımlanan öğenin, RFC 7517'ye uygun şekilde 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 uyarınca geçerli bir biçimde olmadığından ş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çimindeki (RFC 7517) geçerli bir dize veya akış değişkeni olduğundan emin olun.

JWT'yi Doğrulama 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ılması şu hata mesajıyla başarısız olur:

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

Neden

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

Teşhis

  1. Hata mesajındaki JWT Doğrulama 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'yi Doğrulama politikasının adı JWT-Verify-HS256, öğe adı PublicKey ve algoritma ailesi RSA şeklindedir:

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

    <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> öğesini kullandıysanız hatanın nedeni budur.

    Yukarıda gösterilen JWT'yi Doğrula politikasında, <Algorithm> öğesi HS256 aile algoritması olarak ayarlanmış olsa bile <PublicKey> öğesi kullanılır ve şu hataya neden olur:

    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 Family algoritmalarıyla, <SecretKey> öğesinin de yalnızca HS Family algoritmalarıyla kullanıldığından emin olun.

Örnek JWT'yi Doğrulama politikasını düzeltmek için HS256 algoritmasını kullanan VerificationJWT 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>