domingo, 16 de agosto de 2009

Windows CardSpace, Identidad Digital

Para comprender mejor la identidad digital lo mejor es hacer un símil con la vida real.

En nuestra vida cotidiana, la forma en que presentamos nuestra identidad cambia dependiendo de a quien nos identificamos. Cuando presentamos el pasaporte en un aeropuerto, somos un ciudadano de algún país. Cuando mostramos la licencia de conducir a un policía, soy un conductor legal que reside en alguna localidad. Cuando uso la tarjeta de crédito para pagar algo, soy un cliente con un número de cuenta en particular. Diferentes contextos requieren distintas identidades, cada una de las cuales es expresada de una manera diferente y contiene distinta información.

Igualmente, diferentes tipos de identidades digitales seguirán siendo necesarios (no bastará una simple identidad). Y tampoco bastará un simple proveedor de identidades. Esto significa que la solución es encontrar una manera coherente de usar múltiples sistemas de identidad digital. Lo que se requiere es un sistema de sistemas (un Meta sistema) concentrado en identidad.

Todas las identidades digitales tienen un punto en común: cuando es transmitida en la red, cada identidad digital es representada por algún tipo de token de seguridad. Un token de seguridad es sólo un conjunto de bytes que expresa información sobre una identidad digital. Esta información consiste en uno o más claims, cada uno de los cuales contiene una parte de la información convenida sobre esta identidad. Un token de seguridad simple puede incluir un solo claim que contenga el nombre de usuario, mientras que uno más complejo puede incluir claims que contengan el nombre del usuario, apellido, dirección y más. Los tokens de seguridad por alguna identidad digital también podrían incluir claims que contengan información sensible, como números de tarjetas de crédito.

 

El proceso de autenticación

El proceso comienza cuando un usuario del navegador accede a una página protegida en un sitio web (Ejemplo Hotmail). En este punto, el sitio requiere que el usuario se logue.

El formulario de login le puede permitir al usuario iniciar sesión en el sitio proporcionando su nombre de usuario y contraseña, pero si el sitio es compatible con CardSpace, la página que transporta el formulario también contendrá un OBJECT tag específico o una sintaxis XHTML.

CardSpace Iniciar con Tarjeta

Si el usuario selecciona esta opción (Tarjeta de Información o CardSpace), IE 7 o superior ejecutará un código identificado por el OBJECT tag o la sintaxis XHTML, que requerirá la implicación de CardSpace's en el proceso de login.

La pantalla de CardSpace aparecerá, y el usuario podrá seleccionar una identidad.

CardSpace Iniciar con Tarjeta

Además tendrá la posibilidad de agregar una nueva tarjeta si lo desea, o solamente seleccionar una tarjeta existente y presionar Enviar.

Hasta aquí, toda la comunicación con este sitio utilizó HTTP. Una vez que el usuario selecciona una identidad, sin embargo, CardSpace se contacta con el proveedor de la identidad usando WS-Trust, como es habitual, y obtiene el token de seguridad.

Este token luego es enviado al sitio web usando HTTP POST como parte del proceso de login. La aplicación web puede usar el token para autenticar al usuario o para cualquier otro propósito.

 

Características fundamentales de CardSpace

  • Soporte a cualquier sistema de identidad digital.
  CardSpace puede trabajar con cualquier sistema de identidades, usando cualquier tipo de token de seguridad, incluidos simples usernames, certificados X.509, tickets Kerberos, tokens SAML, o cualquier otro.
  • Control consistente de la identidad digital.
  • Reemplazo del password basado en Web Login.
  • Mejora en la confianza en la identidad de aplicaciones remotas.

Requisitos para usar CardSpace

  • Debemos usar IE7 o superior, aunque también hay una extensión para usar CardSpace en Firefox.
  • .NET Framework 3.0 o superior instalado.

Windows CardSpace, Tipos de Tarjetas

Windows CardSpace le ayuda a controlar su información personal. Puede decidir cuándo y con quién desea compartir esa información. Windows CardSpace admite dos tipos de tarjetas:

Tarjetas Personales:

Son creadas por los propios usuarios. La información personal que especifica en una tarjeta se almacena en el equipo. Para mantenerla segura, la información se cifra. La información almacenada incluye datos personales, como su nombre, direcciones, números de teléfono, fecha de nacimiento y sexo. Entre la información adicional de la tarjeta se incluyen datos como el nombre, la imagen y la fecha de creación de la tarjeta, así como un historial de los sitios en los que se ha usado esa tarjeta.

Tarjetas Administradas:

Son creadas por los proveedores de tarjetas administradas en nombre de los usuarios. La información personal que representa una tarjeta administrada es mantenida por el proveedor de tarjetas administradas que la emite. Dicho proveedor de tarjetas administradas almacena la información en su sitio. Parte de la información de la tarjeta administrada se almacena en el equipo. En esta información se incluye el nombre de la tarjeta, la fecha en que se instaló, la fecha de caducidad y un historial de los sitios en los que se usó esta tarjeta.

Al visitar un sitio web que acepta tarjetas de información, éste indica qué tipo de tarjetas puede aceptar. La experiencia como usuario de Windows CardSpace le indicará qué tarjetas de la colección cumplen los requisitos del sitio. Antes de enviar una tarjeta a un sitio, puede inspeccionarla para ver qué información personal se enviará. También es conveniente que examine la declaración de privacidad del sitio para conocer cómo utiliza la información personal de los usuarios.

Acá les dejo 2 link útiles:

 

Código de un ejemplo sencillo de CardSpace

En el ejemplo contaremos con 2 páginas, Sample1.html y Login1.aspx

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Sample 1</title>
</head>
<body>
    <form id="form1" method="post" action="login1.aspx">
    <div>
        <button type="submit">Click here to sign in with your Information Card</button>
        <object type="application/x-informationcard" name="xmlToken">
            <param name="tokenType" value="urn:oasis:names:tc:SAML:1.0:assertion" />
            <param name="requiredClaims" value="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" />
        </object>
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#"  Debug="true" ValidateRequest="false"%>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = Request.Params["xmlToken"];
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        The value of the token is:
        <asp:Label ID="Label1" runat="server" Text="Label">
        </asp:Label></div>
    </form>
</body>
</html>

No hay comentarios:

Publicar un comentario