Integrando latch en aplicaciones asp.net

17
ElevenPaths [email protected] elevenpaths.com Integrando Latch en aplicaciones ASP.NET Enero 2014

description

Tutorial elaborado por ElevenPaths sobre cómo integrar Latch en aplicaciones ASP.NET

Transcript of Integrando latch en aplicaciones asp.net

Page 1: Integrando latch en aplicaciones asp.net

ElevenPaths [email protected] elevenpaths.com

Integrando Latch en aplicaciones ASP.NET

Enero 2014

Page 2: 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

Page 3: Integrando latch en aplicaciones asp.net

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.

Page 4: Integrando latch en aplicaciones asp.net

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.

Page 5: Integrando latch en aplicaciones asp.net

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

Page 6: Integrando latch en aplicaciones asp.net

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:

Page 7: Integrando latch en aplicaciones asp.net

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

Page 8: Integrando latch en aplicaciones asp.net

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.

Page 9: Integrando latch en aplicaciones asp.net

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.

Page 10: Integrando latch en aplicaciones asp.net

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

Page 11: Integrando latch en aplicaciones asp.net

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)

Page 12: Integrando latch en aplicaciones asp.net

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

Page 13: Integrando latch en aplicaciones asp.net

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>.

Page 14: Integrando latch en aplicaciones asp.net

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.

Page 15: Integrando latch en aplicaciones asp.net

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.

Page 16: Integrando latch en aplicaciones asp.net

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

Page 17: Integrando latch en aplicaciones asp.net

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.