Politiche di Rate Limiting basate su informazioni presenti nei token ModI

Negli scenari in cui il token di sicurezza ModI viene generato direttamente dal fruitore, senza l’intermediazione di un Authorization Server (es. PDND), è possibile definire politiche di Rate Limiting che conteggiano o filtrano le richieste in base alle informazioni presenti nei token JWT (Authorization o Agid-JWT-Signature).

GovWay fornisce una serie di plugin che estraggono informazioni dai token ModI e le rendono disponibili come criteri di raggruppamento o filtro personalizzato nelle politiche di rate limiting.

I plugin disponibili sono elencati nella tabella seguente:

Tabella 11 Plugin ModI per Rate Limiting

ClassName

Token

Informazione estratta

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationClientId

Authorization

Claim “client_id”

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationSub

Authorization

Claim “sub”

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationCertificateCN

Authorization

CN del certificato (x5c)

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationCertificateSubject

Authorization

Subject del certificato

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegrityClientId

Agid-JWT-Signature

Claim “client_id”

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegritySub

Agid-JWT-Signature

Claim “sub”

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegrityCertificateCN

Agid-JWT-Signature

CN del certificato (x5c)

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegrityCertificateSubject

Agid-JWT-Signature

Subject del certificato

Registrazione dei Plugin

Per poter utilizzare i plugin nelle politiche di rate limiting è necessario registrarli come descritto nella sezione Registrazione di un Plugin. La tabella seguente riporta i valori da utilizzare durante la registrazione:

Tabella 12 Registrazione Plugin ModI per Rate Limiting

Tipo Plugin

Tipo

ClassName

Label

Rate Limiting

ModIRTAuthzCID

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationClientId

ModI Authorization ClientId

Rate Limiting

ModIRTAuthzSub

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationSub

ModI Authorization Sub

Rate Limiting

ModIRTAuthzCN

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationCertificateCN

ModI Authorization Certificate CN

Rate Limiting

ModIRTAuthzSubj

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingAuthorizationCertificateSubject

ModI Authorization Certificate Subject

Rate Limiting

ModIRTIntCID

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegrityClientId

ModI Integrity ClientId

Rate Limiting

ModIRTIntSub

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegritySub

ModI Integrity Sub

Rate Limiting

ModIRTIntCN

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegrityCertificateCN

ModI Integrity Certificate CN

Rate Limiting

ModIRTIntSubj

org.openspcoop2.protocol.modipa.controllo_traffico.RateLimitingIntegrityCertificateSubject

ModI Integrity Certificate Subject

Configurazione della politica di Rate Limiting

Una volta registrati i plugin, è possibile attivarli nella configurazione di una politica di rate limiting, nella sezione “Raggruppamento per Chiave” (Fig. 289):

  1. Abilitare lo Stato del “Raggruppamento per Chiave”.

  2. Selezionare Tipologia “Plugin”.

  3. Scegliere dalla lista il plugin desiderato.

../../../../_images/modiaRateLimitingTokenPlugin.png

Fig. 289 Rate Limiting: raggruppamento per chiave tramite plugin ModI

Ad esempio, selezionando il plugin “ModI Authorization ClientId”, il conteggio delle richieste viene effettuato separatamente per ogni diverso valore del claim “client_id” presente nel token di Authorization. Ciò consente di applicare soglie di rate limiting per singolo fruitore anche in assenza di un Authorization Server centralizzato e senza dover registrare i fruitori come applicativi su GovWay, operazione che sarebbe altrimenti necessaria per poter utilizzare il normale raggruppamento per “Richiedente”.

Per ulteriori dettagli sulla configurazione di filtri e raggruppamenti personalizzati si rimanda alla sezione Filtro o Raggruppamento Personalizzato.