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

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

InvalidNameForAdditionalClaim

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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 talebin adı aşağıdaki kayıtlı adlardan biri olduğunda ortaya çıkar:

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

Kayıtlı hak talepleri, 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. Doğrulama JWT politikasının adını ve hak talebi adını hata mesajından belirleyin. Örneğin, aşağıdaki hata mesajında "JWT'yi Doğrula" politikasının adı JWT-Verify-RS256, hak talebi adı ise iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Başarısız JWT politikası XML doğrulamasında <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, hata mesajındakiyle eşleşen iss 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="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'yi Doğrula politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında iss olarak belirtilmiş ve şu hataya yol açmaktadır:

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

Çözünürlük

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

Örnek JWT'yi doğrula politikasıyla 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 üzerinden dağıtılması şu hata mesajını gösterir:

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

VerifyJWT politikasının <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebinin 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'yi Doğrula" 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'yi Doğrula" politikasının adı JWT-Verify-RS256, hak talebi adı claim ve türü integer:

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Başarısız olan JWT politikası XML doğrulamasındaki <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, türü ise 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ı örneğinde, <Claim> türü <AdditionalClaims> öğesinin altında integer olarak belirtilmiştir. integer desteklenmeyen 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 string (varsayılan), number, boolean veya map veri türlerinin kullanıldığından emin olun.

Örnek "JWT'yi Doğrula" 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 üzerinden dağıtılması şu hata mesajını gösterir:

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, hak talebinin adı <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde belirtilmemişse ortaya çıkar.

Teşhis

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

    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'yi Doğrulama politikası XML dosyasını inceleyin ve <AdditionalClaims> veya <AdditionalHeaders> öğesinin altındaki <Claims> alt öğesinde hak talebi 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ğinden hata 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 öğesinde (<Claim>) belirtildiğinden emin olun.

Örnek JWT'yi doğrula 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 üzerinden dağıtılması şu hata mesajını gösterir:

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 biri olduğunda 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. Doğrulama JWT politikasının adını ve hata mesajındaki üstbilgi adını tanımlayın. Örneğin, aşağıdaki hata iletisinde, JWT'yi doğrula politikasının adı JWT-Verify-RS256, üstbilgi adı ise alg şeklindedir:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Başarısız olan JWT politikasını doğrulayın XML'deki <AdditionalHeaders> öğesinin altında bulunan <Claim> alt öğesinde kullanılan üstbilgi adının, 1. adımdaki hata mesajında tanımlanan üstbilgi adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, üst bilgiyi hata mesajındakiyle eşleşen alg 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/>
        <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'yi Doğrula politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında alg olarak belirtilmiş ve şu hataya yol açmaktadır:

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

Çözünürlük

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

Örnek "JWT'yi Doğrula" 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 üzerinden dağıtılması şu hata mesajını gösterir:

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

Bu hata, "JWT'yi Doğrula" politikasının <AdditionalHeaders> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse oluşur:

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

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

Teşhis

  1. JWT'yi doğrula 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'yi Doğrula" politikasının adı JWT-Verify-RS256, hak talebi adı claim, türü ise integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Başarısız olan JWT politikası XML doğrulamasındaki <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, hak talebi türünü ise 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/>
        <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ı örneğinde, <AdditionalHeaders> öğesinin altındaki <Claim> türü integer olarak belirtilmiştir. integer desteklenmeyen 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 <Claim> alt öğesinde yalnızca desteklenen string, number, boolean veya map veri türlerinin kullanıldığından emin olun.

Örnek "JWT'yi Doğrula" 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 üzerinden dağıtılması şu hata mesajını gösterir:

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 öğesindeki dizi özelliğinin değeri true veya false olarak ayarlanmadığında ortaya çıkar.

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

Teşhis

  1. Doğrulama JWT politikasının adını ve hak talebi adını hata mesajından belirleyin. Örneğin, aşağıdaki hata mesajında "JWT'yi doğrulayın" politikasının adı JWT-Verify-RS256, hak talebi adı ise claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Başarısız olan JWT politikasını doğrulayın XML'deki <AdditionalHeaders> öğesinin 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 politika, hak talebi adını hata mesajındaki adla eşleşen claim 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='string' array='yes'/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. <AdditionalClaims> öğesinin <Claim> alt öğesindeki array özelliğinin değeri true veya false olarak ayarlanmadıysa hatanın nedeni budur.

    <AdditionalClaims> öğesinin <Claim> alt öğesindeki array özelliği yukarıdaki örnekte yes olarak ayarlandığından hata 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ğ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 üzerinden dağıtılması şu hata mesajını gösterir:

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

HS256, HS384, HS512, RS256, RS384, RS512

Örneğin, algoritma değerinin <Algorithm> öğesinde RS128 olarak belirtilmesi bu hataya neden olur.

Teşhis

  1. Doğrulama JWT politikasının adını ve öğe adını hata mesajından belirleyin. Ö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 politikası XML dosyasını inceleyin ve <Algorithm> öğesi için belirtilen değeri kontrol edin.

    JWT'yi doğrulama politikasının örneğini aşağıda bulabilirsiniz:

    <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ğrula" politikası örneğinde, <Algorithm> adı HS128 olarak belirtilmiştir. Bu, desteklenen bir algoritma olmadığından hata mesajı 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 ve <SecretKey> öğesini kullanan örnek Doğrulama 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 üzerinden dağıtılması şu hata mesajını gösterir:

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ğrulama politikasında RSA Aile algoritmalarıyla kullanılmadığında ortaya çıkar. Benzer şekilde, <SecretKey> öğesi HS Family algoritmalarıyla kullanılmazsa da hata oluşabilir.

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

Teşhis

  1. Hata mesajındaki "JWT Doğrulama" politikasının adını ve eksik öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında "JWT'yi Doğrula" politikasının adı JWT-Verify-RS256, eksik öğe adı ise PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Başarısız "JWT Doğrulama" politikası XML dosyasını inceleyin ve hata mesajında belirtilen öğenin eksik olduğunu doğrulayın. Eksikse hatanın nedeni budur.

    Örneğin, aşağıdaki politika PublicKey eksik, Algorithm özelliğinin ise RS256 olduğunu göstermektedir:

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

    "JWT'yi Doğrula" politikası örneği, HS Aile algoritmalarını kullanır, ancak zorunlu PublicKey öğesi eksik olduğundan hata ortaya çıkar:

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

Çözünürlük

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

Yukarıda gösterilen ve RS256 algoritmasını kullanan Doğrulama JWT politikasını düzeltmek için <PublicKey> öğesini VerifyJWT 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 üzerinden dağıtılması şu hata mesajını gösterir:

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ğrula politikasının <PublicKey> veya <SecretKey> öğelerinde tanımlanmamışsa ortaya çıkar.

Teşhis

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

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

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

    <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ğrulama 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ğrulama politikasının <PublicKey> öğesinde her zaman tanımlandığından emin olun.

Örnek "JWT Doğrulama" politikasını düzeltmek için <PublicKey> öğesinin altında, aşağıda gösterildiği gibi <Value> veya <JWKS> alt öğesini 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 üzerinden dağıtılması şu hata mesajını gösterir:

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ş ya da boş olduğunda ortaya çıkar.

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

Teşhis

  1. Doğrulama JWT 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 olan JWT'yi Doğrulama politikası XML dosyasını 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 <Value> alt öğesinin boş olduğunu gösterir:

    <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ğ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 <Value> veya <JWKS> alt öğesindeki ref özelliğinin her zaman belirtildiğinden emin olun.

Örnek "JWT'yi Doğrula" 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 üzerinden dağıtılması şu hata mesajını gösterir:

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 VerifyJWT politikasının <SecretKey> öğesi içinde tanımlanırsa meydana gelir.

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

Teşhis

  1. Doğrulama JWT 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 olan JWT'yi Doğrulama politikası XML dosyasını 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ğrulama 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, "JWT Doğrulama" politikasının <SecretKey> öğesinde hiçbir zaman tanımlanmadığından emin olun.

Örnek "JWT'yi Doğrula" politikasını düzeltmek için <SecretKey> öğesinden <Id> alt öğesini 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 üzerinden dağıtılması şu hata mesajını gösterir:

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ş olduğunda ortaya çıkar. Bu değişken varsa bir Sınır akış değişkeni adıyla tanımlanmalıdır.

Teşhis

  1. Doğrulama JWT 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 olan JWT'yi Doğrulama politikası XML dosyasını 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österir:

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

    Doğrulama 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

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

Örnek JWT'yi doğrula 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 üzerinden dağıtılması şu hata mesajını gösterir:

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 belirtilen geçerli bir biçimde değilse ortaya çıkar.

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

Teşhis

  1. Doğrulama JWT politikasının adını ve hata mesajındaki geçersiz değer 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ı da PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Başarısız JWT'yi Doğrulama politikası XML'ini 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ığından hata 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.

Örnek "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 üzerinden dağıtılması şu hata mesajını gösterir:

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ıyla ve <SecretKey> öğesi RSA Aile algoritmalarıyla kullanıldığında ortaya çıkar. Hata, bu koşullardan biri doğru olduğunda da oluşur.

Örneğin, <PublicKey> öğesinin HS Family algoritmalarıyla kullanılması bu hataya neden olur.

Teşhis

  1. Hata mesajındaki JWT'yi doğrula politikasının adını, öğe adını ve algoritma aile adını tanımlayın. Örneğin, aşağıdaki hata mesajında "JWT'yi Doğrula" 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 politikası XML dosyasını doğrulama işleminde kullanılan öğe ve algoritma ailesinin, 1. adımdaki hata mesajında belirtilen öğeyle ve algoritma ailesiyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada öğeyi PublicKey ve algoritma ailesi HMAC olarak belirtiliyor. Bu durumda, hata mesajındaki öğelerle eşleşen bir değer var.

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

    Yukarıda gösterilen JWT'yi doğrulayın politikası örneğinde, <Algorithm> bir aile algoritması HS256 olarak ayarlanmış olmasına rağmen <PublicKey> öğesi kullanılmış. Bu durumda hata ortaya çıkar:

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

"JWT'yi Doğrula" politikasını düzeltmek için HS256 algoritmasını kullanan VerifyJWT politikasındaki <SecretKey> parametresini 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>