Bewise

Nous développons... votre avance

Authentification Passport .NET en ASP .NET

SLF
SWA
10/06/2002 - Julien Carnelos
Télécharger la version Word

1 Installation du Service Passport

L’utilisation de Passport en développement implique plusieurs étapes de configuration :

  • Installer le Passport SDK sur le serveur d’applications
  • Créer une nouvelle application sur le service de Microsoft gérant les applications Passport
  • Posséder un compte Passport en environnement de développement

Pour plus d’informations sur la technologie en elle-même, vous pouvez consulter la documentation technique de Microsoft disponible sur :

http://www.microsoft.com/myservices/passport/passport.asp

1.1 Installation du service Passport SDK

Le SDK Passport est disponible à l’adresse suivante :

http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/885/msdncompositedoc.xml

Après son installation, vous disposez du « Passport Administration Utility » qui vous permettra de configurer votre serveur pour qu’il soit reconnu par les serveurs Passport de Microsoft.

1.2 Création de l’application Passport

Pour cela, il suffit d’aller sur le « Services Manager » :

https://www.netmyservicesmanager.com/wizard/

Ensuite, il suffit de créer une nouvelle application qui correspondra à notre application en développement.

Si l’application développée se situe sur un intranet local, il faudra utiliser le nom de la machine pour tous les champs où le nom du serveur est demandé. En effet, ce nom ne correspond pas à l’url vu depuis Internet mais à l’url que l’utilisateur voit dans barre d’adresse. Donc aucune inquiétude si votre serveur n’est pas visible depuis Internet.

Une fois l’application enregistrée, vous pourrez télécharger la « Partner Key », l’exécuter sur votre serveur d’application et enfin configurer l’administration utility afin de remplir le champ du Site ID avec celui donné sur le services manager.

Le serveur est alors prêt à utiliser Passport en environnement de développement.

1.3 Création d’un compte sur PassportTest

La dernière étape consiste en la création d’un compte passport de test. Pour cela, rendez vous à l’adresse : http://current-register.passporttest.com/default.asp

Maintenant vous pouvez tester votre serveur avec l’application de test fournie : Http://nom_machine/PassportTest/default.asp

Attention, sous Windows XP, Passport étant intégré dans le système, votre authentification passera suivant les paramètres de la base de registres qui indiquera donc forcément les serveurs de Production. L’unique solution pour le moment est de modifier la base de registres afin d’utiliser les serveurs de développement (voir le SDK).

Normalement, vous devriez être identifié sous Passport et voir les informations disponibles sur votre compte Passport.

2 Passport sous .NET

Depuis l’avènement du Framework .NET, un grand travail a été effectué sur l’harmonisation des différentes procédures d’identification de l’utilisateur. Cela se traduit par une interface commune pour toutes les identifications possibles. Et la récupération de l’identification connecté par un simple « User.Identity ».

2.1 Page demandant obligatoirement d’être identifié

Dans le Web.config, configurez l’utilisation de Passport ainsi que l’interdiction de voir l’application pour toute personne n’étant pas authentifiée :

<authentication mode="Passport" /> <authorization> <deny users="?" /> </authorization>

Ecrire le code de la page de test en aspx :

<html> <head> <title>Article Passport</title> </head> <body> <% Response.Write("Votre identifiant passport est : " & _ User.Identity.Name ) %> </body> </html>

Cela suffit à contrôler l’authentification de la personne. Le « User.Identity.Name » renverra le PUID de l’utilisateur connecté. Le PUID correspond à l’identifiant unique de l’utilisateur Passport. Il pourra ainsi servir, d’identifiant dans une base de données clients si l’on veut enrichir les données relatives à un utilisateur. Un utilisateur Passport, choisit les informations qu’il partage, et son identifiant est l’unique valeur que l’utilisateur ne peut cacher. Il est donc important de prévoir un système dans lequel seul le PUID de l’utilisateur est accessible sur son profil.

Dans le cas où l’utilisateur a partagé d’avantages d’informations, il est possible de les atteindre depuis l’objet identité :

Pour cela, il est nécessaire de transtyper l’identité de l’utilisateur en identité de type Passport. Ensuite, on accédera à des champs supplémentaires comprenant ces informations :

<%@ Page Language="vb" %> <html> <head> <title>Article Passport</title> </head> <body> <% Dim MyPassportIdentite as System.Web.Security.PassportIdentity = CType(User.Identity, System.Web.Security.PassportIdentity) if MyPassportIdentite.IsAuthenticated then Response.Write( "<h2> Vous etes authentifie </h2>" ) Response.Write( "<b>Authentification type :</b>" & MyPassportIdentite.AuthenticationType & "<br>" ) Response.Write( "<b>PUID :</b>" & MyPassportIdentite.HexPUID & "<br>" ) Response.Write( "<b>Ticket Age :</b>" & MyPassportIdentite.TicketAge & "<br>" ) Response.Write( "<b>Time Since SignIn :</b>" & MyPassportIdentite.TimeSinceSignIn & "<br>" ) end if %> </body> </html>

2.2 Identification en ligne

Dans ce cas, nous utiliserons le bouton Passport « Connexion »

La fonction à utiliser est la suivante :

Overloads Public Function LogoTag( _ ByVal strReturnUrl As String, _ ByVal iTimeWindow As Integer, _ ByVal fForceLogin As Boolean, _ ByVal strCoBrandedArgs As String, _ ByVal iLangID As Integer, _ ByVal fSecure As Boolean, _ ByVal strNameSpace As String, _ ByVal iKPP As Integer, _ ByVal bUseSecureAuth As Boolean _ ) As String

Les paramètres à fournir sont les suivants :

  • strReturnUrl : URL de retour de la fonction de connexion (sur le serveur Passport de Microsoft), elle doit être comprise dans le domaine donné dans le service manager sinon l’authentification ne fonctionnera pas
  • iTimeWindow : intervalle de temps durant lequel l’authentification sera effective
  • fForceLogin : indique le iTimeWindow doit être pris en compte
  • strCoBrandedArgs : champ ajouté à l’url de retour (totalement facultatif)
  • iLangID : langage utilise sur le serveur Passport (1036 pour la langue française)
  • fSecure : déclare si la page appelante utilise le cryptage SSL
  • strNameSpace : définit le domaine ou sera crée le Passport (facultatif)
  • iKPP : concerne le règlement COPPA (US seulement)
  • bUseSecureAuth : Indique si l’interface présentée doit être servie en HTTPS depuis le domaine Passport

Cela donne pour notre exemple le code suivant (ne pas oublier de modifier le Web.Config et autoriser la connexion pour tous) :

<authorization> <allow users="*" /> </authorization>

Puis dans notre page Aspx :

<%@ Page Language="vb" %> <html> <head> <title>Article Passport</title> </head> <body> <% Dim MyPassportIdentite as System.Web.Security.PassportIdentity = CType(User.Identity, System.Web.Security.PassportIdentity) if MyPassportIdentite.IsAuthenticated then Response.Write( "<h2> Vous etes authentifie </h2>" ) Response.Write( "<b>Authentification type :</b>" & MyPassportIdentite.AuthenticationType & "<br>" ) Response.Write( "<b>PUID :</b>" & MyPassportIdentite.HexPUID & "<br>" ) Response.Write( "<b>Ticket Age :</b>" & MyPassportIdentite.TicketAge & "<br>" ) Response.Write( "<b>Time Since SignIn :</b>" & MyPassportIdentite.TimeSinceSignIn & "<br>" ) else Response.Write("<h2> Veuillez vous identifier</h2>") MyPassportIdentite.LogoTag( "", 3600, False, "", 1036, false,"", 0, False ) end if %> </body> </html>

3 Conclusion

L’implémentation de l’authentification Passport sur le Framework .NET a permis de simplifier grandement sa mise en œuvre. En effet, 3 lignes de code suffisent pour mettre en application son principe. Cela permet ainsi d’accentuer l’effort de développement plus sur la conception de l’application Web et moins sur les techniques. La mise en production d’un site utilisant Passport doit toutefois accepter le fait d’être dépendant des serveurs Passport et surtout le site doit utiliser cette authentification de façon intensive de sorte que les frais d’utilisation couvrent les économies de développement d’une solution propriétaire.

> Tous les articles

Commentaires

aucun commentaire
Page 1/1
   
Connexion
  • Accueil
  • Plan du site
  • Contact
Bewise TV, Blog technique, Webcasts...

Votre carrière et nous

  • Nos offres
  • Votre candidature
Ignorer les liens de navigation > Accueil > Nos Métiers > Solutions Web Avancées > Détail Article
Ignorer les liens de navigation
Nous
Nos Métiers
Vous Former
Nos Evénements
Nos Références
Nos Activités
Nos Certifications
Nos Chiffres
Le Groupe
Nos Partenaires
On Parle de Nous
Votre Carrière et Nous
Nous Contacter
Défiler vers le haut
Défiler vers le bas
Administration, Système et Communication
Architecture, Méthodes, Industrialisation
Décisionnel et Gestion des Données
Nouvelles Interfaces Utilisateurs
Portail et Travail Collaboratif
Solutions Langages et Framework
Solutions Web Avancées
Défiler vers le haut
Défiler vers le bas
Nos cours
Le Planning
Offres promotionnelles
Défiler vers le haut
Défiler vers le bas
TechDays'12
TechLunch
Windows 8 Camp
Défiler vers le haut
Défiler vers le bas
  • Infos légales
  • Lettre du Regional Director
  • Revue de presse