Options d'authentification pour les périphériques mobiles
Cette rubrique traite des options d'authentification pour les contrôles et les pages mobiles ASP.NET. Elle considère certaines complexités liées à l'authentification sur les périphériques mobiles et traite des méthodes d'authentification suivantes :
Authentification Windows
Authentification Passport
Authentification par formulaire
Authentification sur les périphériques qui ne prennent pas en charge les cookies
Authentification Windows
Les services IIS (Internet Information Services), conjointement avec ASP.NET, peuvent négocier l'authentification Microsoft Windows avec le client. Dans une application non sécurisée (où l'authentification a la valeur Anonyme), l'identité de l'utilisateur demandeur n'est jamais prise en considération. La demande est exécutée à l'aide d'un compte par défaut défini lors de l'installation des services IIS.
Le Gestionnaire des services Internet vous permet de choisir l'un des modèles d'authentification Windows suivants : l'authentification de base, Digest ou l'authentification intégrée de Windows. Vous pouvez les configurer à l'aide du composant logiciel enfichable Gestionnaire des services Internet pour Microsoft Management Console. Les services IIS négocient les informations d'identification en fonction des méthodes d'authentification prises en charge par le navigateur et de celles activées pour l'application.
Authentification de base
De nombreux périphériques mobiles présents sur le marché actuel prennent seulement en charge l'authentification de base. Il s'agit du mécanisme d'échange des informations d'identification le plus répandu ; cependant, il n'offre aucune sécurité, car il est dépourvu de chiffrement.
Avertissement
L'authentification de base transmet par défaut en texte clair le nom d'utilisateur et les mots de passe. Par conséquent, il est recommandé d'utiliser le protocole HTTPS pour ces informations et d'autres données sensibles.
Authentification Passport
ASP.NET ne prend pas en charge l'utilisation de l'authentification Passport avec des périphériques mobiles.
Authentification par formulaire
L'authentification par formulaire fait partie de l'architecture du .NET Framework, qui vous permet d'authentifier les utilisateurs sans authentification IIS. La séquence générale des événements se déroule comme suit :
Le client demande une page.
Si l'utilisateur n'est pas déjà authentifié, le navigateur est redirigé vers un formulaire de connexion.
Le client fournit les informations d'identification dans un formulaire publié sur le serveur.
Votre application valide les informations d'identification. Si l'utilisateur est validé, votre application écrit un ticket d'authentification par formulaire (cookie) au client et le redirige vers la page initialement demandée.
Pour les demandes suivantes, le cookie d'authentification est vérifié et, s'il est valide, la page demandée est directement prise en charge.
L'étape 4 pose problème pour certains périphériques qui ne prennent pas en charge les cookies. La méthode RedirectFromLoginPage écrit les informations d'authentification dans la chaîne de requête. Pour éviter que l'utilisateur ne soit redirigé vers la page d'ouverture de session à chaque demande, les informations d'authentification peuvent être présentées dans chaque demande comme faisant partie de la chaîne de requête. ASP.NET fournit une méthode permettant de transporter les données de ce type dans la chaîne de requête pour les URL relatives.
Pour obtenir un exemple d'authentification par formulaire, consultez la vue d'ensemble de la classe MobileFormsAuthentication.
Avertissement
L'authentification par formulaire envoie le nom d'utilisateur et le mot de passe en texte clair par défaut. Par conséquent, il est recommandé d'utiliser le protocole HTTPS pour ces informations et d'autres données sensibles, ainsi que de définir l'attribut requiresSSL de l'élément <forms> dans le fichier Web.config. Si un périphérique ne prend pas en charge SSL directement ou via la passerelle et qu'il essaie d'accéder à une page nécessitant SSL, l'utilisateur voit s'afficher un message d'erreur.
Authentification sur les périphériques qui ne prennent pas en charge les cookies
Les modèles d'authentification des navigateurs ont généralement recours aux cookies pour effectuer le suivi de l'authentification utilisateur. De nombreux périphériques mobiles ne prennent pas en charge les cookies et sont par conséquent incapables d'effectuer une authentification par ce biais.
La mise à disposition de l'authentification de base pour le plus large éventail possible de périphériques représente un avantage important pour le développeur qui cible les périphériques mobiles.
L'authentification sans cookies nécessite l'accès à un ticket d'authentification situé à un autre emplacement. Dans l'authentification par formulaire, si le cookie est absent, le module d'authentification ASP.NET le recherche dans la chaîne de requête. L'implémentation de ce procédé passe par l'inclusion de l'ID de session dans la chaîne de requête. Cela nécessite la réécriture de tous les liens d'une page, afin d'inclure le ticket d'authentification basé de manière conditionnelle sur les facteurs suivants :
L'application est-elle configurée pour la persistance des données sans cookies ? La réponse à cette question est déterminée par la définition de la propriété CookielessDataDictionary de l'interface IPageAdapter.
Le périphérique nécessite-t-il une authentification sans cookies ?
Notes
Vous ne pouvez pas configurer un périphérique individuel pour l'authentification sans cookies.
L'attribut CookielessDataDictionaryType de l'élément <mobileControls> doit être défini pour permettre à l'authentification de fonctionner correctement sur les périphériques qui ne gèrent pas les cookies, ainsi que sur les périphériques où l'attribut SupportsCookieWithRedirect a la valeur false. Par défaut, l'attribut CookielessDataDictionaryType a la valeur CookielessData dans le fichier Machine.config. Pour substituer ce comportement pour une seule application, vous devez affecter une chaîne vide ("") à l'attribut CookielessDataDictionaryType.
N'oubliez pas que certains périphériques et navigateurs nécessitent actuellement des URL qualifiées complètes en réponse à une redirection HTTP. Affectez à l'attribut UseFullyQualifiedRedirectUrl la valeur true dans l'élément <system.web> du fichier Machine.config ou du fichier Web.config (au niveau de l'application). Pour plus d'informations, consultez Redirection vers une page Web mobile ASP.NET.
Pour plus de recommandations relatives à la sécurité, consultez Sécurisation des applications et Sécurité des applications Web ASP.NET.
Voir aussi
Référence
Concepts
Conception de pages Web Forms mobiles sécurisées
Sécurisation des applications