Risoluzione dei problemi di errore di deployment del criterio VerifyJWT

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.

InvalidNameForAdditionalClaim

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Messaggio di errore relativo al nome non valido per la richiesta aggiuntiva.

Causa

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

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

Le rivendicazioni registrate sono specificate nella RFC 7519.

Ad esempio, l'utilizzo del nome della rivendicazione iss nell'elemento <AdditionalClaims> genererà questo errore.

Diagnosi

  1. Identifica il nome della norma Verify JWT e il nome dell'attestazione dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify JWT è JWT-Verify-RS256 e il nome dell'attestazione è iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Verifica che il nome dell'attestazione utilizzato nell'elemento <AdditionalClaims> nel file XML del criterio Verifica JWT non riuscita corrisponda al nome dell'attestazione identificato nel messaggio di errore del passaggio 1. Ad esempio, la seguente policy specifica l'attestazione come iss, che corrisponde a quanto riportato 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", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

    allora è questa la causa dell'errore.

    Nell'esempio di policy Verify JWT mostrato sopra, il nome <Claim> è specificato come iss nell'elemento <AdditionalClaims>, il che genera 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 secondario <Claim> dell'elemento <AdditionalClaims>.

Per correggere il problema relativo alla policy di esempio Verify JWT, modifica il nome dell'attestazione 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'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Tipo non valido per il messaggio di errore relativo alla rivendicazione aggiuntiva.

Causa

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

string (valore predefinito), number, boolean o map

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

Diagnosi

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

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Verifica che il nome e il tipo di rivendicazione utilizzati nell'elemento <AdditionalClaims> nel file XML del criterio Verifica JWT non riuscita corrispondano al nome e al tipo di rivendicazione identificati nel messaggio di errore del passaggio 1. Ad esempio, la seguente policy specifica la rivendicazione come claim e il tipo come integer, che corrisponde a quanto riportato 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 di policy Verify JWT mostrato sopra, il tipo <Claim> è specificato come integer nell'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 che nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> vengano utilizzati solo i tipi di dati supportati string (valore predefinito), number, boolean o map.

Per correggere la policy di esempio Verifica JWT, 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>

MissingNameForAdditionalClaim

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Nel messaggio di errore relativo alla rivendicazione manca il nome dell&#39;attributo.

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 della policy Verify JWT dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome della policy Verify 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 della policy Verifica JWT non riuscita e verifica che il nome dell'attestazione non sia presente nell'elemento secondario <Claims> dell'elemento <AdditionalClaims> o <AdditionalHeaders>. Ad esempio, la seguente policy Verify JWT non specifica il nome dell'attestazione 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 dell'attestazione sia sempre specificato nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> o <AdditionalHeaders>.

Per correggere la policy di esempio Verify JWT, specifica il nome dell'attestazione 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>

InvalidNameForAdditionalHeader

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Nome non valido per il messaggio di errore dell&#39;intestazione aggiuntiva.

Causa

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

alg o typ

Ad esempio, l'utilizzo del nome dell'attestazione alg nell'elemento <AdditionalHeaders> causerà l'errore.

Diagnosi

  1. Identifica il nome del criterio Verify JWT e il nome dell'intestazione dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify 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> nell'elemento <AdditionalHeaders> nel file XML dei criteri di verifica JWT non riuscita corrisponda al nome dell'intestazione identificato nel messaggio di errore del passaggio 1. Ad esempio, la seguente policy specifica l'intestazione come alg, che corrisponde a quanto riportato 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 di policy Verify JWT mostrato sopra, il nome <Claim> è specificato come alg nell'elemento <AdditionalClaims>, il che genera 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 l'esempio di policy Verify JWT, 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'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Tipo non valido per il messaggio di errore dell&#39;intestazione aggiuntiva.

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 Verify JWT, il nome dell'attestazione e il tipo dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome della policy Verify JWT è JWT-Verify-RS256, il nome dell'attestazione è claim e il tipo è integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Verifica che il nome e il tipo di rivendicazione utilizzati nell'elemento <AdditionalClaims> nel file XML del criterio Verifica JWT non riuscita corrispondano al nome e al tipo di rivendicazione identificati nel messaggio di errore del passaggio 1. Ad esempio, la seguente policy specifica la rivendicazione come claim e il tipo di rivendicazione come integer,, che corrisponde a quanto riportato 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='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 di policy Verifica JWT mostrato sopra, 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 che nell'elemento secondario <Claim> dell'elemento <AdditionalHeaders> vengano utilizzati solo i tipi di dati supportati string, number, boolean o map.

Per correggere la policy di esempio Verifica JWT, 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>

InvalidValueOfArrayAttribute

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Messaggio di errore Valore non valido per l&#39;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, l'impostazione del valore dell'attributo array come yes nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> o <AdditionalHeaders> causa l'errore.

Diagnosi

  1. Identifica il nome della norma Verify JWT e il nome dell'attestazione dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify JWT è JWT-Verify-RS256 e il nome dell'attestazione è claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Verifica che il nome dell'attestazione utilizzato nell'elemento secondario <Claim> dell'elemento <AdditionalHeaders> nel file XML dei criteri di verifica del JWT non riuscita corrisponda al nome dell'attestazione identificato nel messaggio di errore del passaggio 1. Ad esempio, la seguente policy specifica il nome dell'attestazione come claim, che corrisponde a quello 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/>
        <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, questo è il motivo dell'errore.

    Poiché l'attributo array nell'elemento secondario <Claim> dell'elemento <AdditionalClaims> è impostato su yes nell'esempio precedente, viene visualizzato l'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 la policy Verify JWT di esempio mostrata 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>

InvalidValueForElement

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Valore non valido per il messaggio di errore dell&#39;elemento.

Causa

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

HS256, HS384, HS512, RS256, RS384, RS512

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

Diagnosi

  1. Identifica il nome della norma Verify JWT e il nome dell'elemento dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify 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 della policy Verifica JWT non riuscita e controlla il valore specificato per l'elemento <Algorithm>.

    Ecco un esempio di criterio Verify 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. Esamina il valore specificato nell'elemento <Algorithm>. Se non è uno dei seguenti valori:

    HS256, HS384, HS512, RS256, RS384, RS512

    allora è questa la causa dell'errore.

    Nell'esempio di policy Verify JWT mostrato sopra, il nome <Algorithm> è specificato come HS128. Poiché non si tratta di 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, RS512

Per correggere la policy di verifica JWT di esempio mostrata sopra, che utilizza l'elemento <SecretKey>, modifica il valore di <Algorithm> in HS25. Tieni presente che quando viene utilizzato l'elemento <SecretKey>, puoi utilizzare solo gli algoritmi HS Family.

<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

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Messaggio di errore relativo all&#39;elemento di configurazione mancante.

Causa

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

Ad esempio, il mancato utilizzo dell'elemento <PublicKey> con gli algoritmi RSA Family genera questo errore.

Diagnosi

  1. Identifica il nome del criterio Verify JWT e il nome dell'elemento mancante dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome della policy Verify 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 Verifica JWT non riuscito e verifica che l'elemento indicato nel messaggio di errore sia mancante. Se manca, è la causa dell'errore.

    Ad esempio, la seguente policy mostra che manca PublicKey e che 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>
    

    L'esempio di policy Verify JWT utilizza gli algoritmi della famiglia HS, ma manca l'elemento obbligatorio PublicKey, il che genera 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 che l'elemento obbligatorio <SecretKey> venga utilizzato con gli algoritmi della famiglia HS.

Per correggere l'esempio di policy Verify JWT mostrato sopra, che utilizza l'algoritmo RS256, aggiungi l'elemento <PublicKey> alla policy 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

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Messaggio di errore relativo alla configurazione della chiave non valida.

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 Verifica JWT.

Diagnosi

  1. Identifica il nome della policy Verify JWT dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome della policy Verify JWT è JWT-Verify-RS256:

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

    Ad esempio, la seguente policy 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 Verify 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 Verify JWT.

Per correggere la policy di esempio Verifica JWT, 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>

EmptyElementForKeyConfiguration

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 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 Verify JWT e il nome dell'elemento vuoto dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify 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 Verifica JWT non riuscito e verifica che l'elemento identificato nel passaggio 1 sia vuoto. Se è vuoto, è questa la causa dell'errore.

    Ad esempio, la seguente policy 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 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 di criterio Verify 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>

InvalidConfigurationForVerify

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 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 una policy VerifyJWT.

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

Diagnosi

  1. Identifica il nome della norma Verify JWT e il nome dell'elemento non valido dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify 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 il file XML del criterio Verifica JWT non riuscito e verifica che l'elemento non valido identificato nel passaggio 1 sia definito. Se è definito, è la causa dell'errore.

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

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

    Poiché l'elemento <Id> è definito all'interno dell'elemento <SecretKey> del criterio Verify 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 Verify JWT.

Per correggere la policy di 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>

InvalidEmptyElement

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Messaggio di errore relativo a elemento vuoto non valido.

Causa

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

Diagnosi

  1. Identifica il nome della norma Verify JWT e il nome dell'elemento vuoto dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify 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 Verifica JWT non riuscito e verifica che l'elemento identificato nel passaggio 1 sia vuoto. Se è vuoto, è questa la causa dell'errore.

    Ad esempio, la seguente policy 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 Verifica JWT è vuoto, viene visualizzato l'errore:

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

Risoluzione

Se è presente l'elemento <Source> di una policy Verify JWT, assicurati che specifichi una variabile di flusso.

Per correggere l'esempio di criterio Verify JWT, 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>

InvalidPublicKeyValue

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Valore della 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, l'utilizzo di abc come valore dell'elemento secondario <JWKS> nell'elemento <PublicKey> comporterà questo errore.

Diagnosi

  1. Identifica il nome del criterio Verify JWT e il nome dell'elemento contenente un valore non valido dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio Verify 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 file XML della policy Verifica JWT non riuscita e verifica che l'elemento identificato nel passaggio 1 contenga un valore in un formato valido come specificato nella RFC 7517. Se il valore dell'elemento non è in un formato valido, questo è il motivo 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 secondo 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 la policy di esempio Verify JWT, 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'API o la UI Apigee non riesce e viene visualizzato 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 Apigee, vedrai una finestra di dialogo con un errore:

Elemento di configurazione non valido per questo messaggio di errore di azione e 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 HS Family genera questo errore.

Diagnosi

  1. Identifica il nome della policy Verify JWT, il nome dell'elemento e il nome della famiglia di algoritmi dal 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 dei criteri di verifica JWT non riuscita corrispondano all'elemento e alla famiglia di algoritmi identificati nel messaggio di errore del passaggio 1. Ad esempio, la seguente policy specifica l'elemento come PublicKey e la famiglia di algoritmi come HMAC, che corrisponde a quanto riportato 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>, questo è il motivo dell'errore.

    Nell'esempio di norma Verifica JWT mostrato sopra, l'elemento <PublicKey> viene utilizzato anche se <Algorithm> è impostato su un algoritmo della famiglia HS256, il che genera 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 la policy di esempio Verify JWT, utilizza <SecretKey> dalla policy VerifyJWT 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>