Risolvere i problemi relativi all'errore di deployment dei criteri di Verification

Stai visualizzando la documentazione di Apigee X.
Visualizza la documentazione di Apigee Edge.

NomeNome non valido

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Nome non valido per il messaggio di errore aggiuntivo della rivendicazione.

Causa

Questo errore si verifica se il nome della dichiarazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> è uno dei seguenti nomi registrati:

"kid", "quotidiano";

Le rivendicazioni registrate sono specificate in RFC 7519.

Ad esempio, se utilizzi il nome della rivendicazione iss sotto l'elemento <AdditionalClaims>, verrà restituito questo errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT e il nome della rivendicazione dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome della rivendicazione è iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Verifica che il nome della rivendicazione utilizzato nell'elemento <AdditionalClaims> nell'XML del criterio Verification di WWT non riuscito corrisponda al nome della rivendicazione identificato nel messaggio di errore visualizzato nel passaggio 1. Ad esempio, la seguente norma specifica la rivendicazione come iss, che corrisponde a che cosa è presente nel messaggio di errore:

    <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. Se il nome della rivendicazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> è uno dei seguenti nomi registrati:

    "kid", "quotidiano";

    allora questa è la causa dell'errore.

    Nell'esempio riportato dal criterio di verifica JWT riportato sopra, il nome <Claim> è specificato come iss sotto l'elemento <AdditionalClaims>, causando l'errore:

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

Risoluzione

Non utilizzare nessuno dei nomi registrati "kid", "iss", "sub", "aud", "iat", "exp", "nbf" o "jti" nell'elemento figlio <Claim>.

Per risolvere il problema con il criterio di verifica JWT di esempio, modifica il nome della rivendicazione in 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

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Tipo non valido per il messaggio aggiuntivo di errore della rivendicazione.

Causa

Il tipo di dichiarazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> del criterio VerificationJWT non è uno dei seguenti tipi:

string (valore predefinito), number, boolean o map

Ad esempio, se utilizzi il tipo di rivendicazione integer sotto l'elemento <AdditionalClaims> verrà restituito l'errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT, il nome della rivendicazione e il tipo dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256, il nome della rivendicazione è claim e il tipo è integer:.

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Verifica che il nome della rivendicazione e il tipo utilizzato nell'elemento <AdditionalClaims> nel file XML del criterio Verification di JWT non riuscito corrispondano al nome e al tipo di rivendicazione identificati nel messaggio di errore durante il passaggio 1. Ad esempio, il seguente criterio specifica la rivendicazione come claim e il tipo come integer, che corrisponde a ciò che è presente nel messaggio di errore:

    <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. Se il tipo di rivendicazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> non è uno dei seguenti tipi:

    string (valore predefinito), number, boolean o map

    allora questa è la causa dell'errore.

    Nell'esempio il criterio JWT di verifica mostrato in precedenza, il tipo <Claim> è specificato come integer sotto l'elemento <AdditionalClaims>. Poiché integer non è un tipo supportato, viene visualizzato l'errore:

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

Risoluzione

Assicurati di utilizzare solo i tipi di dati supportati string (impostazione predefinita), number, boolean o map nell'elemento secondario <Claim> dell'elemento <AdditionalClaims>.

Per correggere il criterio Verifica JWT di esempio, modifica il tipo di rivendicazione in 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>

Manca il nome per la rivendicazione aggiuntiva

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Nome attributo mancante nel messaggio di errore della rivendicazione.

Causa

Questo errore si verifica se il nome della rivendicazione non è specificato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> o <AdditionalHeaders>.

Diagnosi

  1. Identifica il nome del criterio Verification JWT dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Esamina il file XML del criterio Verification JWT non riuscito e verifica che il nome della rivendicazione non sia specificato nell'elemento secondario <Claims> sotto l'elemento <AdditionalClaims> o <AdditionalHeaders>. Ad esempio, le seguenti norme di Verification JWT non specificano il nome della rivendicazione nell'elemento <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>
    

    Poiché il nome <Claim> non è specificato nell'elemento <AdditionalClaims>, viene visualizzato l'errore:

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

Risoluzione

Assicurati che il nome della rivendicazione sia sempre specificato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> o <AdditionalHeaders>.

Per correggere l'esempio delle norme Verifica JWT, specifica il nome della rivendicazione come mostrato di seguito:

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

Nome non valido per l'intestazione aggiuntiva

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Nome del messaggio di errore dell'intestazione aggiuntivo non valido.

Causa

Questo errore si verifica se il nome della dichiarazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalHeaders> è una delle seguenti intestazioni JWT standard:

alg o typ

Ad esempio, l'utilizzo del nome della rivendicazione alg sotto l'elemento <AdditionalHeaders> causerà l'errore.

Diagnosi

  1. Individua il nome del criterio di verifica JWT e il nome dell'intestazione nel messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome dell'intestazione è alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Verifica che il nome dell'intestazione utilizzato nell'elemento secondario <Claim> sotto l'elemento <AdditionalHeaders> nell'XML del criterio Verification di WWT non riuscito corrisponda al nome dell'intestazione identificato nel messaggio di errore durante il passaggio 1. Ad esempio, il seguente criterio specifica l'intestazione come alg, che corrisponde a che cosa è presente nel messaggio di errore:

    <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. Se il nome dell'intestazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> è una delle seguenti intestazioni JWT standard:

    alg o typ

    allora questa è la causa dell'errore.

    Nell'esempio riportato dal criterio di verifica JWT riportato sopra, il nome <Claim> è specificato come alg sotto l'elemento <AdditionalClaims>, causando l'errore:

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

Risoluzione

Non utilizzare le intestazioni JWT standard alg o typ nell'elemento secondario <Claim> dell'elemento <AdditionalHeaders>.

Per correggere il criterio Verifica JWT di esempio, utilizza il nome x5c nell'elemento secondario <Claim> dell'elemento <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

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Tipo non valido per il messaggio di errore aggiuntivo dell'intestazione.

Causa

L'errore si verifica se il tipo di rivendicazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalHeaders> del criterio Verifica JWT non è uno dei seguenti tipi:

string (valore predefinito), number, boolean o map

Ad esempio, l'utilizzo del tipo di rivendicazione integer nell'elemento <AdditionalHeaders> causerà l'errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT, il nome della rivendicazione e il tipo dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256, il nome della rivendicazione è claim e il tipo è integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Verifica che il nome della rivendicazione e il tipo utilizzato nell'elemento <AdditionalClaims> nel file XML del criterio Verification di JWT non riuscito corrispondano al nome e al tipo di rivendicazione identificati nel messaggio di errore durante il passaggio 1. Ad esempio, la seguente norma specifica la rivendicazione come claim e il tipo di rivendicazione come integer, che corrisponde al contenuto del messaggio di errore:

    <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. Se il tipo di rivendicazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalHeaders> non è uno dei seguenti tipi:

    string (valore predefinito), number, boolean o map

    allora questa è la causa dell'errore.

    Nell'esempio il criterio JWT di verifica mostrato in precedenza, il tipo <Claim> nell'elemento <AdditionalHeaders> è specificato come integer. Poiché integer non è un tipo supportato, viene visualizzato l'errore:

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

Risoluzione

Assicurati di utilizzare solo i tipi di dati supportati string, number, boolean o map nell'elemento secondario <Claim> dell'elemento <AdditionalHeaders>.

Per correggere il criterio Verifica JWT di esempio, modifica il tipo di rivendicazione in 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>

Attributo InvalidValueOfArray

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Valore non valido per il messaggio di errore dell'attributo array.

Causa

Questo errore si verifica se il valore dell'attributo array nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> o <AdditionalHeaders> non è impostato su true o false.

Ad esempio, se imposti il valore dell'attributo array su yes nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> o <AdditionalHeaders>, si verifica l'errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT e il nome della rivendicazione dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome della rivendicazione è claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Verifica che il nome della rivendicazione utilizzato nell'elemento secondario <Claim> all'interno dell'elemento <AdditionalHeaders> nell'XML del criterio Verification di JWT non riuscito corrisponda al nome della rivendicazione identificato nel messaggio di errore visualizzato nel passaggio 1. Ad esempio, la seguente norma specifica il nome della rivendicazione come claim, che corrisponde a cosa è presente nel messaggio di errore:

    <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. Se il valore dell'attributo array nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> non è impostato su true o false, la causa dell'errore è questa.

    Poiché l'attributo array nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> è impostato su yes nell'esempio precedente, viene visualizzato il messaggio di errore:

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

Risoluzione

Assicurati che il valore dell'attributo array nell'elemento secondario <Claim> degli elementi <AdditionalClaims> o <AdditionalHeaders> sia impostato su true o false.

Per correggere il criterio Verifica JWT di esempio mostrato sopra, modifica il valore dell'attributo array in 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>

ValoreValore non valido

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Valore non valido per il messaggio di errore dell'elemento.

Causa

Questo errore si verifica se il valore specificato nell'elemento <Algorithm> non è uno dei seguenti valori:

HS256, HS384, HS512, RS256, RS384 e RS512

Ad esempio, se specifichi il valore dell'algoritmo come RS128 nell'elemento <Algorithm>, si verifica questo errore.

Diagnosi

  1. Individua il nome del criterio di verifica JWT e il nome dell'elemento nel messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome dell'elemento è Algorithm:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Esamina il file XML del criterio Verification JWT non riuscito e controlla il valore specificato per l'elemento <Algorithm>.

    Ecco un esempio di criterio JWT di verifica:

    <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. Esamina il valore specificato nell'elemento <Algorithm>. Se non si tratta di uno dei seguenti valori:

    HS256, HS384, HS512, RS256, RS384 e RS512

    allora questa è la causa dell'errore.

    Nell'esempio il criterio Verification JWT mostrato in precedenza, il nome <Algorithm> è specificato come HS128. Dato che questo non è un algoritmo supportato, viene visualizzato l'errore:

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

Risoluzione

Assicurati che il valore specificato nell'elemento <Algorithm> sia uno dei valori supportati:

HS256, HS384, HS512, RS256, RS384 e RS512

Per correggere l'esempio del criterio Verification JWT mostrato sopra, che utilizza l'elemento <SecretKey>, modifica il valore di <Algorithm> in HS25. Tieni presente che, quando viene utilizzato l'elemento <SecretKey>, puoi usare soltanto algoritmi della famiglia 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>

Elemento di configurazione mancante

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Messaggio di errore dell'elemento di configurazione mancante.

Causa

Questo errore si verifica quando l'elemento <PublicKey> non viene utilizzato con gli algoritmi della famiglia RSA nel criterio di verifica JWT. Allo stesso modo, l'errore può verificarsi se l'elemento <SecretKey> non viene utilizzato con gli algoritmi della famiglia HS nel criterio di verifica JWT.

Ad esempio, se non utilizzi l'elemento <PublicKey> con gli algoritmi della famiglia RSA, è possibile questo errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT e il nome dell'elemento mancante nel messaggio di errore. Ad esempio, nel seguente messaggio di errore il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome dell'elemento mancante è PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Esamina il file XML del criterio Verification JWT non riuscito e verifica che manca l'elemento indicato nel messaggio di errore. In questo caso, la causa dell'errore è questa.

    Ad esempio, il seguente criterio indica che PublicKey non è presente e Algorithm utilizzato è 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>
    

    Il criterio di verifica JWT di esempio utilizza algoritmi di famiglia HS, ma manca l'elemento obbligatorio PublicKey e si verifica l'errore:

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

Risoluzione

Assicurati che l'elemento obbligatorio <PublicKey> venga utilizzato con gli algoritmi della famiglia RSA e l'elemento obbligatorio <SecretKey> con gli algoritmi della famiglia HS.

Per correggere l'esempio del criterio Verification JWT mostrato sopra, che utilizza l'algoritmo RS256, aggiungi l'elemento <PublicKey> al criterio VerificationJWT:

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

Configurazione di chiave non valida

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Messaggio di errore di configurazione della chiave non valido.

Causa

Questo errore si verifica se l'elemento secondario <Value> o l'elemento secondario obbligatorio <JWKS> non è definito negli elementi <PublicKey> o <SecretKey> del criterio di verifica JWT.

Diagnosi

  1. Identifica il nome del criterio Verification JWT dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Esamina l'XML del criterio JWT non riuscito e verifica se l'elemento secondario <Value> o l'elemento secondario <JWKS> non è definito negli elementi <PublicKey> o <SecretKey>. Se non è definito l'elemento secondario, questa è la causa dell'errore.

    Ad esempio, il seguente criterio mostra che l'elemento secondario <Value> o <JWKS> non è definito nell'elemento <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>
    

    Poiché l'elemento secondario <Value> o <JWKS> non è definito nell'elemento <PublicKey> del criterio Verifica JWT, viene visualizzato l'errore:

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

Risoluzione

Assicurati che l'elemento secondario <Value> o <JWKS> sia sempre definito nell'elemento <PublicKey> del criterio Verifica JWT.

Per correggere il criterio JWT di esempio, definisci l'elemento secondario <Value> o <JWKS> nell'elemento <PublicKey> come mostrato di seguito:

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

VuotoPerChiaveChiaveConfigurazione

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Elemento vuoto per il messaggio di errore di configurazione della chiave.

Causa

Questo errore si verifica se l'attributo ref nell'elemento secondario <Value> o <JWKS> dell'elemento <PublicKey> non è specificato o vuoto.

Ad esempio, se l'elemento secondario <Value> dell'elemento <PublicKey> è vuoto, si verifica l'errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT e il nome dell'elemento vuoto dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome dell'elemento è PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Esamina il file XML del criterio Verification JWT non riuscito e verifica che l'elemento identificato nel passaggio 1 sia vuoto. Se è vuoto, la causa dell'errore è questa.

    Ad esempio, il seguente criterio mostra che l'elemento secondario <Value> dell'elemento <PublicKey> è vuoto:

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

    Poiché l'elemento secondario <Value> dell'elemento <PublicKey> del criterio di verifica JWT è vuoto, viene visualizzato l'errore:

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

Risoluzione

Assicurati che l'attributo ref nell'elemento secondario <Value> o <JWKS> dell'elemento <PublicKey> sia sempre specificato.

Per correggere l'esempio del criterio Verification JWT, utilizza la variabile di flusso public.publickey nell'elemento secondario <Value> dell'elemento <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>

Configurazione non valida per la verifica

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Elemento di configurazione non valido per il messaggio di errore di verifica.

Causa

Questo errore si verifica se l'elemento <Id> è definito all'interno dell'elemento <SecretKey> di un criterio VerificationJWT.

Ad esempio, se l'elemento <Id> è definito nell'elemento <SecretKey>, si verifica questo errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT e il nome dell'elemento non valido indicato nel messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome dell'elemento è SecretKey/Id:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Esamina l'XML del criterio JWT non riuscito e verifica che sia definito l'elemento non valido identificato nel passaggio 1. Se viene definita, questa è la causa dell'errore.

    Ad esempio, il seguente criterio mostra che è definito l'elemento secondario <Id> dell'elemento <SecretKey>:

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

    Dal momento che l'elemento <Id> è definito all'interno dell'elemento <SecretKey> del criterio Verifica JWT, viene visualizzato l'errore:

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

Risoluzione

Assicurati che l'elemento <Id> non sia mai definito all'interno dell'elemento <SecretKey> di un criterio Verifica JWT.

Per correggere il criterio Verifica JWT di esempio, rimuovi l'elemento secondario <Id> dall'elemento <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>

Elemento non valido

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Messaggio di errore dell'elemento vuoto non valido.

Causa

Questo errore si verifica se l'elemento <Source> del criterio Verification JWT è vuoto. Se presente, deve essere definito con un nome variabile di flusso.

Diagnosi

  1. Identifica il nome del criterio Verification JWT e il nome dell'elemento vuoto indicato nel messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e il nome dell'elemento è PublicKey/Value:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Esamina il file XML del criterio Verification JWT non riuscito e verifica che l'elemento identificato nel passaggio 1 sia vuoto. Se è vuoto, la causa dell'errore è questa.

    Ad esempio, il seguente criterio mostra che l'elemento <Source> è vuoto:

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

    Poiché l'elemento <Source> del criterio Verification JWT è vuoto, viene visualizzato l'errore:

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

Risoluzione

Se è presente l'elemento <Source> di un criterio Verifica JWT, assicurati che specifichi una variabile di flusso.

Per correggere il criterio Verifica JWT di esempio, utilizza una variabile di flusso valida nell'elemento <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>

Valore chiave pubblica non valido

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Valore chiave pubblica non valido nel messaggio di errore di configurazione.

Causa

Questo errore si verifica se il valore utilizzato nell'elemento secondario <JWKS> dell'elemento <PublicKey> non è in un formato valido come specificato in RFC 7517.

Ad esempio, se utilizzi abc come valore dell'elemento secondario <JWKS> sotto l'elemento <PublicKey>, si verificherà questo errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT e il nome dell'elemento contenente un valore non valido nel messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-RS256 e l'elemento è PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Esamina il codice XML del criterio Verification di JWT non riuscito e verifica che l'elemento identificato nel passaggio 1 contenga un valore in un formato valido come da RFC 7517. Se il valore dell'elemento non è in un formato valido, questa è la causa dell'errore.

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

    Poiché il valore nell'elemento secondario <JWKS> dell'elemento <PublicKey> non è in un formato valido per RFC 7517, viene visualizzato l'errore:

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

Risoluzione

Assicurati che il valore specificato nell'elemento secondario <JWKS> dell'elemento <PublicKey> sia una stringa o una variabile di flusso valida in un formato JWKS valido (RFC 7517).

Per correggere il criterio Verifica JWT di esempio, modifica il valore di <JWKS> come mostrato di seguito:

    <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

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee non riesce e restituisce questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee vedrai una finestra di dialogo con un errore:

Elemento di configurazione non valido per questa azione e il messaggio di errore dell'algoritmo.

Causa

Questo errore si verifica se l'elemento <PublicKey> viene utilizzato con gli algoritmi della famiglia HS e l'elemento <SecretKey> viene utilizzato con gli algoritmi della famiglia RSA. L'errore si verifica anche se una di queste condizioni è vera.

Ad esempio, l'utilizzo dell'elemento <PublicKey> con gli algoritmi della famiglia HS causa questo errore.

Diagnosi

  1. Identifica il nome del criterio Verification JWT, il nome dell'elemento e il nome della famiglia dell'algoritmo indicato nel messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verifica JWT è JWT-Verify-HS256, il nome dell'elemento è PublicKey e la famiglia di algoritmi è RSA:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. Verifica che l'elemento e la famiglia di algoritmi utilizzati nel file XML del criterio Verifica JWT non corrispondano all'elemento e alla famiglia di algoritmi identificati nel messaggio di errore durante il passaggio 1. Ad esempio, il seguente criterio specifica l'elemento come PublicKey e la famiglia di algoritmi come HMAC, che corrisponde a ciò che è presente nel messaggio di errore.

    <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. Se il valore dell'elemento <Algorithm> è HS256, ma hai utilizzato <PublicKey>, la causa dell'errore è questa.

    Nell'esempio il criterio JWT di verifica mostrato in precedenza, l'elemento <PublicKey> viene utilizzato anche se l'elemento <Algorithm> è impostato su un algoritmo di famiglia HS256, causando l'errore:

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

Risoluzione

Assicurati che l'elemento <PublicKey> venga utilizzato solo con gli algoritmi della famiglia RSA e che l'elemento <SecretKey> venga utilizzato solo con gli algoritmi della famiglia HS.

Per correggere il criterio Verification JWT di esempio, utilizza il criterio <SecretKey> del criterio VerificationJWT che utilizza l'algoritmo 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>