Authentification et autorisation
ASP.NET travaille conjointement avec IIS pour prendre en charge l'authentification de base, Digest et Windows. ASP.NET prend en charge le service d'authentification Microsoft Passport, qui fournit des services liés à une inscription unique avec la prise en charge des services de profil utilisateur. ASP.NET assure également un service robuste pour les applications souhaitant utiliser une authentification basée sur des formulaires. L'authentification basée sur des formulaires utilise des cookies pour authentifier les utilisateurs et permet à l'application d'effectuer sa propre vérification des informations d'authentification.
Il est important de savoir que les services d'authentification ASP.NET sont soumis aux services d'authentification fournis par IIS. Par exemple, pour utiliser l'authentification de base dans une application IIS, vous devez configurer l'utilisation de l'authentification de base pour l'application à l'aide de l'outil Gestionnaire des services Internet.
ASP.NET propose deux types de services d'autorisation :
- vérification par rapport aux ACL ou aux autorisations d'une ressource pour déterminer si le compte d'utilisateur authentifié peut accéder aux ressources ;
-
autorisation d'URL, qui autorise une identité pour certaines parties de l'espace Web.
Pour illustrer la différence, prenons l'exemple d'un scénario dans lequel une application est configurée pour autoriser l'accès anonyme à l'aide du compte IUSR_MYMACHINE. Lorsque la demande d'une page ASP.NET (telle que « /default.aspx ») est autorisée, ce fichier est vérifié par rapport aux ACL (par exemple, « c:\inetpub\wwwroot\default.aspx ») pour déterminer si le compte IUSR_MYMACHINE a l'autorisation de lire le fichier. Si c'est le cas, l'accès est autorisé. L'autorisation de fichier s'effectue automatiquement.
Pour une autorisation d'URL, l'utilisateur anonyme est vérifié par rapport aux données de configuration spécifiées pour l'application ASP.NET. Si l'accès à l'URL demandée est octroyé, la demande est autorisée. Dans ce cas, ASP.NET détermine si l'utilisateur anonyme peut accéder au fichier /Default.aspx (la vérification s'effectue par rapport à l'URL proprement dite, et non par rapport au fichier auquel l'URL se résout finalement).
Cette distinction peut sembler subtile, mais cela permet aux applications d'utiliser des schémas d'authentification tels que l'authentification basée sur des formulaires ou l'authentification Passport, dans laquelle les utilisateurs ne correspondent pas à un ordinateur ni à un compte de domaine. Cela active également les autorisations par rapport à des ressources virtuelles pour lesquelles il n'existe aucun fichier physique sous-jacent. Par exemple, une application peut choisir de mapper toutes les demandes de fichiers portant l'extension .stk à un gestionnaire qui distribue les cours des actions en fonction des variables présentes dans la chaîne de requête. Dans ce cas, il n'existe aucun fichier .stk physique par rapport auquel effectuer les vérifications ACL. Par conséquent, l'autorisation d'URL est utilisée pour contrôler l'accès à la ressource virtuelle.
L'autorisation de fichier s'exécute toujours par rapport au compte authentifié fourni par IIS. Si un accès anonyme est autorisé, il s'agit du compte anonyme configuré. Sinon, un compte NT est utilisé. Ce dernier fonctionne exactement de la même manière que ASP.
Les fichiers ACL sont définis en fonction d'un fichier ou d'un répertoire donné sous l'onglet Sécurité de la page de propriétés à partir de l'Explorateur ou de la fenêtre du navigateur Internet Explorer. L'autorisation d'URL est configurée en tant que partie d'une application ASP.NET Framework et décrite de manière exhaustive dans Autorisation des utilisateurs et des rôles.
Pour activer un service d'authentification ASP.NET, vous devez configurer l'élément <authentication> dans le fichier de configuration de l'application. Cet élément peut posséder l'une des valeurs énumérées dans le tableau suivant.
Par exemple, le fichier de configuration suivant active l'authentification basée sur des formulaires (cookies) pour une application :
<configuration>
<system.web>
<authentication mode="Forms"/>
</system.web>
</configuration>
|