Come far riconoscere al FortiGate gli utenti Wi-Fi autenticati in 802.1X da NPS, inoltrando l'accounting RADIUS al connettore RADIUS Single Sign-On (RSSO) per applicare policy basate sui gruppi senza un secondo login

Obiettivo: identificare sul FortiGate gli utenti collegati in Wi-Fi a una rete 802.1X Enterprise tramite RADIUS Single Sign-On (RSSO), così da poter scrivere policy firewall basate sui gruppi di Active Directory.

L'autenticazione Wi-Fi resta a carico del server NPS. Quando un utente si collega, l'access point invia a NPS anche i pacchetti di accounting RADIUS (inizio sessione, indirizzo IP assegnato). NPS li inoltra al FortiGate, che associa l'indirizzo IP del client al nome utente e al gruppo: da quel momento il traffico dell'utente corrisponde alle policy del suo gruppo, senza un secondo login sul firewall.

Scenario di esempio:

ComponenteIndirizzoRuolo
Server NPS192.168.150.191Server RADIUS: autentica gli utenti e inoltra l'accounting
FortiGate192.168.200.250Riceve l'accounting sul connettore RSSO e applica le policy
Access point192.168.200.0/24Client RADIUS di NPS, SSID WPA2-Enterprise

ℹ️ Prerequisito: NPS già configurato per l'802.1X

La guida presuppone un server NPS che autentica già gli utenti Wi-Fi in 802.1X, configurato come descritto nella guida Windows Server – Configurazione 802.1x NPS server criteri di rete. Qui vengono aggiunti solo i passaggi necessari per l'RSSO.

ℹ️ Nota sugli screenshot

Negli screenshot sono stati oscurati il nome del firewall, i segreti, i nomi di utenti e domini e gli indirizzi IP non relativi allo scenario di esempio. Nei comandi il segreto condiviso è indicato con il segnaposto .

Indice

1. Come funziona l'RSSO

Schema del flusso di autenticazione RSSO con access point di terze parti, server RADIUS e FortiGate
Figura 1 – Flusso di autenticazione RSSO con access point di terze parti (fonte: Fortinet)

Con access point di terze parti il flusso è il seguente:

  1. l'utente si collega all'SSID;
  2. l'access point invia nome utente e password al server RADIUS (NPS);
  3. NPS autentica l'utente in Active Directory e risponde all'AP con un Access-Accept;
  4. l'utente è connesso e riceve un indirizzo IP dal server DHCP;
  5. l'access point invia a NPS un messaggio di Accounting-Request;
  6. NPS inoltra l'Accounting-Request al FortiGate, con gli attributi User-Name, Framed-IP-Address e Class;
  7. il FortiGate associa l'utente al gruppo RSSO corretto in base al valore di Class e lo registra tra gli utenti autenticati;
  8. il traffico dell'utente corrisponde alla policy del suo gruppo e accede alle risorse previste, senza doversi autenticare di nuovo sul firewall.

Rispetto al Fortinet Single Sign-On (FSSO), che ricava gli accessi dai registri dei controller di dominio, l'RSSO conosce l'indirizzo IP effettivamente usato in Wi-Fi: è quindi la soluzione adatta ai portatili che passano dalla rete cablata a quella wireless.

2. Creare il connettore RSSO sul FortiGate

Il connettore RADIUS Single Sign-On Agent è il componente che riceve i pacchetti di accounting sulla porta UDP 1813. In Security Fabric > External Connectors scegli Create New e seleziona RADIUS Single Sign-On Agent:

  • Name: ad esempio RSSO Agent;
  • Use RADIUS Shared Secret: abilitalo e definisci il segreto condiviso, che andrà inserito anche su NPS (sezione 6);
  • Send RADIUS Responses: abilitalo, così il FortiGate conferma a NPS la ricezione di ogni pacchetto.
FortiGate, External Connectors: connettore RADIUS Single Sign-On Agent con segreto condiviso e Send RADIUS Responses abilitati
Figura 2 – Connettore RADIUS Single Sign-On Agent

Completa la configurazione da CLI, indicando quale attributo identifica l'utente e per quanto tempo mantenere la sessione:

FortiOS CLI
config user radius
    edit "RSSO Agent"
        set rsso-endpoint-attribute User-Name
        set rsso-context-timeout 28800
        set rsso-flush-ip-session enable
    next
end
CLI FortiGate: configurazione dell'oggetto RSSO Agent con rsso-endpoint-attribute, rsso-context-timeout e rsso-flush-ip-session
Figura 3 – Parametri aggiuntivi del connettore RSSO da CLI
  • rsso-endpoint-attribute User-Name: l'attributo RADIUS che contiene il nome dell'utente. È il valore corretto per NPS e FortiAP; con altri sistemi verifica nella documentazione del produttore quale attributo viene inviato nei pacchetti di accounting;
  • rsso-context-timeout 28800: dopo quanti secondi senza aggiornamenti l'utente viene rimosso (28800 = 8 ore). Con 0 la sessione non scade mai e viene chiusa solo dal pacchetto di Accounting-Stop;
  • rsso-flush-ip-session enable: quando un nuovo utente si presenta con un indirizzo IP già associato a un altro, la sessione precedente viene eliminata.

Infine abilita la ricezione dell'accounting RADIUS sull'interfaccia del FortiGate raggiungibile da NPS: in Network > Interfaces modifica l'interfaccia e, in Administrative Access, seleziona RADIUS Accounting. Da CLI:

FortiOS CLI
config system interface
    edit ""
        append allowaccess radius-acct
    next
end

⚠️ Senza RADIUS Accounting sull'interfaccia non arriva nulla

Il connettore RSSO accetta i pacchetti solo sulle interfacce con l'accesso RADIUS Accounting abilitato. L'indirizzo di questa interfaccia è quello da indicare su NPS come destinazione dell'accounting (sezione 6).

3. Creare il server RADIUS sul FortiGate

In User & Authentication > RADIUS Servers scegli Create New e crea l'oggetto che rappresenta il server NPS:

  • Name: ad esempio NPS SRV-SERVICE;
  • Authentication method: Specify e MS-CHAP-v2;
  • NAS IP: l'indirizzo con cui il FortiGate si presenta a NPS;
  • Primary Server: indirizzo IP di NPS (192.168.150.191) e segreto condiviso, lo stesso configurato su NPS per il client RADIUS del FortiGate (sezione 6.1).
FortiGate, Edit RADIUS Server: server NPS con metodo MS-CHAP-v2 e stato della connessione Successful
Figura 4 – Oggetto RADIUS Server che punta al server NPS

Da CLI imposta l'indirizzo sorgente delle richieste e abilita l'invio dell'accounting a NPS:

FortiOS CLI
config user radius
    edit "NPS SRV-SERVICE"
        set source-ip 192.168.200.250
        config accounting-server
            edit 1
                set status enable
                set server 192.168.150.191
                set secret 
                set source-ip 192.168.200.250
            next
        end
    next
end
CLI FortiGate: configurazione dell'accounting-server verso NPS con source-ip
Figura 5 – Accounting server e indirizzo sorgente da CLI

Questo oggetto serve quando è il FortiGate stesso a interrogare NPS, ad esempio con SSID trasmessi da FortiAP gestiti dal FortiGate o per l'autenticazione VPN: in questo caso è il FortiGate a inviare l'accounting a NPS. Con access point di terze parti, come nello scenario di esempio, è comunque utile per verificare la comunicazione con NPS.

Verifica la connessione con il pulsante Test Connectivity: il FortiGate invia a NPS una richiesta di autenticazione con un utente fittizio. Nel log di NPS compare un tentativo dell'utente test01 con esito IAS_AUTH_FAILURE: il fallimento è normale e conferma che NPS riceve e risponde alle richieste del FortiGate. Con Test User Credentials puoi provare anche un utente reale.

Log di NPS con la richiesta di test dell'utente test01 terminata con IAS_AUTH_FAILURE
Figura 6 – Richiesta di test del FortiGate registrata nel log di NPS

4. Creare i gruppi RSSO sul FortiGate

Ogni gruppo RSSO corrisponde a un valore dell'attributo Class inviato da NPS. In User & Authentication > User Groups scegli Create New:

  • Name: il nome del gruppo, ad esempio GRP-SYSADMIN;
  • Type: RADIUS Single Sign-On (RSSO);
  • RADIUS Attribute Value: il valore che NPS invierà nell'attributo Class per questi utenti (sezione 8). Il confronto distingue maiuscole e minuscole.
FortiGate, New User Group di tipo RADIUS Single Sign-On con RADIUS Attribute Value GRP-SYSADMIN
Figura 7 – Gruppo utenti di tipo RSSO

Crea un gruppo per ogni insieme di utenti che deve avere regole diverse (es. GRP-SYSADMIN, GRP-WIRELESS). Da CLI:

FortiOS CLI
config user group
    edit "GRP-SYSADMIN"
        set group-type rsso
        set sso-attribute-value "GRP-SYSADMIN"
    next
end

5. Creare le policy firewall sul FortiGate

In Policy & Objects > Firewall Policy crea (o modifica) la policy che regola il traffico della rete wireless e aggiungi in Source, oltre all'indirizzo della subnet Wi-Fi, il gruppo RSSO:

FortiGate, Edit Policy con interfaccia wireless in ingresso e gruppo RSSO GRP-WIRELESS nella sorgente
Figura 8 – Policy firewall con il gruppo RSSO come sorgente

Nell'esempio solo gli utenti del gruppo GRP-WIRELESS collegati alla VLAN wireless possono raggiungere la rete di management. Il traffico degli utenti che non appartengono al gruppo non corrisponde alla policy e prosegue verso quelle successive: ordina le policy dalla più specifica alla più generica.

💡 Utenti non ancora identificati

Finché il FortiGate non ha ricevuto l'accounting di un client, il suo indirizzo IP non è associato ad alcun utente e non corrisponde alle policy con gruppi RSSO. Prevedi sotto di esse una policy generica per la subnet Wi-Fi (ad esempio solo verso Internet), così i client restano operativi anche in quel breve intervallo.

6. Configurare client RADIUS e server remoto su NPS

6.1 Client RADIUS per il FortiGate

Nella console Server dei criteri di rete (nps.msc), in Client e server RADIUS > Client RADIUS, fai clic con il tasto destro e scegli Nuovo. Indica un nome descrittivo, l'indirizzo IP del FortiGate (192.168.200.250) e lo stesso segreto condiviso dell'oggetto RADIUS Server creato in sezione 3. Gli access point devono essere già presenti come client RADIUS, come descritto nella guida NPS.

6.2 Gruppo di server RADIUS remoti

NPS inoltra l'accounting verso un gruppo di server RADIUS remoti. In Client e server RADIUS > Gruppi di server RADIUS remoti fai clic con il tasto destro, scegli Nuovo, assegna un nome al gruppo (es. Fortigate) e fai clic su Aggiungi. Nella scheda Indirizzo inserisci l'indirizzo IP dell'interfaccia del FortiGate su cui hai abilitato RADIUS Accounting (sezione 2):

NPS, Gruppi di server RADIUS remoti: gruppo Fortigate e finestra Modifica server RADIUS, scheda Indirizzo
Figura 9 – Gruppo di server RADIUS remoti con l'indirizzo del FortiGate

Nella scheda Autenticazione/Accounting:

  • Porta di accounting: 1813;
  • Segreto condiviso: deve coincidere con lo Shared Secret del connettore RSSO (sezione 2). Se è diverso da quello usato per l'autenticazione, deseleziona Utilizza stesso segreto condiviso per autenticazione e accounting e inseriscilo nei campi dell'accounting;
  • seleziona Inoltra notifiche di avvio e di fine accesso alla rete a questo server, così il FortiGate riceve anche i messaggi di accensione e spegnimento degli access point e può chiudere le sessioni rimaste aperte.
NPS, Modifica server RADIUS, scheda Autenticazione/Accounting con porta di accounting 1813 e inoltro delle notifiche di avvio e fine
Figura 10 – Porta e segreto per l'accounting verso il FortiGate

7. Inoltrare l'accounting dal criterio di richiesta di connessione

In Criteri > Criteri di richiesta di connessione apri il criterio che gestisce le richieste degli access point (quello creato dalla procedura guidata 802.1X, nell'esempio Secure Wireless Connections). Nella scheda Impostazioni:

  1. in Inoltro richiesta di connessione > Autenticazione lascia Autentica le richieste su questo server: l'autenticazione resta a NPS;
  2. in Inoltro richiesta di connessione > Accounting seleziona Inoltra richieste di accounting a questo gruppo di server RADIUS remoto e scegli il gruppo creato in sezione 6.2;
  3. conferma con OK.
NPS, proprietà del criterio di richiesta di connessione Secure Wireless Connections: inoltro dell'accounting al gruppo Fortigate
Figura 11 – Inoltro dell'accounting al gruppo di server RADIUS remoti

💡 Con i FortiAP

Se l'SSID è trasmesso da FortiAP gestiti dal FortiGate, le richieste arrivano a NPS dal FortiGate. In quel caso crea un criterio di richiesta di connessione dedicato, con la condizione Indirizzo IPv4 client uguale all'indirizzo del FortiGate e la stessa impostazione di inoltro dell'accounting.

8. Inviare l'attributo Class dal criterio di rete

Perché il FortiGate sappia a quale gruppo appartiene l'utente, ogni criterio di rete deve restituire l'attributo RADIUS Class con il valore del gruppo RSSO corrispondente. In Criteri > Criteri di rete apri il criterio relativo al gruppo (la condizione Gruppi di utenti indica il gruppo di Active Directory) e nella scheda Impostazioni:

  1. seleziona Attributi RADIUS > Standard e fai clic su Aggiungi;
  2. scegli l'attributo Class e fai clic su Aggiungi;
  3. seleziona Stringa e inserisci lo stesso valore del campo RADIUS Attribute Value del gruppo RSSO (sezione 4), ad esempio GRP-SYSADMIN;
  4. conferma con OK e chiudi le proprietà del criterio.
NPS, proprietà del criterio di rete GRP-SYSADMIN - PEAP con l'attributo standard Class impostato a GRP-SYSADMIN
Figura 12 – Attributo Class nel criterio di rete

Ripeti l'operazione per ogni criterio di rete, con il valore del rispettivo gruppo. NPS valuta i criteri di rete in ordine: se un utente è membro di più gruppi, riceve il valore di Class del primo criterio che corrisponde.

⚠️ Maiuscole e minuscole

Il valore di Class deve essere identico a quello del gruppo RSSO, maiuscole comprese: GRP-Wireless e GRP-WIRELESS sono valori diversi. In caso di differenza l'utente compare comunque tra gli utenti autenticati del FortiGate, ma senza gruppo.

9. Abilitare l'accounting sull'SSID degli access point

NPS può inoltrare solo l'accounting che riceve: nelle impostazioni RADIUS dell'SSID (o del profilo RADIUS associato) abilita l'accounting verso il server NPS:

  • Enable Accounting: abilitato;
  • RADIUS Accounting Servers: indirizzo IP di NPS, porta 1813 e lo stesso segreto condiviso usato per l'autenticazione;
  • Enable Interim Update: abilitato, con un intervallo di qualche minuto (es. 300–600 secondi).
Profilo RADIUS UniFi con le sezioni Enable Accounting, RADIUS Accounting Servers sulla porta 1813 ed Enable Interim Update
Figura 13 – Profilo RADIUS UniFi: le opzioni di accounting da abilitare

💡 Perché servono gli Interim Update

Molti access point inviano l'Accounting-Start nel momento in cui l'utente si autentica, prima che il client abbia ottenuto l'indirizzo IP dal DHCP. In quel caso il pacchetto non contiene il Framed-IP-Address e il FortiGate non può associare l'utente. Gli aggiornamenti periodici (Interim Update) riportano l'indirizzo IP non appena è disponibile.

10. Verifica

Sul FortiGate apri Dashboard > Assets & Identities (widget Firewall Users): gli utenti Wi-Fi compaiono con il metodo Radius Single Sign-On, l'indirizzo IP e, se l'attributo Class corrisponde, il gruppo RSSO:

FortiGate, Firewall Users: utenti con metodo Radius Single Sign-On, due dei quali associati al gruppo GRP-WIRELESS
Figura 14 – Utenti identificati tramite RSSO, con il gruppo RSSO assegnato

Nell'esempio tutti gli utenti Wi-Fi vengono identificati, ma solo quelli del criterio di rete con l'attributo Class (GRP-WIRELESS) risultano associati al gruppo: gli altri criteri di rete non inviano ancora l'attributo. Dalla CLI puoi elencare gli utenti autenticati e seguire in tempo reale i pacchetti ricevuti dal connettore:

FortiOS CLI
diagnose firewall auth list
diagnose debug application radiusd -1
diagnose debug enable
# al termine
diagnose debug disable
diagnose debug reset

Su NPS l'inoltro è visibile nel Visualizzatore eventi e nei log di accounting: se il FortiGate non risponde, NPS registra un evento che segnala il server RADIUS remoto come non raggiungibile.

DoveCosa configurareSezione
FortiGateConnettore RADIUS Single Sign-On Agent con segreto condiviso e parametri rsso-*Vai
FortiGateAccesso RADIUS Accounting sull'interfaccia verso NPSVai
FortiGateOggetto RADIUS Server verso NPS con accounting-serverVai
FortiGateGruppi RSSO con RADIUS Attribute Value = ClassVai
FortiGatePolicy firewall con il gruppo RSSO in SourceVai
NPSClient RADIUS per il FortiGate e gruppo di server RADIUS remoti (porta 1813)Vai
NPSInoltro dell'accounting nel criterio di richiesta di connessioneVai
NPSAttributo Class in ogni criterio di reteVai
Access pointAccounting verso NPS sulla porta 1813, con Interim UpdateVai

Problemi frequenti

SituazioneCausa probabileCosa fare
Nessun utente RSSO in Firewall UsersL'accounting non arriva al FortiGateVerifica RADIUS Accounting sull'interfaccia, l'indirizzo nel gruppo di server remoti e l'inoltro nel criterio di richiesta di connessione; controlla con diagnose debug application radiusd -1
Pacchetti ricevuti ma scartatiSegreto condiviso diverso tra NPS e connettore RSSOAllinea il segreto del server remoto su NPS (sezione 6.2) e quello del connettore (sezione 2)
Utente presente ma senza gruppoAttributo Class assente o diverso dal valore del gruppo RSSOAggiungi Class al criterio di rete e verifica maiuscole e minuscole (sezione 8)
Utente senza indirizzo IP o non riconosciuto dalle policyL'Accounting-Start non contiene Framed-IP-AddressAbilita gli Interim Update sugli access point (sezione 9)
NPS non inoltra nullaAccounting non abilitato sull'SSIDAbilita l'accounting verso NPS sugli access point (sezione 9)
Utente rimane associato dopo la disconnessioneNessun Accounting-Stop e timeout disattivatoImposta rsso-context-timeout e abilita l'inoltro delle notifiche di avvio e fine (sezione 6.2)
Accesso Wi-Fi con le credenziali di Windows bloccatoWindows 11 con aggiornamento di ottobre 2026 o Credential Guard attivoProblema di autenticazione, non di RSSO: valuta il passaggio a EAP-TLS

Leave A Comment