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

- Silverlight 3 : Communication et multicast par Kévin Gosse le il y a 8 heures et 15 minutes

- [Perso] Découvertes estivales : Linux (Part I) par Le blog de FremyCompany le il y a 10 heures et 57 minutes

- [Refactoring] ReSharper pour Visual Studio 2010 (Preview) par Thomas Jaskula le 07-04-2009, 00:50

- [Refactoring] Analyser vos exceptions avec ReSharper Exceptional par Thomas Jaskula le 07-03-2009, 23:36

- SharePoint 2007 : patterns & practices SharePoint Guidance par Philippe Sentenac [MVP SharePoint] le 07-03-2009, 09:56

- [Visual Studio 2010] Les tests cases c’est bien, mais je vais devoir tout réécrire ? par Etienne Margraff le 07-03-2009, 09:00

- MVP[Gribouillon].AddYear par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 07-03-2009, 08:45

- Clinique INSIA - Projet de fin d’Etudes (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS) - Part 1 par David REI le 07-02-2009, 23:38

- C’est la crise ? Bah pourquoi cramer du budget pub alors ? par Nix's Blog le 07-02-2009, 15:31

- Soyons MVP ! par TheSaib .NET blog le 07-02-2009, 12:15