Un token Web JSON (JWT) è un formato standardizzato, convalidato e/o crittografato facoltativamente, utilizzato per trasferire in modo sicuro le informazioni tra due parti.

Nella fase ACCESSO HTTP, gli utenti possono definire l'azione per convalidare JWT dai client e passare oppure rimuovere JWT nei server back-end.

Le regole di bilanciamento del carico supportano REGEX per i tipi di corrispondenza. I modelli REGEX con stile PCRE sono supportati con alcune limitazioni nei casi d'uso avanzati. Quando REGEX viene utilizzato nelle condizioni di corrispondenza, sono supportati i gruppi di acquisizione denominati. Vedere Espressioni regolari nelle regole di bilanciamento del carico.

Prerequisiti

Verificare che sia disponibile un server virtuale HTTP di livello 7. Vedere Aggiungi server virtuali HTTP di livello 7.

Procedura

  1. Aprire il server virtuale HTTP di livello 7.
  2. Nella sezione Regole di bilanciamento del carico, accanto a Fase di accesso HTTP, fare clic su Imposta > Aggiungi regola per configurare le regole del bilanciamento del carico per la fase Riscrittura richiesta HTTP.
  3. Dal menu a discesa selezionare una condizione di corrispondenza. Le condizioni di corrispondenza vengono utilizzate per associare il traffico dell'applicazione che passa attraverso i bilanciamenti del carico. In una regola di bilanciamento del carico è possibile specificare più condizioni di corrispondenza. Ogni condizione di corrispondenza definisce un criterio per il traffico dell'applicazione.
    Condizione di corrispondenza supportata Descrizione
    Metodo richiesta HTTP Consente di verificare la corrispondenza con un metodo di richiesta HTTP.

    http_request.method: valore con cui verificare la corrispondenza

    URI richiesta HTTP Consente di verificare la corrispondenza con l'URI di una richiesta HTTP senza argomenti della query.

    http_request.uri: valore con cui verificare la corrispondenza

    Argomenti URI richiesta HTTP Consente di verificare la corrispondenza con un argomento della query dell'URI della richiesta HTTP.

    http_request.uri_arguments: valore con cui verificare la corrispondenza

    Versione richiesta HTTP Consente di verificare la corrispondenza con la versione di una richiesta HTTP.

    http_request.version: valore con cui verificare la corrispondenza

    Intestazione richiesta HTTP Consente di verificare la corrispondenza con un'intestazione qualsiasi della richiesta HTTP.

    http_request.header_name: nome dell'intestazione con cui verificare la corrispondenza

    http_request.header_value: valore con cui verificare la corrispondenza

    Cookie richiesta HTTP Consente di verificare la corrispondenza con un cookie qualsiasi della richiesta HTTP.

    http_request.cookie_value: valore con cui verificare la corrispondenza

    Corpo della richiesta HTTP Consente di verificare la corrispondenza con il contenuto del corpo di una richiesta HTTP.

    http_request.body_value: valore con cui verificare la corrispondenza

    Porta intestazione TCP Consente di verificare la corrispondenza con una porta di origine o di destinazione TCP.

    tcp_header.source_port: porta di origine con cui verificare la corrispondenza

    tcp_header.destination_port: porta di destinazione con cui verificare la corrispondenza
    Origine intestazione IP Consente di verificare la corrispondenza con le caselle di testo dell'intestazione IP nei messaggi HTTP. Il tipo di origine può essere un singolo indirizzo IP, un intervallo di indirizzi IP o un gruppo. Vedere Aggiunta di un gruppo.
    • Se è selezionata l'opzione Origine intestazione IP con il tipo di origine Indirizzo IP, l'indirizzo IP di origine dei messaggi HTTP deve corrispondere agli indirizzi IP configurati nei gruppi. Sono supportati entrambi gli indirizzi IPv4 e IPv6.
    • Se è selezionata l'opzione Origine intestazione IP con il tipo di origine Gruppo, selezionare il gruppo dal menu a discesa.

    ip_header.source_address: indirizzo di origine con cui verificare la corrispondenza

    ip_header.destination_address: indirizzo di destinazione con cui verificare la corrispondenza
    Variabile Creare una variabile e assegnare un valore alla variabile.
    Client SSL Consente di verificare la corrispondenza con l'ID profilo SSL del client.

    ssl_profile_id: valore con cui verificare la corrispondenza

    Distinzione maiuscole/minuscole Impostare un contrassegno con distinzione tra maiuscole e minuscole per il confronto dei valori delle intestazioni HTTP. Se è true, viene applicata la distinzione tra maiuscole e minuscole quando si confronta il valore del corpo HTTP.
  4. Nell'elenco a discesa selezionare un Tipo di corrispondenza: Inizia con, Termina con, Uguale a, Contiene e Corrisponde a Regex.
  5. Se necessario, immettere l'URI.
  6. Nell'elenco a discesa selezionare una Strategia di corrispondenza:
    Strategia di corrispondenza Descrizione
    Qualsiasi Affinché questa regola venga considerata una corrispondenza, può corrispondere l'host o il percorso.
    Tutti

    Affinché questa regola venga considerata una corrispondenza, sia l'host sia il percorso devono corrispondere.

  7. Dal menu a discesa Azione selezionare un'azione:
    Azione Descrizione
    Autenticazione JWT
    Il token Web JSON (JWT) è uno standard aperto che definisce un metodo compatto e autonomo per trasmettere in modo sicuro le informazioni tra le parti come oggetto JSON. Queste informazioni possono essere verificate e considerate attendibili perché sono firmate digitalmente.
    • Area di autenticazione: descrizione dell'area protetta. Se non viene specificata alcuna area di autenticazione, spesso nei client viene visualizzato un nome host formattato. L'area di autenticazione configurata viene restituita quando una richiesta client viene rifiutata con lo stato 401 HTTP. La risposta è: "WWW-Authentication: Bearer realm=<area di autenticazione>".
    • Token: questo parametro è facoltativo. Il bilanciamento del carico cerca il messaggio JWT in tutti i token specificati, uno per uno. Se non trova alcun messaggio o se questa casella di testo non è configurata, per impostazione predefinita il bilanciamento del carico cerca l'intestazione Bearer nella richiesta HTTP "Authorization: Bearer <token>"
    • Tipo di chiave: chiave simmetrica o chiave pubblica asimmetrica (ID certificato)
    • Mantieni JWT: questo è un contrassegno per conservare JWT e passarlo al server back-end. Se questa opzione è disabilitata, la chiave JWT per il server back-end viene rimossa.
    Eliminazione connessione

    Se il pulsante Nega è abilitato, quando è configurata l'opzione Eliminazione connessione, tutte le richieste che non soddisfano la condizione di corrispondenza specificata vengono eliminate. Sono consentite le richieste che soddisfano la condizione di corrispondenza specificata.

    Assegnazione variabile

    Consente agli utenti di assegnare un valore a una variabile in Fase di accesso HTTP, in modo da poter utilizzare il risultato come condizione nelle altre fasi della regola del bilanciamento del carico.

  8. Fare clic su Salva e su Applica.