First time posting and really hoping that someone tells me I'm an idiot, and the solution's really simple...
I'm trying to use Microsoft's Azure MFA Server product to add multi-factor authentication to our Fortigate SSL-VPN.
The way I have it set up, is:
LOGIN REQUEST TO FG -> RADIUS TO MFA -> MFA PROXIES REQUEST TO RADIUS SERVER
Which is the way that Microsoft says that I should have it set up.
If I substitute the MS VPN solution in place of the Fortigate, it works fine.
If I take MFA server out of the equation, it works as it should.
However - if I have it set up as I need it to be, the Fortigate denies the login, stating that it can't find the user. Yet the identical username without the MFA server works fine...
I've wireshark'd the RADIUS packets from both the vanilla RADIUS server and from the MFA server, and they're identical sans the individual packet identifiers. I've used the packet sniffer in the Fortigate itself to check that they're arriving intact, which they are. The ONLY thing I can find that's actually wrong, is that the Fortigate seems to just ignore the RADIUS Access-Accept packet. Yet, I can't find any record of that happening.
To stop me further losing my sanity, has anyone else come across this, or does anyone have any ideas at all?
But I have seen quite a few RADIUS backends to FGT.
If I got it correctly then FGT sends RADIUS Access-Request to Azure (it is supposed to be proxied to some other RADIUS server deeper in the structure) and FGT should get Access-Accept (if auth succeeded) or Access-Reject (if failed) or Challenge-Request (if there is something like password change needed or 2FA).
I'd suggest to check on FGT what is the auth content and how it's processed.
Basically any remote auth on FGT should trigger fnbamd daemon which should handle the communication with auth server.
So SSH to CLI and log all output, then ...
get sys stat
show user radius
show user group
diag debug reset
diag debug console timestamp enable
diag debug app fnbamd 7
diag debug enable
diag sniff pack any 'port 1812 or 1813' 6 0 a
# test auth
# then after one test Ctrl-C to terminate sniffer, save the output and check that.
What was the result of the fnbamd ?
What was returned RADIUS response (Accept or Reject or Challenge) ?
If it was Accept but you were not allowed through, then there were probably other conditions you haven't met like group match. Debug of fnbamd should tell you more.
Is there group match set in group ?
If so, did Access-Accept received by FGT contain AVP Fortinet-Group-Name ?
If not, that's the fail. If yes, is the content of the AVP exactly matching the string in group match set in firewall user group ?
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.