Per poter definire politiche che consentono di spedire un Bearer Token verso l’endpoint associato ad un connettore è necessario creare delle Token Policy da riferire nelle configurazioni degli specifici servizi. La gestione delle Token Policy
si effettua andando alla sezione Configurazione > Token Policy della
govwayConsole. Per creare una nuova policy si utilizza il pulsante
Aggiungi. Il form di creazione appare inizialmente come quello
illustrato in Fig. 436.
Fig. 422 Informazioni generali di una Token Policy
Inizialmente si inseriscono i dati identificativi:
Nome: nome univoco da assegnare alla policy
Tipo: deve essere selezionato il tipo Negoziazione
Descrizione: testo di descrizione generale della policy
Al passo successivo si inseriscono le Informazioni Generali. Nella
sezione Token Endpoint si specifica il tipo di negoziazione e i vari parametri necessari:
Tipo: indica la modalità di negoziazione del token. I valori possibili sono:
Resource Owner Password Credentials: modalità di negoziazione “Resource Owner Password Credentials Grant” descritta nel RFC 6749 (https://tools.ietf.org/html/rfc6749#page-37);
Signed JWT: modalità di negoziazione “Client Credentials Grant” descritta nella sezione 2.2 del RFC 7523 (https://datatracker.ietf.org/doc/html/rfc7523#section-2.2) che prevede lo scambio di un’asserzione JWT firmata tramite certificato x.509 con l’authorization server;
Signed JWT with Client Secret: modalità di negoziazione identica alla precedente dove però l’asserzione JWT viene firmata tramite una chiave simmetrica;
Personalizzato: consente di definire in ogni sua parte la richiesta http inoltrata all’endpoint di negoziazione token.
DPoP: consente di abilitare il supporto “Demonstrating Proof-of-Possession” (DPoP) come descritto nel RFC 9449 (https://datatracker.ietf.org/doc/html/rfc9449). Se attivato, durante la negoziazione del token verrà generata una DPoP proof che sarà inoltrata all’authorization server tramite l’header HTTP “DPoP”. La configurazione della DPoP proof viene descritta nel dettaglio nella sezione “DPoP (Demonstrating Proof-of-Possession)”.
URL: endpoint del servizio di negoziazione token.
Connection Timeout: Tempo massimo in millisecondi di attesa per
stabilire una connessione con il server di negoziazione token.
Read Timeout: Tempo massimo in millisecondi di attesa per la
ricezione di una risposta dal server di negoziazione token.
Https: Parametri di configurazione nel caso in cui il server di
negoziazione token richieda un accesso Https.
Proxy: Parametri di configurazione nel caso si richieda l’uso di un proxy per l’accesso.
Nel caso sia attivato il flag relativo ad un Proxy o una configurazione Https saranno presentate delle sezioni omonime dove poter inserire i dati di configurazione richiesti.
Nella sezione “Dati Richiesta” potranno invece essere definiti ulteriori criteri che riguardano la richiesta di un token. I dati presenti possono essere definiti tramite costanti o possono contenere parti dinamiche risolte a runtime dal Gateway (per maggiori dettagli Valori dinamici).
Scope: elenco di scope utente richiesti;
Audience: audience per il quale si vorrebbe ottenere il token;
Parametri: consente di indicare per riga ulteriori parametri (nome=valore) da inserire nella richiesta.
Header HTTP: consente di indicare per riga eventuali header HTTP (nome=valore) da inserire nella richiesta.
Nella sezione “Dati Risposta” possono essere forniti criteri che riguardano la risposta ottenuta dall’authorization server.
Tipo Token: indica il valore atteso per il claim “token_type” presente nella risposta dell’authorization server (es. “Bearer” o “DPoP”); se non impostato, la validazione è disabilitata.
Quando la funzionalità DPoP è abilitata compare la sezione “DPoP” dove è possibile configurare la generazione della DPoP proof come descritto nel dettaglio nella sezione “DPoP (Demonstrating Proof-of-Possession)”.
Infine nella sezione “Token Forward” si può configurare la modalità di inoltro del token verso l’endpoint del connettore a cui verrà associata la policy che stiamo definendo:
RFC 6750 - Bearer Token Usage (Authorization Request Header Field): Il token viene inoltrato al destinatario utilizzando l’header Authorization presente nella richiesta HTTP.
RFC 6750 - Bearer Token Usage (URI Query Parameter): Il token viene inoltrato al destinatario tramite parametro access_token della Query String.
Header HTTP: Il token viene inoltrato al destinatario utilizzando un header HTTP il cui nome deve essere specificato nel campo seguente.
Parametro URL: Il token viene inoltrato al destinatario utilizzando un parametro della Query String il cui nome deve essere specificato nel campo seguente.
Quando la funzionalità DPoP è abilitata, nella sezione “Token Forward” compare anche una sottosezione “DPoP” per configurare la modalità di inoltro della DPoP proof verso l’endpoint del connettore. Per maggiori dettagli si rimanda alla sezione “DPoP (Demonstrating Proof-of-Possession)”.
Nelle sezioni successive vengono forniti i dettagli relativi alle modalità di negoziazione di un token nel caso sia previsto un jwt firmato o meno.