En este artículo hablaremos de como WSO2 Identity Server (IS) puede reforzar la seguridad de acceso a nuestras aplicaciones incluyendo un segundo paso de autenticación y se explicará cómo habilitar y configurar la autenticación multifactor utilizando SMS OTP.
¿Qué es OTP (One Time Password)?
Una contraseña de un sólo uso (OTP), es una contraseña diseñada para utilizarse una sola vez o que será válida durante un plazo breve de tiempo.
En este proceso se está utilizando el móvil de la persona para verificar su identidad. Se asume que sólo el propietario tendrá acceso al móvil para recibir la contraseña.
Este sistema es comúnmente utilizado para operaciones de banca, alta en plataformas digitales, recuperación de contraseñas, etc.
Pre-requisitos para la autenticación con SMS OTP
-
Descargar la última versión de WSO2 IS, la cual podemos obtener mediante el siguiente enlace Identity Server – On-Premise and in the Cloud.
-
Para el envío de SMS utilizaremos Vonage como proveedor de SMS, para esto debemos crear una cuenta mediante el siguiente enlace Vonage API Dashboard.
-
Una vez creada la cuenta en Vonage, obtener el API Key y el API Secret ya que los utilizaremos para configurar nuestro Proveedor de Identidades.
Creación de un Usuario
En este punto se hablará de los pasos a seguir para crear un usuario:
1.Ingresar a la consola de administración de WSO2 IS mediante la siguiente url: https://localhost:9443/carbon
2. En la siguiente ventana dar clic en la opción Add New User:
4. En la siguiente ventana seleccionar un rol con permisos de login, para concluir con la creación del usuario daremos clic en el botón Finish:
5. Posteriormente debemos actualizar el perfil del usuario, incluyendo un número de móvil valido.
Configurar el proveedor de identidades
Para configurar el proveedor de identidades se deberán seguir los siguientes pasos:
1.En el menú Home, debajo de Identity Providers debemos dar clic en la opción Add.
2. En la siguiente ventana, en la sección Basic Information llenar los siguientes datos:
Identity Provider Name |
SMSOTP |
Alias |
https://localhost:9443/oauth2/token |
3.En la sección SMS OTP Configuration llenar los siguientes datos:
Enable |
Activar checkbox |
SMS URL |
https://rest.nexmo.com/sms/json?api_key=<ENTER_API_KEY>&api_secret=<ENTER_API_SECRET>&from=NEXMO&to=$ctx.num&text=$ctx.msg |
HTTP Method |
POST |
Configurar el Service Provider
Para este ejemplo utilizaremos el service provider User Portal y haremos lo siguientes pasos:
1.En la consola de administración debemos dar clic en la opción Service Providers.
2. Ahora editaremos el service provider User Portal, esto lo haremos dando clic en el botón Edit.
3.Posteriormente daremos clic en la opción Advanced Configuration.
4.En la siguiente ventana daremos clic en el botón Add Authentication Step y en el Step2 seleccionaremos de la lista la opción SMSOTP y para agregarlo daremos clic en Add Authenticator.
Probar la configuración
Para probar las configuraciones que acabamos de realizar en los apartados anteriores, seguiremos los siguientes pasos:
1.Nos dirigiremos a la siguiente url: https://localhost:9443/user-portal
2. En ella, escribiremos las credenciales de nuestro usuario demo que creamos en WSO2 Identity Server.
3. Una vez ingresadas las credenciales, en la siguiente ventana nos solicitará ingresar el OTP que nos habrá llegado por mensaje de texto a nuestro móvil.
4. Si el código es correcto, nos permitirá el acceso al Portal de usuario, en caso contrario nos indicará que el OTP es incorrecto.
Conclusión
Como pudimos observar en este artículo, con WSO2 Identity Server podemos reforzar la seguridad de acceso a nuestras aplicaciones incluyendo un segundo paso de autenticación, en este caso fue el envío de OTP por SMS, pero se puede realizar el envío por email o incluir un tercer paso utilizando un biométrico para la lectura de huella digital.
Si quieres saber cómo Chakray puede ayudarte en reforzar la seguridad de acceso mediante OTP, ¡contáctanos!