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:
| Componente | Indirizzo | Ruolo |
|---|---|---|
| Server NPS | 192.168.150.191 | Server RADIUS: autentica gli utenti e inoltra l'accounting |
| FortiGate | 192.168.200.250 | Riceve l'accounting sul connettore RSSO e applica le policy |
| Access point | 192.168.200.0/24 | Client 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
- 2. Creare il connettore RSSO sul FortiGate
- 3. Creare il server RADIUS sul FortiGate
- 4. Creare i gruppi RSSO sul FortiGate
- 5. Creare le policy firewall sul FortiGate
- 6. Configurare client RADIUS e server remoto su NPS
- 7. Inoltrare l'accounting dal criterio di richiesta di connessione
- 8. Inviare l'attributo Class dal criterio di rete
- 9. Abilitare l'accounting sull'SSID degli access point
- 10. Verifica
- 11. Riepilogo e risoluzione dei problemi
1. Come funziona l'RSSO

Con access point di terze parti il flusso è il seguente:
- l'utente si collega all'SSID;
- l'access point invia nome utente e password al server RADIUS (NPS);
- NPS autentica l'utente in Active Directory e risponde all'AP con un Access-Accept;
- l'utente è connesso e riceve un indirizzo IP dal server DHCP;
- l'access point invia a NPS un messaggio di Accounting-Request;
- NPS inoltra l'Accounting-Request al FortiGate, con gli attributi User-Name, Framed-IP-Address e Class;
- il FortiGate associa l'utente al gruppo RSSO corretto in base al valore di Class e lo registra tra gli utenti autenticati;
- 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.

Completa la configurazione da CLI, indicando quale attributo identifica l'utente e per quanto tempo mantenere la sessione:
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
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). Con0la 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:
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).

Da CLI imposta l'indirizzo sorgente delle richieste e abilita l'invio dell'accounting a NPS:
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
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.

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.

Crea un gruppo per ogni insieme di utenti che deve avere regole diverse (es. GRP-SYSADMIN, GRP-WIRELESS). Da CLI:
config user group
edit "GRP-SYSADMIN"
set group-type rsso
set sso-attribute-value "GRP-SYSADMIN"
next
end5. 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:

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

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.

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:
- in Inoltro richiesta di connessione > Autenticazione lascia Autentica le richieste su questo server: l'autenticazione resta a NPS;
- 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;
- conferma con OK.

💡 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:
- seleziona Attributi RADIUS > Standard e fai clic su Aggiungi;
- scegli l'attributo Class e fai clic su Aggiungi;
- seleziona Stringa e inserisci lo stesso valore del campo RADIUS Attribute Value del gruppo RSSO (sezione 4), ad esempio
GRP-SYSADMIN; - conferma con OK e chiudi le proprietà del criterio.

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

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

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:
diagnose firewall auth list
diagnose debug application radiusd -1
diagnose debug enable
# al termine
diagnose debug disable
diagnose debug resetSu 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.
11. Riepilogo e risoluzione dei problemi
| Dove | Cosa configurare | Sezione |
|---|---|---|
| FortiGate | Connettore RADIUS Single Sign-On Agent con segreto condiviso e parametri rsso-* | Vai |
| FortiGate | Accesso RADIUS Accounting sull'interfaccia verso NPS | Vai |
| FortiGate | Oggetto RADIUS Server verso NPS con accounting-server | Vai |
| FortiGate | Gruppi RSSO con RADIUS Attribute Value = Class | Vai |
| FortiGate | Policy firewall con il gruppo RSSO in Source | Vai |
| NPS | Client RADIUS per il FortiGate e gruppo di server RADIUS remoti (porta 1813) | Vai |
| NPS | Inoltro dell'accounting nel criterio di richiesta di connessione | Vai |
| NPS | Attributo Class in ogni criterio di rete | Vai |
| Access point | Accounting verso NPS sulla porta 1813, con Interim Update | Vai |
Problemi frequenti
| Situazione | Causa probabile | Cosa fare |
|---|---|---|
| Nessun utente RSSO in Firewall Users | L'accounting non arriva al FortiGate | Verifica 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 scartati | Segreto condiviso diverso tra NPS e connettore RSSO | Allinea il segreto del server remoto su NPS (sezione 6.2) e quello del connettore (sezione 2) |
| Utente presente ma senza gruppo | Attributo Class assente o diverso dal valore del gruppo RSSO | Aggiungi Class al criterio di rete e verifica maiuscole e minuscole (sezione 8) |
| Utente senza indirizzo IP o non riconosciuto dalle policy | L'Accounting-Start non contiene Framed-IP-Address | Abilita gli Interim Update sugli access point (sezione 9) |
| NPS non inoltra nulla | Accounting non abilitato sull'SSID | Abilita l'accounting verso NPS sugli access point (sezione 9) |
| Utente rimane associato dopo la disconnessione | Nessun Accounting-Stop e timeout disattivato | Imposta rsso-context-timeout e abilita l'inoltro delle notifiche di avvio e fine (sezione 6.2) |
| Accesso Wi-Fi con le credenziali di Windows bloccato | Windows 11 con aggiornamento di ottobre 2026 o Credential Guard attivo | Problema di autenticazione, non di RSSO: valuta il passaggio a EAP-TLS |




