Fortigate e SAML SSO con Azure AD

Fortigate offre la possibilità di utilizzare AzureAd come provider di autenticazione per il login agli apparati, per il login alla VPN SSL e per il login al captive portal per la navigazione interna.

Il sistema presenta qualche limitazione, evidenziata di volta in volta in questo articolo, ma funziona perfettamente.

SAML SSO per login su FortiOS

Viene permesso il login sui firewall Fortigate tramite credenziali Microsoft

La guida per l’attivazione è la seguente: Fortigate SSO login sul router

ATTENZIONE: Non è possibile loggarsi con credenziali SSO sui singoli router tramite i singoli IP, in quel caso andranno utilizzate le credenziali admin locali

SAML SSO per login su SSLVPN

Viene consentito il login tramite credenziali Microsoft al collegamento VPN con Forticlient VPN

La guida per l’attivazione è la seguente Fortigate SSO login con SSLVPN

Per evitare errori di login è stato necessario aumentare il timeout sull’autenticazione remota con

config system global
set remoteauthtimeout 60
end

ATTENZIONE: Nelle policy non è possibile andare a censire il singolo utente di AzureAD
Le policy quindi dovranno predicare sempre sui gruppi (es. per policy per utente creare un gruppo con all’interno solo quell’utente)

SAML SSO per login su navigazione interna

Viene richiesto il login tramite credenziali Microsoft su captive portal per autorizzare la navigazione interna

La guida per l’attivazione è la seguente Fortigate SSO login su navigazione

Per ovviare all’errore sul certificato proposto dal captive portal è possibile caricare un certificato valido (es. creato con Let’s Encrypt) e censire il dominio di tale certificato (es. sso.azienda.com) nel DNS interno in modo che reindirizzi verso l’IP del firewall che espone il captive portal (es. https://192.168.1.1:1003).

Andrà perciò impostato che l’indirizzo del captive portal è quello corrispondente al dominio del certificato lanciando il seguente comando da CLI Fortigate SSO login su navigazione – aggiunta nome portale

ATTENZIONE: Nelle policy non è possibile andare a censire il singolo utente di AzureAD
Le policy quindi dovranno predicare sempre sui gruppi (es. per policy per utente creare un gruppo con all’interno solo quell’utente)

Nel caso in cui si desideri avere più interfacce (quindi subnet multiple) che utilizzano il login trami SAML SSO è possibile andare a creare più app SAML in AzureAD e configurare più interfacce sul Fortigate, tuttavia sarà necessario censire i gruppi per ogni applicazione/interfaccia come da seguente guida Fortigate SSO login su navigazione – portale con interfacce multiple

Un’alternativa può essere quella di utilizzare il DNS server affinchè risponda con un IP diverso (quello relativo all’interfaccia della subnet da cui arriva la query DNS) a seconda dell’IP sorgente della query. In questo modo si potrà avere la stessa applicazione e lo stesso certificato usato dal captive portal senza avere errori lato browser.

La documentazione di questa funzione del DNS server di Windows è la seguente Fortigate SSO DNS Windows risposte su sorgente, in particolare i comandi utilizzati nel nostro caso per le due subnet di navigazione (192.168.137.0 e 192.168.142.0) sono stati i seguenti (da replicare su ogni DNS server)

Add-DnsServerClientSubnet -Name "DatiWIFI" -IPv4Subnet "192.168.11.0/24"
Add-DnsServerClientSubnet -Name "Dati" -IPv4Subnet "192.168.12.0/24"
Add-DnsServerZoneScope -ZoneName "sso.dominio.com" -Name "DatiWIFIScope"
Add-DnsServerZoneScope -ZoneName "sso.dominio.com" -Name "DatiScope"
Add-DnsServerResourceRecord -ZoneName "sso.dominio.com" -A -Name "." -IPv4Address "192.168.11.1" -ZoneScope "DatiScope"
Add-DnsServerResourceRecord -ZoneName "sso.dominio.com" -A -Name "." -IPv4Address "192.168.12.1" -ZoneScope "DatiWIFIScope" 
Add-DnsServerQueryResolutionPolicy -Name "DatiPolicy" -Action ALLOW -ClientSubnet "eq,Dati" -ZoneScope "DatiScope,1" -ZoneName "sso.dominio.com"
Add-DnsServerQueryResolutionPolicy -Name "DatiWIFIPolicy" -Action ALLOW -ClientSubnet "eq,DatiWIFI" -ZoneScope "DatiWIFIScope,1" -ZoneName "sso.dominio.com"

risulta opzionale definire la risposta predefinita (ed è possibile farla anche da GUI questa parte)

Add-DnsServerResourceRecord -ZoneName "sso.dominio.com" -A -Name "." -IPv4Address "192.168.11.1" 
Add-DnsServerResourceRecord -ZoneName "sso.dominio.com" -A -Name "." -IPv4Address "192.168.12.1"

I timeout per la scadenza della sessione si possono ridefinire tramite i comandi da CLI seguenti Fortigate CLI timeout

 

Aggiungi ai preferiti : permalink.

I commenti sono chiusi.