ADC

Configurar SMS OTP para la autenticación web

NetScaler ahora se puede integrar con un proveedor de SMS de terceros para proporcionar una capa adicional de autenticación.

El dispositivo NetScaler se puede configurar para enviar una OTP al móvil del usuario como segundo factor de autenticación. El dispositivo presenta al usuario un formulario de inicio de sesión para introducir al OTP después de iniciar sesión correctamente en AD. Solo después de la validación correcta de la autenticación OTP por SMS se presenta al usuario el recurso solicitado.

Para lograr la autenticación OTP por SMS, el dispositivo NetScaler se basa en los siguientes factores en el back-end.

  1. Autentique al usuario mediante la autenticación LDAP y extraiga el número de teléfono móvil del usuario.
  2. Cree OTP y almacénelo en la variable NS. Configuración y uso de variables.
  3. Envíe la OTP mediante el método de autenticación WebAuth al número de teléfono móvil extraído de LDAP.
  4. Valide la OTP.

Requisitos previos

Habilitar funciones y agregar SNIP

Ejecute los siguientes comandos para habilitar las funciones necesarias para esta configuración:

enable ns feature LB SSL SSLVPN AAA

add ns ip <SNIP-IP> <subnet mask> -type SNIP
<!--NeedCopy-->

Configurar el almacén de OTP

Los administradores deben configurar una base de datos o un almacén para guardar las OTP utilizadas para la autenticación por SMS.

El intervalo de configuración recomendado para el parámetro expires (caducidad de OTP) es de 30 a 180 segundos. Cualquier valor que esté fuera de este rango puede provocar un error en la configuración OTP de SMS y en el flujo de nFactor.

add ns variable otp_store -type "map(text(65),text(6),100000)" -ifValueTooBig undef -ifNoValue undef -expires 60
<!--NeedCopy-->

Generar OTP aleatoria por sesión de usuario

Utilice el siguiente comando para generar una OTP aleatoria de 6 dígitos por sesión de usuario y guárdela en el almacén de OTP.

add ns assignment generate_otp -variable "$otp_store[AAA.USER.SESSIONID]" -set ("000000" + SYS.RANDOM.MUL(1000000).TYPECAST_UNSIGNED_LONG_AT.TYPECAST_TEXT_T).SUFFIX(6)
<!--NeedCopy-->

Configurar la autenticación OTP por SMS con NetScaler

  • Antes de configurar la función de autenticación de dos factores de SMS, debe tener configurada una autenticación LDAP en un dispositivo NetScaler como primer factor con la autenticación habilitada. Para obtener instrucciones para configurar la autenticación LDAP, consulte Para configurar la autenticación LDAP mediante la utilidad de configuración.

  • Configure LDAP y extraiga el número de teléfono móvil que se utilizará para la autenticación OTP por SMS.

Configuración de primer factor de ejemplo

Configure LDAP como el primer factor de autenticación.

 add authentication ldapAction ldap_extraction_action -serverIP <IP_Adress> -ldapBase OU=Sanity,dc=aaa,dc=local  -ldapBindDn administrator@aaa.local -ldapBindDnPassword <password> -ldapLoginName samaccountname -groupAttrName memberof -subAttributeName CN -authentication disabled

 add authentication Policy ldap_extraction_policy -rule true -action ldap_extraction_action
<!--NeedCopy-->

Nota

El número de teléfono móvil se puede extraer y AAA.USER.ATTRIBUTE(1)se puede incluir al enviarlo al servidor back-end.

Configuración de segundo factor de muestra

Con la siguiente configuración de ejemplo, se genera una OTP que se va a enviar al usuario final.

add authentication Policy set_otp -rule true -action generate_otp

add authentication policylabel set_otp_label -loginSchema LSCHEMA_INT

 bind authentication policylabel set_otp_label  -policyName set_otp -priority 1

add authentication Policy cascade_noauth -rule true -action NO_AUTHN
<!--NeedCopy-->

Política y acción de autenticación web

Ahora, configure la acción de autenticación web para enviar la OTP a cualquier remitente de SMS de terceros junto con el número de teléfono móvil obtenido de la política LDAP.

Compruebe la OTP y envíe la OTP generada a un proveedor de SMS externo o a cualquier servidor web, tal y como se configura a continuación:

add policy expression otp_exp_post ""Message: OTP is " + $otp_store[AAA.USER.SESSIONID] + " for login into secure access  gateway. Valid till EXPIRE_TIME. Do not share the OTP with anyone for security reasons&Mobile:" + AAA.USER.ATTRIBUTE(1)"

add authentication webAuthAction sms_post -serverIP <web_application_ip> -serverPort 80 -fullReqExpr q{"POST /MyPHP/auth.php HTTP/" + http.req.version.major + "." + http.req.version.major + "\r\nAccept:\*/\*\r\nHost: <web_application_ip> \r\nContent-Length:100\r\n\r\n" + otp_exp_post} -scheme http -successRule true

add authentication Policy post_wpp -rule true -action sms_post
<!--NeedCopy-->

Compruebe la OTP

Agregue la siguiente directiva y etiqueta de política para comprobar si existe la OTP para la sesión de usuario:

add authentication policylabel check_otp_label -loginSchema LSCHEMA_INT

add authentication Policy check_otp -rule "$otp_store.valueExists(AAA.USER.SESSIONID)" -action NO_AUTHN
<!--NeedCopy-->

Verificación de OTP comparando el valor proporcionado por el usuario y el valor del almacén OTP

Ejecute los siguientes comandos para verificar la OTP comparando el valor proporcionado por el usuario y el valor del almacén OTP:

add authentication loginSchema onlypassword -authenticationSchema "/nsconfig/loginschema/LoginSchema/OnlyPassword.xml"

add authentication policylabel otp_verify_label -loginSchema onlypassword

add authentication Policy otp_verify -rule "AAA.LOGIN.PASSWORD.EQ($otp_store[AAA.USER.SESSIONID])" -action NO_AUTHN
<!--NeedCopy-->

Enlazar la directiva a la etiqueta de directiva de autenticación

bind authentication policylabel set_otp_label -policyName cascade_noauth -priority 2 -gotoPriorityExpression NEXT -nextFactor check_otp_label

bind authentication policylabel check_otp_label -policyName post_wpp -priority 1 -gotoPriorityExpression NEXT -nextFactor otp_verify_label

bind authentication policylabel otp_verify_label -policyName otp_verify -priority 1 -gotoPriorityExpression NEXT
<!--NeedCopy-->

Crear un servidor virtual de autenticación y un servidor virtual de equilibrio de carga

 add authentication vserver avs SSL <ipadresss> 443

add ssl certKey aaa_local -cert aaatm_wild.cer -key aaatm_wild.key

bind ssl vserver avs -certkeyName aaa_local

bind authentication vserver avs -policy ldap_extraction_policy -priority 1 -nextFactor set_otp_label -gotoPriorityExpression NEXT

add lb vserver lb HTTP <ip_adresss> 80 -persistenceType NONE -cltTimeout 180 -AuthenticationHost <auth_server> -Authentication ON

add service svc <Ip_adresss> HTTP 80

bind lb vserver lb svc
<!--NeedCopy-->

Nota:

La directiva de autenticación en cascada se agrega para permitir una autenticación fiable y continua para los usuarios finales. Si el factor actual falla, se evalúa el siguiente factor de manera que no haya impacto en la experiencia del usuario.

Configurar SMS OTP para la autenticación web