Latches. Outline Pulse-Triggered Latch S-R Latch Gated S-R Latch Gated D Latch.
Integrando latch en aplicaciones asp.net
-
Upload
elevenpaths -
Category
Technology
-
view
21.902 -
download
9
description
Transcript of Integrando latch en aplicaciones asp.net
ElevenPaths elevenpaths.com
Page 1 of 17
Contenido
Contenido .................................................................................................................................................... 1
Introducción ................................................................................................................................................ 2
Requerimientos previos .............................................................................................................................. 2
Integración del plugin .Net en aplicación web form ................................................................................... 3
Comprobando el funcionamiento ............................................................................................................... 8
One Time password ................................................................................................................................... 11
23
ElevenPaths elevenpaths.com
Page 2 of 17
Introducción
Latch es un sistema que proporciona un servidor de “pestillos” desarrollado por Eleven Paths que permite
a los usuarios bloquear y desbloquear sus identidades digitales con la ayuda de un terminal móvil. Esta
aplicación se caracteriza por su interfaz sencilla y clara, lo que facilita su uso por parte de los usuarios
finales.
Latch se comporta como un servicio totalmente independiente del sistema de autenticación nativa
existente en los sistemas donde sea implantado. Esto significa que Latch nunca va a tener acceso a las
credenciales de la cuentas, ni el sistema destino (llámese Wordpress, Prestashop o cualquier otro) va a
tener acceso a las credenciales de la cuenta de usuario utilizada en Latch.
Figura 1: Funcionamiento esquemático de Latch.
Se puede encontrar más información en https://latch.elevenpaths.com
A continuación se va a mostrar cómo integrar Latch en el entorno de desarrollo .NET. El objetivo es
enseñar a integrar cualquier aplicación web desarrollada con ASP.NET y que requiera autenticar usuarios
a que utilice Latch como método de seguridad añadido.
Requerimientos previos
Lo primero que se va a necesitar son las librerías de Latch para .NET, disponibles desde
https://github.com/ElevenPaths/latch-plugin-dotnet-membership-provider. Se encuentran en el
repositorio GitHub, donde se distribuyen abiertamente. A través del botón Download Zip se puede
proceder con la descarga de todos los elementos necesarios.
También es necesario crear una cuenta de developer en la web de Latch, y registrarse como proveedor
para obtener los datos necesarios. Una vez accedida a la zona interna del desarrollador, será necesario
dirigirse a la zona My applications para dar de alta la aplicación a integrar con el plugin de .NET y añadir
una aplicación.
ElevenPaths elevenpaths.com
Page 3 of 17
Figura 2: Ejemplo de aplicación .NET añadida a las aplicaciones del desarrollador.
Entre las opciones de configuración de la aplicación, se mostrarán dos campos importantes asignados de
forma automática: el campo Application ID y el campo Secret. Sus valores serán elementos necesarios en
la posterior configuración que se realizará en la página web .NET donde se integre el plugin.
En el proceso de configurar las opciones disponibles para la nueva aplicación cabe destacar también
aspectos como la imagen a visualizar para la aplicación (el entorno establecerá por defecto una imagen si
ésta no se indica explícitamente) en el dispositivo móvil o la configuración para conseguir la integración
de segundo factor de autenticación (Second factor). Este aspecto se tratará más adelante.
Integración del plugin .Net en aplicación web form
Una vez registrada la aplicación en la web de Latch, se debe integrar el plugin de .NET en un nuevo
proyecto web ASP.NET. Para obtener el entorno básico con plantillas incorporadas, en Visual Studio.Net
se crea un proyecto del tipo ASP.Net Web Forms Application.
ElevenPaths elevenpaths.com
Page 4 of 17
Figura 3: Agregar nueva aplicación ASP.NET.
Una vez creada la aplicación web ASP.NET (utilizando para ello el explorador de soluciones) han de ser
referenciadas (a través del nodo referencias) las librerías LatchMembership.dll y LatchSDK.dll que
proporcionan acceso a Latch. Se encuentran en la carpeta LatchMembership/bin/Release, proporcionada
en la descarga del plugin a través de GitHub. Es necesario copiarlas en la carpeta bin de la aplicación web.
Este proceso se realiza de forma automática cuando las librerías son agregadas al proyecto desde el
explorador de soluciones. Tan solo se ha de hacer clic con el botón derecho del ratón sobre el nodo
References y seleccionar en el menú contextual la opción Add reference.
Figura 4: Agregar referencia a las librerías
ElevenPaths elevenpaths.com
Page 5 of 17
Para comprobar que las librerías se han agregado correctamente, basta con expandir el nodo References y
comprobar que se encuentran añadidas.
El siguiente paso será editar el fichero Web.config. En concreto, las modificaciones serán:
1. Declarar una nueva sección (Section) para poder ingresar un nuevo control en el Web.config.
2. Un control personalizado denominado latchSettings, donde se establecerán los valores de
Application ID y Secret en los atributos appId y appSecret respectivamente.
3. Un nuevo provider, que NO sustituirá al antiguo provider, sino que será agregado. Tras esto, será
necesario cambiar el defaultProvider que viene configurado por defecto por el nuevo proveedor
denominado LatchMembershipProvider·
El código de ejemplo a establecer en el fichero Web.config con los valores indicados, será el siguiente:
<configuration> <configSections> <section name="latchSettings"
type="LatchMembership.LatchSettingsSection, LatchMembership, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</configSections> <latchSettings innerMembershipProvider="MyMembershipProvider"
appId="12345678901234567890" appSecret="1234567890123456789012345678901234567890" />
<system.web> <membership defaultProvider="LatchMembershipProvider"> <providers>
<add name="MyMembershipProvider" type="..." connectionStringName="..." ... /> <add name="LatchMembershipProvider"
type="LatchMembership.LatchMembershipProvider, LatchMembership, Version=1.0.0.0, Culture=neutral" />
</providers> </membership> </system.web> </configuration>
El fichero Web.config, tras añadir las modificaciones anteriores, va a quedar de la siguiente forma:
ElevenPaths elevenpaths.com
Page 6 of 17
Figura 5: Ejemplo de fichero Web.config ya modificado
En este punto es necesario acceder a la zona de administración del usuario de la aplicación web en la que
se desea integrar Latch. En ella se incluirá un control de usuario destinado a realizar el proceso de pareo
con Latch. La aplicación web predeterminada proporciona una plantilla funcional que cuenta con una
zona de register y con una zona de sign in. Una vez se registre a un usuario (en el ejemplo que se ilustra
se ha utilizado al usuario Jhonattan) la zona administración de cuenta tendrá el siguiente aspecto de
forma predeterminada.
Figura 6: Página de administración de cuenta
ElevenPaths elevenpaths.com
Page 7 of 17
Para insertar el control de usuario (a partir de ahora se va a denominar Pairing Control), se debe editar
con Visual Studio.Net el archivo Manage.aspx. La vista diseño (pestaña Design) proporciona un entorno
WYSIWYG (What You See Is What You Get) que se podrá utilizar para acoplar el control.
Figura 7: Modo diseño de la página Manage.aspx
El siguiente paso será activar el cuadro de herramientas (pestaña Toolbox) y seleccionar la opción Choose
Items con el botón derecho. Esta opción abrirá un panel donde se cargarán todos los componentes
disponibles (acción que puede tardar hasta un minuto) y desde el que se seleccionarán los componentes
de Latch que se van a utilizar, referenciados anteriormente. Sobre la pestaña .NET Framework
Components, hay que pulsar sobre el botón Browse… y seleccionar las librerías de Latch
(LatchMembership.dll y LatchSDK.dll), disponibles en la carpeta bin de la aplicación web.
ElevenPaths elevenpaths.com
Page 8 of 17
Figura 8: Localizando los componentes
De nuevo, solo queda comprobar que bajo la sección General del cuadro de herramientas se han
agregado dos nuevos controles de usuario al cuadro de herramientas (LatchLogin y PairingControl).
Figura 9: Componentes agregados al cuadro de herramientas
El siguiente paso será arrastrar el componente PairingControl y soltarlo sobre la zona del fichero
Manage.aspx donde se desee establecer el pareado.
Comprobando el funcionamiento
Llegados a este punto, se dispone de todo lo necesario para utilizar Latch. Ya que la zona de
administración de cuenta se habrá modificado para poner a disposición del usuario la opción de introducir
un token de pareo (emparejamiento) entre aplicación y terminal móvil mediante el campo Parining token.
ElevenPaths elevenpaths.com
Page 9 of 17
Figura 10: Manage.aspx con campo para pareado
Para comprobarlo desde el punto de vista del usuario, se debe usar la app correspondiente. Actualmente
Latch se encuentra disponible para plataformas iOS, Android y Windows Phone desde los markets
oficiales correspondientes:
- App Store (aplicación para sistemas móviles iOS)
- Google Play (aplicación para sistemas móviles Android)
- MarketPlace Microsoft (aplicación para sistemas Windows Phone)
Una vez instalada en el teléfono o tablet, se debe añadir el servicio. A través del botón Add Service, Latch
va mostrar la opción Generate a pairing code que generará el código de emparejamiento que debe ser
introducido en la aplicación web .NET. El código debe introducirse en la aplicación .NET creada.
Figura 11: Introduciendo el token generado en el smartphone en la aplicación web
ElevenPaths elevenpaths.com
Page 10 of 17
Este código de emparejamiento será válido durante un tiempo determinado. Si dentro de ese intervalo no
se ha producido el emparejamiento, habrá que generar un nuevo código de emparejamiento. Si todo
funciona correctamente, en el teléfono se debe recibir un mensaje de confirmación de emparejamiento.
Figura 12: Notificación de cuenta asociada correctamente
Por otro lado, en la aplicación web aparecerá el siguiente mensaje, mostrando un código para referenciar
la cuenta de usuario y la opción Unpair, en el caso de que se desee desvincular desvincular
posteriormente la aplicación web con el servicio Latch.
Figura 13: Detalle de cuenta de usuario y opción unpair
En la pantalla principal de la app del usuario aparecerá ahora la nueva aplicación pareada Mi aplicación
.NET, con la opción de poder bloquear/desbloquear (Unlocked/Locked)
ElevenPaths elevenpaths.com
Page 11 of 17
One Time password
Otra de las opciones a configurar es la de Contraseña de un solo uso (One Time Password). Lo mostrado
hasta ahora permite establecer el estado de bloqueo en la cuenta de acceso a la aplicación .NET por parte
de un usuario. Sin embargo, con la opción de Contraseña de solo uso configurada a nivel de aplicación, se
puede establecer un segundo factor de autenticación fortificando la seguridad de la cuenta.
Para implementar esta opción, el usuario ha de remitirse de nuevo a la configuración de la aplicación
dentro del área de desarrollo en la web de Latch.
Figura 14: Activando OTP desde la configuración de la aplicación
En la configuración de la aplicación, se dispone del campo 2-Factor OTP para configurar la OTP. Si el
usuario desarrollador elige la opción de Opt in y el usuario cliente tiene seleccionado la opción de OTP en
la configuración del servicio de la aplicación Mi Aplicación .Net en su móvil, cada vez que éste quiera
ingresar en la aplicación web deberá introducir un código de un solo uso (OTP) que se le enviará al móvil.
Sin embargo, si el usuario desarrollador elige la opción Mandatory obligará a los usuarios de su aplicación
a introducir un segundo factor de autenticación siempre al intentar autenticarse en su web, puesto que el
usuario cliente no tendrá la opción de deshabilitar el Second factor.
Para incluir la funcionalidad de Contraseña de un solo uso en la aplicación web, el desarrollador deberá
acudir a su sección de Login y editar el archivo Login.aspx, que puede editarse de forma muy similar a
ElevenPaths elevenpaths.com
Page 12 of 17
como se hizo con el archivo Manage.aspx. Se ha de arrastrar el control Latch Login desde el cuadro de
herramientas y soltarlo sobre la vista de diseño de la página de Login.
Figura 15: Control LatchLogin insertado en el código fuente de la página de Login
Ahora se debe realizar un cambio simple: cambiar la etiqueta <asp:Login> por <cc1:LatchLogin>, además
del cierre de la etiqueta </asp:Login> por la etiqueta </cc1:LatchLogin>.
ElevenPaths elevenpaths.com
Page 13 of 17
Figura 16: Control LatchLogin insertado en el código fuente de la página de Login
Realizado el cambio, la aplicación Latch del usuario final mostrará la opción de utilizar la Contraseña de un
solo uso (Opción de configuración One-time password), cuando paree esta aplicación. Para comprobar su
funcionamiento, y puesto que en el ejemplo el desarrollador ha elegido que sea una opción no obligatoria
para el usuario (Opt-in), este debe activar el botón de la configuración One-time password a On.
ElevenPaths elevenpaths.com
Page 14 of 17
Figura 17: Opción One-time password en On desde la app del usuario
Cuando el usuario se presente en la aplicación ASP.NET, desde Login.aspx se solicitará ahora la
Contraseña de un solo uso, que deberá introducirse para poder finalizar el proceso de autenticación sobre
la aplicación web.
ElevenPaths elevenpaths.com
Page 15 of 17
Figura 18: OTP enviado al dispositivo móvil con la app
Figura 19: Una vez autenticado, se procederá a comprobar el segundo factor de autenticación
enviado al dispositivo móvil con la app
ElevenPaths elevenpaths.com
Page 16 of 17
Legal Notice
The information disclosed in this document is the property of Telefónica Digital Identity & Privacy, S.L.U.
(“TDI&P”) and/or any other entity within Telefónica Group and/or its licensors. TDI&P and/or any
Telefonica Group entity or TDI&P’S licensors reserve all patent, copyright and other proprietary rights to
this document, including all design, manufacturing, reproduction, use and sales rights thereto, except to
the extent said rights are expressly granted to others. The information is this document is subject to
change at any time, without notice.
Neither the whole nor any part of the information contained herein may be copied, distributed, adapted
or reproduced in any material form except with the prior written consent of TDI&P.
This document is intended only to assist the reader in the use of the product or service described in the
document. In consideration of receipt of this document, the recipient agrees to use such information for
its own use and not for other use.
TDI&P shall not be liable for any loss or damage arising out from the use of the any information in this
document or any error or omission in such information or any incorrect use of the product or service. The
use of the product or service described in this document are regulated in accordance with the terms and
conditions accepted by the reader.
TDI&P and its trademarks (or any other trademarks owned by Telefonica Group) are registered service
marks. All rights reserved.