Pemecahan masalah error deployment kebijakan VerifyJWT

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

ini.

InvalidNameForAdditionalClaim

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika nama klaim yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalClaims> adalah salah satu nama terdaftar berikut:

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

Klaim terdaftar ditentukan dalam RFC7519.

Misalnya, menggunakan nama klaim iss pada elemen <AdditionalClaims> akan menyebabkan error ini.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama klaim dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama klaimnya adalah iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Pastikan nama klaim yang digunakan dalam elemen <AdditionalClaims> dalam XML kebijakan Verifikasi JWT yang gagal cocok dengan nama klaim yang diidentifikasi dalam pesan error di Langkah 1. Misalnya, kebijakan berikut menetapkan klaim sebagai iss, yang cocok dengan isi pesan error:

    <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. Jika nama klaim yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalClaims> adalah salah satu nama terdaftar berikut:

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

    maka itulah penyebab kesalahannya.

    Dalam contoh kebijakan Verifikasi JWT yang ditampilkan di atas, nama <Claim> ditetapkan sebagai iss di bawah elemen <AdditionalClaims>, sehingga menghasilkan error:

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

Resolusi

Jangan menggunakan nama yang terdaftar "kid", "iss", "sub", "aud", "iat", "exp", "nbf" atau "jti" dalam elemen turunan <Claim> dari elemen <AdditionalClaims>.

Untuk memperbaiki masalah menggunakan contoh Verifikasi kebijakan JWT, ubah nama klaim menjadi status:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Jenis klaim yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalClaims> kebijakan VerifyJWT bukan salah satu dari jenis berikut:

string (default), number, boolean, atau map

Misalnya, menggunakan jenis klaim integer di bawah elemen <AdditionalClaims> akan menyebabkan error.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT, nama klaim, dan jenis dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256, nama klaim adalah claim, dan jenisnya adalah integer:

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Pastikan nama klaim dan jenis yang digunakan pada elemen <AdditionalClaims> di XML kebijakan Verifikasi JWT yang gagal cocok dengan nama dan jenis klaim yang diidentifikasi dalam pesan error di Langkah 1. Misalnya, kebijakan berikut menentukan klaim sebagai claim dan jenisnya adalah integer, yang cocok dengan isi pesan error:

    <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. Jika jenis klaim yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalClaims> bukan salah satu dari jenis berikut:

    string (default), number, boolean, atau map

    maka itulah penyebab kesalahannya.

    Dalam contoh kebijakan Verifikasi JWT yang ditampilkan di atas, jenis <Claim> ditentukan sebagai integer di bawah elemen <AdditionalClaims>. Karena integer bukan jenis yang didukung, Anda mendapatkan error:

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

Resolusi

Pastikan hanya jenis data yang didukung string (default), number, boolean, atau map yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalClaims>.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, ubah jenis klaim menjadi boolean:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika nama klaim tidak ditentukan dalam elemen turunan <Claim> dari elemen <AdditionalClaims> atau <AdditionalHeaders>.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan verifikasi bahwa nama klaim tidak ada dalam elemen turunan <Claims> pada elemen <AdditionalClaims> atau <AdditionalHeaders>. Misalnya, kebijakan Verifikasi JWT berikut tidak menentukan nama klaim pada elemen <AdditionalClaims>:

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

    Karena nama <Claim> tidak ditentukan dalam elemen <AdditionalClaims>, Anda akan mendapatkan error:

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

Resolusi

Pastikan nama klaim selalu ditentukan dalam elemen turunan <Claim> dari elemen <AdditionalClaims> atau <AdditionalHeaders>.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, tentukan nama klaim seperti yang ditunjukkan di bawah ini:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika nama klaim yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalHeaders> adalah salah satu header JWT standar berikut:

alg atau typ

Misalnya, menggunakan nama klaim alg di bawah elemen <AdditionalHeaders> akan menyebabkan error.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama header dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama header adalah alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Pastikan nama header yang digunakan dalam elemen turunan <Claim> pada elemen <AdditionalHeaders> dalam XML kebijakan Verifikasi JWT yang gagal cocok dengan nama header yang diidentifikasi dalam pesan error pada Langkah 1. Misalnya, kebijakan berikut menentukan header sebagai alg, yang cocok dengan isi pesan error:

    <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. Jika nama header yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalClaims> adalah salah satu header JWT standar berikut:

    alg atau typ

    maka itulah penyebab kesalahannya.

    Dalam contoh kebijakan Verifikasi JWT yang ditampilkan di atas, nama <Claim> ditetapkan sebagai alg di bawah elemen <AdditionalClaims>, sehingga menghasilkan error:

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

Resolusi

Jangan gunakan header JWT standar alg atau typ dalam elemen turunan <Claim> dari elemen <AdditionalHeaders>.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, gunakan nama x5c dalam elemen turunan <Claim> dari elemen <AdditionalHeaders>:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error akan terjadi jika jenis klaim yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalHeaders> kebijakan Verifikasi JWT bukan salah satu dari jenis berikut:

string (default), number, boolean, atau map

Misalnya, menggunakan jenis klaim integer di bawah elemen <AdditionalHeaders> akan menyebabkan error.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT, nama klaim, dan jenis dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256, nama klaim adalah claim, dan jenisnya adalah integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Pastikan nama klaim dan jenis yang digunakan pada elemen <AdditionalClaims> di XML kebijakan Verifikasi JWT yang gagal cocok dengan nama dan jenis klaim yang diidentifikasi dalam pesan error di Langkah 1. Misalnya, kebijakan berikut menentukan klaim sebagai claim dan jenis klaim sebagai integer, yang cocok dengan isi pesan error:

    <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. Jika jenis klaim yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalHeaders> bukan salah satu dari jenis berikut:

    string (default), number, boolean, atau map

    maka itulah penyebab kesalahannya.

    Dalam contoh kebijakan Verifikasi JWT yang ditampilkan di atas, jenis <Claim> di bawah elemen <AdditionalHeaders> ditentukan sebagai integer. Karena integer bukan jenis yang didukung, Anda mendapatkan error:

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

Resolusi

Pastikan hanya jenis data yang didukung string, number, boolean, atau map yang digunakan dalam elemen turunan <Claim> dari elemen <AdditionalHeaders>.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, ubah jenis klaim menjadi boolean:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika nilai atribut array dalam elemen turunan <Claim> dari elemen <AdditionalClaims> atau <AdditionalHeaders> tidak ditetapkan ke true atau false.

Misalnya, menetapkan nilai atribut array sebagai yes dalam elemen turunan <Claim> dari elemen <AdditionalClaims> atau <AdditionalHeaders> akan menyebabkan error.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama klaim dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama klaim adalah claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Verifikasi bahwa nama klaim yang digunakan dalam elemen turunan <Claim> di bawah elemen <AdditionalHeaders> dalam XML kebijakan Verifikasi JWT yang gagal cocok dengan nama klaim yang diidentifikasi dalam pesan error pada Langkah 1. Misalnya, kebijakan berikut menetapkan nama klaim sebagai claim, yang cocok dengan isi pesan error:

    <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. Jika nilai atribut array dalam elemen turunan <Claim> dari elemen <AdditionalClaims> tidak ditetapkan ke true atau false, maka itulah penyebab error.

    Karena atribut array dalam elemen turunan <Claim> dari elemen <AdditionalClaims> disetel ke yes dalam contoh di atas, Anda akan mendapatkan error:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    

Resolusi

Pastikan nilai atribut array dalam elemen turunan <Claim> dari elemen <AdditionalClaims> atau <AdditionalHeaders> disetel ke true atau false.

Untuk memperbaiki contoh Verifikasi kebijakan JWT yang ditampilkan di atas, ubah nilai atribut array menjadi true:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika nilai yang ditentukan dalam elemen <Algorithm> bukan salah satu dari nilai berikut:

HS256, HS384, HS512, RS256, RS384, RS512

Misalnya, menentukan nilai algoritme sebagai RS128 dalam elemen <Algorithm> akan menyebabkan error ini.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama elemen dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama elemennya adalah Algorithm:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan periksa nilai yang ditentukan untuk elemen <Algorithm>.

    Berikut ini contoh kebijakan Verifikasi JWT:

    <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. Periksa nilai yang ditentukan dalam elemen <Algorithm>. Jika data yang ditampilkan bukan salah satu dari nilai berikut:

    HS256, HS384, HS512, RS256, RS384, RS512

    maka itulah penyebab kesalahannya.

    Dalam contoh Verifikasi kebijakan JWT yang ditampilkan di atas, nama <Algorithm> ditetapkan sebagai HS128. Karena ini bukan algoritma yang didukung, Anda mendapatkan error:

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

Resolusi

Pastikan nilai yang ditentukan dalam elemen <Algorithm> adalah salah satu nilai yang didukung:

HS256, HS384, HS512, RS256, RS384, RS512

Untuk memperbaiki contoh Verifikasi kebijakan JWT yang ditampilkan di atas, yang menggunakan elemen <SecretKey>, ubah nilai <Algorithm> menjadi HS25. Catatan, saat elemen <SecretKey> digunakan, Anda hanya dapat menggunakan algoritma Keluarga HS.

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika elemen <PublicKey> tidak digunakan dengan algoritma RSA Family dalam kebijakan Verifikasi JWT. Demikian pula, error dapat terjadi jika elemen <SecretKey> tidak digunakan dengan algoritma Keluarga HS dalam kebijakan Verifikasi JWT.

Misalnya, error ini terjadi jika tidak menggunakan elemen <PublicKey> dengan algoritma Keluarga RSA.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama elemen yang tidak ada dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama elemen yang tidak ada adalah PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan verifikasi bahwa elemen yang ditunjukkan dalam pesan error tidak ada. Jika tidak ada, maka itulah penyebab error.

    Misalnya, kebijakan berikut menunjukkan bahwa PublicKey tidak ada dan Algorithm yang digunakan adalah RS256:

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

    Contoh Verifikasi kebijakan JWT menggunakan algoritma HS Family, tetapi elemen wajib PublicKey tidak ada, sehingga menghasilkan error:

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

Resolusi

Pastikan elemen <PublicKey> wajib digunakan dengan algoritma RSA Family dan elemen <SecretKey> wajib digunakan dengan algoritma HS Family.

Untuk memperbaiki contoh Verifikasi kebijakan JWT yang ditampilkan di atas, yang menggunakan algoritma RS256, tambahkan elemen <PublicKey> ke kebijakan VerifyJWT:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika elemen turunan <Value> atau elemen turunan wajib <JWKS> tidak ditentukan dalam elemen <PublicKey> atau <SecretKey> dari kebijakan Verifikasi JWT.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan verifikasi apakah elemen turunan <Value> atau elemen turunan <JWKS> tidak ditentukan dalam elemen <PublicKey> atau <SecretKey>. Jika elemen turunan tidak ditentukan, maka itulah penyebab error.

    Misalnya, kebijakan berikut menunjukkan bahwa elemen turunan <Value> atau <JWKS> tidak ditetapkan dalam elemen <PublicKey>:

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

    Karena elemen turunan <Value> atau <JWKS> tidak ditentukan dalam elemen <PublicKey> dari kebijakan Verifikasi JWT, Anda akan mendapatkan error:

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

Resolusi

Pastikan elemen turunan <Value> atau <JWKS> selalu ditentukan dalam elemen <PublicKey> dari kebijakan Verifikasi JWT.

Untuk memperbaiki contoh kebijakan Verifikasi JWT, tentukan elemen turunan <Value> atau <JWKS> pada elemen <PublicKey> seperti yang ditampilkan di bawah ini:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika atribut ref dalam elemen turunan <Value> atau <JWKS> elemen <PublicKey> tidak ditentukan atau kosong.

Misalnya, jika elemen turunan <Value> dari elemen <PublicKey> kosong, error akan terjadi.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama elemen yang kosong dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama elemennya adalah PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan verifikasi bahwa elemen yang diidentifikasi pada Langkah 1 kosong. Jika kosong, maka itulah penyebab error.

    Misalnya, kebijakan berikut menunjukkan bahwa elemen turunan <Value> dari elemen <PublicKey> kosong:

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

    Karena elemen turunan <Value> dari elemen <PublicKey> dalam kebijakan Verifikasi JWT kosong, Anda mendapatkan error:

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

Resolusi

Pastikan atribut ref di elemen turunan <Value> atau <JWKS> dari elemen <PublicKey> selalu ditentukan.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, gunakan variabel alur public.publickey dalam elemen turunan <Value> dari elemen <PublicKey>:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

Error Saving Revision revision_number
Invalid configuration element for verify : policy(policy_name) element(element_name).

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika elemen <Id> ditentukan dalam elemen <SecretKey> di kebijakan VerifyJWT.

Misalnya, jika elemen <Id> ditentukan dalam elemen <SecretKey>, error ini akan terjadi.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama elemen yang tidak valid dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama elemennya adalah SecretKey/Id:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan verifikasi bahwa elemen tidak valid yang diidentifikasi dalam Langkah 1 telah ditentukan. Jika sudah ditentukan, maka itulah penyebab error.

    Misalnya, kebijakan berikut menunjukkan bahwa elemen turunan <Id> dari elemen <SecretKey> ditentukan:

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

    Karena elemen <Id> ditentukan dalam elemen <SecretKey> kebijakan Verifikasi JWT, Anda akan mendapatkan error:

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

Resolusi

Pastikan elemen <Id> tidak pernah ditentukan dalam elemen <SecretKey> dari kebijakan Verifikasi JWT.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, hapus elemen turunan <Id> dari elemen <SecretKey>:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

Error Saving Revision 
Invalid empty element : policy(policy_name) element(element_name).

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika elemen <Source> dari kebijakan Verifikasi JWT kosong. Jika ada, parameter ini harus ditentukan dengan nama variabel alur Edge.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama elemen kosong dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan nama elemennya adalah PublicKey/Value:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan verifikasi bahwa elemen yang diidentifikasi pada Langkah 1 kosong. Jika kosong, maka itulah penyebab error.

    Misalnya, kebijakan berikut menunjukkan bahwa elemen <Source> kosong:

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

    Karena elemen <Source> dari kebijakan Verifikasi JWT kosong, Anda mendapatkan error:

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

Resolusi

Jika elemen <Source> dari kebijakan Verifikasi JWT ada, pastikan elemen tersebut menentukan variabel flow.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, gunakan variabel flow yang valid dalam elemen <Source>:

<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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

Error Saving Revision revision_number
Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika nilai yang digunakan dalam elemen turunan <JWKS> dari elemen <PublicKey> tidak dalam format yang valid seperti yang ditentukan dalam RFC 7517.

Misalnya, menggunakan abc sebagai nilai elemen turunan <JWKS> di bawah elemen <PublicKey> akan menyebabkan error ini.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT dan nama elemen yang berisi nilai tidak valid dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-RS256 dan elemennya adalah PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Periksa XML kebijakan Verifikasi JWT yang gagal dan verifikasi bahwa elemen yang diidentifikasi pada Langkah 1 berisi nilai dalam format yang valid sesuai dengan RFC 7517. Jika nilai elemen tidak dalam format yang valid, maka itulah penyebab error.

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

    Anda akan mendapatkan error karena nilai dalam elemen turunan <JWKS> dari elemen <PublicKey> tidak dalam format yang valid sesuai RFC 7517:

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

Resolusi

Pastikan nilai yang ditentukan dalam elemen turunan <JWKS> elemen <PublicKey> merupakan string atau variabel flow yang valid dalam format JWKS yang valid (RFC 7517).

Untuk memperbaiki contoh Verifikasi kebijakan JWT, ubah nilai <JWKS> seperti yang ditunjukkan di bawah ini:

    <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

Pesan error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh pesan error

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

Screenshot contoh

Di UI Edge, Anda akan melihat kotak dialog dengan error:

Penyebab

Error ini terjadi jika elemen <PublicKey> digunakan dengan algoritma Keluarga HS dan elemen <SecretKey> digunakan dengan algoritma Keluarga RSA. Error juga akan terjadi jika salah satu kondisi ini benar.

Misalnya, penggunaan elemen <PublicKey> dengan algoritma Keluarga HS akan menyebabkan error ini.

Diagnosis

  1. Identifikasi nama kebijakan Verifikasi JWT, nama elemen, dan nama keluarga algoritme dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan Verifikasi JWT adalah JWT-Verify-HS256, nama elemen adalah PublicKey, dan kelompok algoritme adalah RSA:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. Verifikasi bahwa elemen dan kelompok algoritme yang digunakan dalam XML kebijakan Verifikasi JWT yang gagal cocok dengan elemen dan kelompok algoritme yang diidentifikasi dalam pesan error pada Langkah 1. Misalnya, kebijakan berikut menetapkan elemen sebagai PublicKey dan kelompok algoritma sebagai HMAC, yang cocok dengan apa yang ada dalam pesan error

    <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. Jika nilai elemen <Algorithm> adalah HS256, tetapi Anda telah menggunakan <PublicKey>, maka itulah penyebab error.

    Dalam contoh Verifikasi kebijakan JWT yang ditampilkan di atas, elemen <PublicKey> digunakan meskipun <Algorithm> disetel ke algoritma keluarga HS256, sehingga menghasilkan error:

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

Resolusi

Pastikan elemen <PublicKey> hanya digunakan dengan algoritma RSA Family dan elemen <SecretKey> hanya digunakan dengan algoritma HS Family.

Untuk memperbaiki contoh Verifikasi kebijakan JWT, gunakan <SecretKey> dari kebijakan VerifyJWT yang menggunakan algoritma HS256:

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