From the exhibits and text:
FortiGate →RADIUS→ FortiAuthenticator
FortiAuthenticator →LDAP→ Windows AD
diagnose test authserver radius ... papsucceeds
diagnose test authserver radius ... mschap2fails
This behavior matches a classic limitation documented in FortiOS:
When usingLDAPas the back-end, the RADIUS server must usePAP. CHAP/MS-CHAPv2 arenot supportedwith plain LDAP because the server cannot validate the challenge–response without access to password hashes.
In the Remote LDAP server config on FortiAuthenticator, the option“Windows Active Directory Domain Authentication” is disabled.When this feature isenabled, FortiAuthenticator can talk to AD usingKerberos/NTLMinstead of a simple LDAP bind, whichdoes support MS-CHAPv2for incoming RADIUS authentications.
So to allow MS-CHAPv2 all the way from FortiGate to AD, you must:
Keep FortiGate using RADIUS with MS-CHAPv2 → FortiAuthenticator
EnableWindows Active Directory Domain Authenticationso FortiAuthenticator can properly validate MS-CHAPv2 against AD.
Why the other options are wrong:
A. Change to CHAP– CHAP still cannot be validated over LDAP; docs say LDAP back-ends must usePAP.
C. Manually add users to local DB– That would allow local-DB auth but does not fix MS-CHAPv2 against AD.
D. Use RADIUS attributes on FortiGate– Attributes do not influence the EAP inner method; they don’t fix MS-CHAPv2 failures.
Therefore the configuration change that can realistically fix the MS-CHAPv2 problem isenabling Windows Active Directory Domain Authentication on FortiAuthenticator (B).