ASPNET Forms authentication ¿Cómo compartir datos cifrados entre aplicaciones?

 

Escenario

Para un cliente de la industria Bancaria implementamos autentificación utilizando formularios (Forms authentication) de ASPNET. Este formulario es único para todas las aplicaciones.

En el contexto de ese proyecto y buscando que sea lo más seguro posible utilizamos las opciones de cifrado de toda la información que se almacena en las cookies. Para ello utilizamos la opción <forms protection="All">.

Ahora, como el formulario es único para todas las aplicaciones, tuvimos que agregar el atributo <forms EnableCrossAppRedirects ="true"> para que así los clientes una vez autentificados regresaran a la aplicación que querían utilizar.

Solución

Para que esto funcione, ya que el formulario cifra los datos, es necesario que las aplicaciones y el formulario de autentificación compartan las llaves de cifrado. Esto nos obliga a generar y declarar explícitamente las llaves a utilizar. Esto se hace de la siguiente forma.

 

<machineKey validationKey="C50B3C89CB21F4F142…..5C07F6C36DB51F17C529AD3CABE"

decryptionKey="8A9BE8FD67AF697…………………AF2B72F"

validation="SHA1" />

Tabla1

Este TAG se debe agregar en el archivo de configuración tanto en el formulario de autentificación como en las aplicaciones que deben leer las cookies que generó el formulario.

Un problema común es cómo generar estas llaves. Como generar estas llaves programáticamente pueden verlo en este ejemplo [2] y desarrollar su generador o utilizar este [3] Free directo del WEB.

Enjoy!

Referencias

[1] Cómo: Proteger la autenticación de formularios en ASP.NET 2.0, http://www.microsoft.com/spanish/msdn/articulos/archivo/201205/voices/paght000012.mspx

[2] ASP.NET machineKey Generator, http://www.codeproject.com/aspnet/machineKey.asp

[3] ASP.NET machineKey Generator Software, http://www.developmentnow.com/articles/machinekey_generator.aspx

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s