Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Azra [Florent Santin]

.Net, X'Net, aucun lien de parenté V2.0

Actualités


  • MSN Alerts
    View Florent Santin's profile on LinkedIn
[Teched 2007] A Developer's Diary on Implementing Windows CardSpace

Dominick Baier - Security Consultant / thinktecture

Encore une session sur un sujet complètement différent: CardSpace. Pas une nouveauté en soit vu que CardSpace fait parti du Framework 3.0 et est disponible depuis Vista, mais j'avoue que l'idée d'avoir un retour d'expérience sur sa mise en place m'a plutôt attiré.

Pourquoi mettre en place CardSpace?

  • Rendre le processus d'authentification plus simple via une simple selection de carte plutôt que par la saisie d'identifiants
  • Minimiser le nombre de login / mot de passes utilisés sur internet en les regroupant dans une ou plusieurs cartes, stockée localement sur le poste client (pas de diffusion du mot de passe donc)
  • Rendre les applications plus sécurisées en empêcher notamment le risque de fishing

Qu'il y'a t'il dans une carte CardSpace:

  • Des données générées dynamiquement:
    • Une clé publique : utilisée pour le chiffrage de la carte
    • PPID - Private Personal Identifier: représente un identifiant de relation carte / site cible
  • Des données saisies par l'utilisateur
    • Pseudo
    • Adresse Email
    • ...
  • Donc pas d'identifiant / mot de passe stockés dans votre application ASP.NET 2.0, uniquement un identifiant unique représentant la carte

Intégration dans ASP.NET 2.0

  • L'objectif est d'ajouter une balise <object> spécifique dans l'HTML généré (type="application/x-informationcard") dans laquelle sont spécifiés les éléments devant être renvoyés à l'application Web.
  • Le navigateur Web utilisé doit ensuite repérer et interpréter cet objet, le compléter avec les informations requises et le renvoyer
  • Pour faciliter cette implémentation, il est possible d'utiliser le contrôle ASP.NET "InfoCardSelector" permettant de spécifier automatiquement au client les données devant être transmises

Les informations de l'utilisateur sont donc stockées dans la carte et transmises à la création (association) du compte utilisateur. Il faut donc faire attention de bien synchroniser les informations stockées sur le site (adresse postale par exemple), a chaque fois que l'utilisateur se connecte avec sa carte.

Exemple de schéma de base de données pour stocker les identifiants:

  • Une table "Users" contenant UserID / FirstName / LastName / EmailAdresse => un utilisateur du site est uniquement
  • Une table de relation 0 to n "information Cards" contenant UniqueID / UserID / IssuerID => un utilisateur peut avoir de 1 a n cartes (une carte pas machine utilisée par exemple, usage perso et pro)

Dans le cas ou un utilisateur perd sa carte, il doit lui être rendu possible de générer un mot de passe pour se connecter de manière classique à son compte pour refaire une association de carte.

Dans tout les cas, pour une utilisation de CardSpace sur un site Web, il est conseillé de garder en parallèle un mode d'authentification classique par formulaire, pour permettre la re-association de carte en cas de perte de celle-ci ou pour le besoin d'association de carte sur une autre machine.

Bon, j'ai largement été rassuré par le niveau de faisabilité d'intégration de CardSpace sur un site ASP.NET 2.0 existant et utilisant déja une authentification classique. Ma première action après le Teched sera donc de me lancer dans une implémentation concrète de CardSpace.

Quelques liens pour aller plus loin:
- Préparer une machine de développement pour CardSpace: http://blog.couzy.com/PermaLink,guid,4092feab-d315-4d00-b19a-7cd52c47aafe.aspx
- Exemple d'implémentation: http://www.netfxfactory.org/blogs/actualites/archive/2007/05/15/windows-cardspace-cartographions-nos-identit-s.aspx

Posted: jeudi 8 novembre 2007 00:31 par azra
Classé sous :
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 17 heures et 55 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le il y a 20 heures et 28 minutes

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39