I figured it out today, though I have to warn everyone that I ended up having to change some scripting on the YubiRADIUS server to get it working. It seems like the crux of the problem is that the YubiRADIUS server wants to behave as a proxy for AD/LDAP authentication, being the gateway to both factors of authentication. The SA wants those auth servers to be different and won't let you choose the RADIUS server for both factors of authentication. There doesn't appear to be any way to configure the Juniper SA box to send the username and password in the necessary format. However, the YubiRADIUS' ykval process calls a php script - /usr/share/yropval/ykropval-verify.php - that is expecting to see the AD password. When it doesn't, the process rejects the auth attempt and exits. Making the following changes to the php file solves this: Comment out the following lines from ykropval-verify.php: if (! $passwd) { // If password was not explicitly provided, we assume the password is anything // before the last 44 characters in $otp (legacy mode). if (strlen($otp) > 44) { $passwd = substr ($otp, 0, -44); $otp = strtolower(substr($otp, -44, 44)); } else { $passwd = null; $otp = strtolower($otp); } } if (! $passwd) { // As ldap_bind returns true for null password we are insuring that password should not be null $myLog->log(LOG_DEBUG, "NULL password is not allowed in two factor auth"); } Change the following line from: if ( !($otp && $user && $client && $password)){ to: if ( !($otp && $user && $client)){ Authentication succeeds after these changes. I'm verifying these changes with Yubico and will post their reply.
... View more