This article describes in detail how to renew password for users that is expired on AD using FortiGate and FortiAuthenticator.
It is presumed that SSL-VPN authentication with FortiGate and FortiAuthenticator is working, for password renewal it is mandatory to use MSCHAPv2 on FortiGate and FortiAuthenticator.
In order to renew the password, it is necessary that FortiAuthenticator should be able to join the domain and use LDAPS.
For FortiAuthenticator to join on AD, follow the below KB article and make sure that ‘Use Windows AD Domain Authentication’ is enabled on Radius Policy.
From the AD side, set an user account to expired and select ‘user must change the password’ on the next logon.
From SSL-VPN web portal, try to log in with username/password.
It will be prompted that the password is expired, then select a new one.
After the change, the user is going to authenticate, this can be verified from the debug logs on FortiAuthenticator, https://<fac-ip>/debug and download radius authentication.
From the debug logs, it is possible to see that the user password change is required. This can be done by MSCHAPv2 through ntlm_auth helper and the password change will be successful.