Information : L'aide de sécuriser l'authentification par formulaire à l'aide de Secure Sockets Layer (SSL)

Traductions disponibles Traductions disponibles
Numéro d'article: 813829 - Voir les produits auxquels s'applique cet article
Cet article fait référence à l'espace de noms bibliothèque de classes Microsoft .NET Framework suivant :
  • System.Web.Security
Agrandir tout | Réduire tout

Sommaire

Résumé

Par défaut, le cookie qui contient le ticket d'authentification formulaires n'est pas sécurisé lorsque vous utilisez l'authentification par formulaires dans une application Web Microsoft ASP.NET. Cet article décrit comment à l'authentification par formulaires sécurisé en utilisant SSL (Secure Sockets Layer). Cet article décrit également les options d'implémentation supplémentaires et autres méthodes permettant de formulaires sécurisée d'authentification.

Plus d'informations

L'authentification basée sur les formulaires est un service d'authentification ASP.NET qui permet aux applications de fournir leur propre interface d'ouverture de session et effectuer de vérification des informations d'identification personnalisées. Avec l'authentification de formulaires, ASP.NET authentifie les utilisateurs et puis redirige les utilisateurs non authentifiés vers la page d'ouverture de session qui est spécifiée par l'attribut loginUrl de le <forms> élément dans le fichier Web.config. Lorsque vous fournissez des informations d'identification via l'écran d'ouverture de session, l'application authentifie la demande, puis le système délivre une classe FormsAuthenticationTicket sous la forme d'un cookie. La classe FormsAuthenticationTicket est passée comme un cookie en réponse à suivant Web demandes du client authentifié.

Bien que l'authentification de formulaires offre un moyen souple d'authentification, vous devez réfléchir certains problèmes importants lorsque vous permet de protéger une application ASP.NET. Vous devez protéger les informations d'identification initiale en utilisant SSL, car les informations d'identification sont envoyées au serveur en texte brut. Vous devez également vous assurer que vous protéger le cookie qui contient le ticket d'authentification formulaires. Pour ce faire, utilisez SSL sur toutes les pages pour protéger le ticket. Sinon, vous pouvez crypter le ticket d'authentification formulaires en définissant l'attribut protection de la <forms> classe élément pour all ou Encrypt dans le fichier Web.config et utiliser la méthode Encrypt de FormsAuthentication pour crypter le ticket. Pour plus d'informations sur la méthode Encrypt de la classe FormsAuthentication , consultez le « "section de cet article.

Avantages de l'authentification par formulaires

  • Prend en charge authentification de formulaires par rapport à une personnalisées données magasin, comme une base de données Microsoft SQL Server ou Active Directory services d'annuaire. Pour plus d'informations, consultez la section "REFERENCES" de cet article.
  • L'authentification par formulaires prend en charge l'autorisation par rôle avec recherche de rôle d'un magasin de données.
  • L'authentification par formulaires est facilement intégrée avec le Web interface utilisateur. Pour plus d'informations, consultez la section "REFERENCES" de cet article.
  • ASP.NET fournit une grande partie de l'infrastructure. Relativement peu de code est requis en comparaison des versions 3.0 et antérieures de Microsoft Active Server Pages
  • Authentification par formulaire ASP.NET ne requiert pas Microsoft Internet Explorer. L'authentification par formulaires prend en charge une large plage de Web navigateurs clients.

Comment faire pour créer aide Forms Authentication sécurisée

  • Utiliser SSL pour toutes les pages.
  • Utilisez la méthode Encrypt de la classe FormsAuthentication .

Utiliser SSL pour toutes les pages

Vous assurer pour que le cookie d'authentification demeurent confidentielles tout au long une session de navigateur client en suivant le cryptage SSL pour sécuriser l'accès sécurisé à toutes les pages. En utilisant le cryptage SSL sur l'application, vous empêcher quiconque de compromettre le cookie d'authentification et de transmettre d'autres informations importantes.

Définissez la valeur de la propriété requireSSL à true dans le fichier Web.config. Cela place SSL en place lorsque le cookie est renvoyé au navigateur. Si vous ne définissez pas la valeur de requireSSL à true , le formulaire lève une exception ou n'authentifie pas avec le cookie.

Lorsque requireSSL a la valeur true , la connexion cryptée protège les informations d'identification de l'utilisateur et ASP.NET définit la propriété HttpCookie.Secure du cookie d'authentification. Le navigateur conforme ne retourne pas le cookie à moins que la connexion utilise SSL. L'exemple suivant montre comment faire dans le fichier Web.config de votre application :
 <configuration>
 <system.web>
   <authentication mode="Forms">
     <forms name=".ASPXAUTH"
       loginUrl="login.aspx" 
       protection="All"
       timeout="20"
       requireSSL="true">
     </forms>
   </authentication > 
   <authorization>
     <deny users="?" />
   </authorization>
 </system.web>
</configuration>
l'exemple suivant prend action si le cookie est défini pour transmettre en toute sécurité :

Code Visual c# .NET
 string cookieName = FormsAuthentication.FormsCookieName.ToString(); 
 HttpCookie MyCookie = Context.Request.Cookies[cookieName];

 if (MyCookie.Secure)
 {
      Response.Write("The cookie is secure with SSL.");
      // Add other required code here.
 } 

Code Visual Basic .NET
   Dim cookieName As String = FormsAuthentication.FormsCookieName.ToString
   Dim MyCookie As HttpCookie = Context.Request.Cookies(cookieName)
   If MyCookie.Secure Then
      Response.Write("The cookie is secure with SSL.")
      ' Add other required code here.
   End If

Utiliser le cryptage de la méthode de la classe FormsAuthentication

Si vous utilisez uniquement SSL sur la page Web d'ouverture de session initiale pour crypter les informations d'identification sont transmises pour l'authentification, assurez-vous que le ticket d'authentification formulaires se trouve dans un cookie est protégé. Les tickets de l'authentification de formulaires doivent être protégés car le cookie est passé entre le client et le serveur à chaque demande Web suivant. Pour crypter le ticket d'authentification formulaires, configurez l'attribut protection de la <forms> classe élément et utilisez la méthode Encrypt de FormsAuthentication pour crypter le ticket.
<authentication mode="Forms">
  <forms name="MyAppFormsAuth"
       loginUrl="login.aspx"
       protection="All"
       timeout="20" 
       path="/" >
  </forms>
</authentication> 
parce que l'attribut protection a la valeur all , lorsque l'application appelle la méthode FormsAuthentication.Encrypt , le ticket doit être validé et être crypté.

Appelez la méthode Encrypt lorsque vous créez les formulaires de ticket d'authentification. En général, vous créez le ticket dans le Gestionnaire d'événements connexion de l'application.

Code Visual c# .NET
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
Code Visual Basic .NET
Dim encryptedTicket As String = FormsAuthentication.Encrypt(authTicket)

Références

Pour l'authentification ASP.NET et les formulaires d'informations, visitez les sites Web Microsoft suivant :
L'authentification dans ASP.NET : .NET Security Guidance
http://msdn2.microsoft.com/en-us/library/ms978378.aspx
Fournisseur d'authentification formulaires
http://msdn2.microsoft.com/en-us/library/9wff0kyh(vs.71).aspx
Pour plus d'informations sur l'utilisation de SSL pour sécuriser l'authentification par formulaires, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
306590Information : ASP.NET Security Overview
315588Comment faire : Sécuriser une application ASP.NET à l'aide de certificats côté client
313116PRB : Forms Authentication Requests Are pas directed à loginUrl Page
324069Comment faire : Configurer un service HTTPS dans IIS
326340AD - comment faire : authentification sur Active Directory en utilisant l'authentification par formulaires et de Visual Basic .NET
301240SQL - comment faire : implémenter l'authentification basée sur les formulaires dans votre application ASP.NET à l'aide de Visual c# .NET
308157SQL - comment faire : implémenter l'authentification basée sur les formulaires dans votre application ASP.NET à l'aide de Visual Basic .NET
311495HOW TO : Implement Role-Based Security with Forms-Based Authentication in vos ASP.NET Application by Using Visual c# .NET
306238HOW TO : Implement Role-Based Security with Forms-Based Authentication in Your ASP.NET Application à l'aide de Visual Basic .NET
312906Comment : Créer des clés à l'aide Visual c# .NET for Use in Forms Authentication
313091Comment : Créer des clés à l'aide Visual Basic .NET for Use in Forms Authentication

Propriétés

Numéro d'article: 813829 - Dernière mise à jour: jeudi 19 avril 2007 - Version: 2.5
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.1
Mots-clés : 
kbmt kbcookie kbwebforms kbauthentication kbsecurity kbconfig kbinfo KB813829 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 813829
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com