Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source

Fichiers de stratégie et niveaux de confiance ASP.NET

Les niveaux de confiance des applications ASP.NET sont définis à l'aide de fichiers de stratégie. Les niveaux de confiance sont associés aux fichiers de stratégie à l'aide de l'élément de configuration securityPolicy, qui est valide au niveau de l'ordinateur (machine), de l'application et dans un fichier Web.config d'application. Vous pouvez supprimer ou ajouter des niveaux de confiance personnalisés en ajoutant des entrées dans la section de configuration spécifiant le nom du niveau de confiance et le fichier de stratégie à utiliser. Les fichiers de confiance par défaut sont installés dans le répertoire Config sous le dossier contenant le fichier Aspnet_isapi.dll. Le même emplacement est utilisé pour le fichier de configuration Machine.config et pour les fichiers de stratégie de sécurité du runtime.

Les niveaux de confiance sont Full, High, Medium, Low et Minimal. L'option Full est équivalente à une confiance totale sur l'ordinateur local. L'hôte ASP.NET n'applique pas de stratégie supplémentaire aux applications qui s'exécutent au niveau de confiance totale.

L'exemple suivant illustre la section securityPolicy d'un fichier de configuration qui assure le mappage entre le niveau de confiance totale et un fichier de stratégie.

<system.web>
  <securityPolicy>
    <trustLevel name="Full" policyFile="internal"/>
  </securityPolicy>
</system.web>

Par défaut, dans les domaines d'application de confiance partielle d'ASP.NET, la stratégie de sécurité ne croise pas les stratégies CAS au niveau de l'ordinateur, de l'utilisateur ou de l'entreprise. Les domaines d'application de confiance partielle d'ASP.NET sont homogènes. Les domaines d'application homogènes assignent un jeu d'autorisations commun unique pour exécuter le code utilisateur et simplifier les décisions d'autorités de certification. Pour plus d'informations, consultez Domaines d'application homogènes dans Sécurité d'accès du code dans les applications ASP.NET 4.

Dans un domaine d'application homogène hébergé dans ASP.NET, le code pouvant être chargé est associé à l'un des jeux d'autorisations suivants :

  • Le code s'exécute avec la confiance totale (le code du GAC est toujours exécuté en mode de confiance totale).

  • Le code s'exécute avec le jeu d'autorisations de confiance partielle défini par le paramètre trustLevel actuel.

    RemarqueRemarque

    Ce comportement est différent des applications de confiance partielle dans les versions ASP.NET antérieures à ASP.NET 4.

Par défaut, le niveau de confiance des domaines d'application pour ASP.NET est confiance totale. Le comportement de confiance partielle dans ASP.NET entre en vigueur lorsque l'attribut name de l'élément trustLevel a une valeur autre que Full.

Les fichiers de stratégie qui définissent les jeux d'autorisations de confiance partielle pour High, Medium, Low et Minimal sont tous situés dans le sous-répertoire CONFIG du répertoire d'installation .NET Framework. L'exemple suivant illustre la section securityPolicy d'un fichier de configuration qui mappe des niveaux de confiance à différents fichiers de stratégie.

<system.web>
  <securityPolicy>
    <trustLevel name="High"    policyFile="web_hightrust.config"/>
    <trustLevel name="Medium"  policyFile="web_mediumtrust.config"/>
    <trustLevel name="Low"     policyFile="web_lowtrust.config"/>
    <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
  </securityPolicy>
</system.web>

Les fichiers de stratégie sont nommés selon le modèle suivant :

web_ [trustlevelname] trust.config

Par exemple, le jeu d'autorisations de confiance partielle pour la confiance Medium se trouve dans le fichier nommé web_mediumtrust.config.

RemarqueRemarque

La limite de domaine d'application, maintenant de confiance partielle, explique le changement des autorités de certification le plus commun qui en général requiert la modification du code de confiance totale pour qu'il fonctionne dans ASP.NET 4.

Si vous ne voulez pas que les applications puissent spécifier leur propre niveau de confiance, vous pouvez inclure un élément et définir l'attribut location et affecter à l'attribut allowOverride la valeur false. Vous pouvez effectuer cette opération sur un serveur qui héberge plusieurs applications et doit limiter le niveau de confiance des applications hébergées.

Remarque importanteImportant

Dans le fichier Web.config racine par défaut du serveur, toutes les sections de configuration connexes de confiance partielle se trouvent à l'intérieur d'un élément location dont l'attribut allowOverride a la valeur true. Pour verrouiller l'ordinateur, modifiez la valeur de l'attribut allowOverride avec la valeur false.

Même si les domaines d'application homogènes d'ASP.NET imposent au code un niveau de confiance totale ou au jeu d'autorisations nommé d'ASP.NET un niveau de confiance partielle, vous pouvez influencer la façon dont un jeu d'autorisations est associé à un assembly. Vous pouvez personnaliser la façon dont un jeu d'autorisations est associé à l'exécution du code. Pour plus d'informations sur la façon de personnaliser un jeu d'autorisations, consultez Domaines d'application homogènes dans Sécurité d'accès du code dans les applications ASP.NET 4.

Octroi de la confiance totale ASP.NET aux assemblys

La section fullTrustAssemblies d'ASP.NET 4 vous permet d'établir explicitement une liste des identités d'assembly auxquelles la confiance totale sera toujours accordée. La section de configuration securityPolicy dans le fichier Web.config contient une sous-section de configuration fullTrustAssemblies. La section FullTrustAssembliesSection est une collection standard qui prend en charge les opérations d'ajout, de suppression et d'effacement au cours desquelles vous pouvez spécifier une ou plusieurs identités d'assembly auxquelles la confiance totale sera accordée au moment de l'exécution. L'exemple suivant illustre la configuration de l'assembly de confiance totale ASP.NET dans la section de configuration fullTrustAssemblies.

<system.web>

<securityPolicy>

<fullTrustAssemblies>

<add assemblyName="MyCustomAssembly"

version="1.0.0.0"

publicKey=" public CléSignature "

/>

</fullTrustAssemblies>

</securityPolicy>

</system.web>

Chaque entrée dans l'élément fullTrustAssemblies identifie un assembly par son nom de l'assembly et la version d'assembly, et par une chaîne de 320 caractères qui est la représentation hexadécimale des caractères de la moitié publique de la clé de signature. Notez que l'emplacement de l'assembly n'est pas spécifié dans la définition. Il appartient à l'environnement d'hébergement individuel (tel qu'ASP.NET 4) de rechercher et de charger des assemblys. Si un assembly chargé des correspond aux informations contenues dans l'un des éléments add dans fullTrustAssemblies, le niveau de confiance totale est accordé à l'assembly.

Configuration des assemblys visibles de confiance partielle

Dans le .NET Framework 4, le CLR inclut une variante de l'attribut AllowPartiallyTrustedCallersAttribute (APTCA) également appelé APTCA conditionnel (C-APTCA). L'APTCA conditionnel active des assemblys marqués avec l'attribut APTCA pour conserver les caractéristiques APTCA dans certains environnements hébergés uniquement. Pour plus d'informations, consultez la section « APTCA conditionnel » dans Sécurité d'accès du code dans les applications ASP.NET 4.

Les environnements d'hôte peuvent fournir au CLR une liste d'assemblys d'APTCA conditionnel dont les caractéristiques APTCA doivent être respectées. ASP.NET fournit une liste codée en dur de tous les assemblys ASP.NET de CLR. Si ASP.NET ne le fait pas, les applications Web échouent immédiatement lorsque la première ligne de code interne ASP.NET est exécutée dans un domaine d'application de confiance partielle. Comme il est impossible pour ASP.NET 4 de savoir en avance tous les assemblys d'APTCA conditionnel possibles, ASP.NET 4 inclut une section de configuration où les assemblys d'APTCA conditionnel peuvent être ajoutés.

La section de configuration securityPolicy dans le fichier Web.config contient une sous-section de configuration nommée partialTrustVisibleAssemblies. C'est une collection standard qui prend en charge les opérations d'ajout, de suppression et d'effacement, au cours desquelles vous pouvez spécifier une ou plusieurs identités d'assembly qui doivent être traitées comme APTCA (si elles sont également marquées pour l'APTCA conditionnel).

L'exemple suivant illustre la configuration de l'assembly de confiance partielle ASP.NET dans la section de configuration partialTrustVisibleAssemblies.

<system.web>
  <securityPolicy>
    <partialTrustVisibleAssemblies>

      <add assemblyName="MyCustomAssembly"
           publicKey="publicSigningKey"
      />

    </partialTrustVisibleAssemblies>
  </securityPolicy>
</system.web>

Chaque entrée dans la section partialTrustVisibleAssemblies identifie un assembly par nom de l'assembly. Chaque entrée est également identifiée par une chaîne de 320 caractères qui est la représentation hexadécimale des caractères de la moitié publique de la clé de signature utilisée sur l'assembly auquel est attribué l'APTCA conditionnel. Vous n'avez pas à spécifier un attribut de version. Seul le nom de l'assembly et le jeton de la clé publique sont requis par le CLR.

Pour plus d'informations, consultez la section « Personnalisation de la liste ASP.NET 4 d'APTCA conditionnel » dans Sécurité d'accès du code dans les applications ASP.NET 4.

Vous pouvez modifier les fichiers de stratégie ou en créer de nouveaux à l'aide des jeux d'autorisations personnalisés. Par exemple, vous pouvez copier le contenu du fichier Web_hightrust.config et assigner l'autorisation pour établir des connexions OLEDB en ajoutant d'abord la classe OleDbPermission à la section SecurityClasses du fichier de stratégie, comme le montre l'exemple suivant :

<SecurityClass Name="OleDbPermission" 
    Description="System.Data.OleDb.OleDbPermission, System.Data, Version=4.0.0.0, 
    Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Vous pouvez ensuite spécifier les paramètres du type OleDbPermission spécifié, y compris les restrictions pour les chaînes de connexion OLEDB. Ensuite, vous pouvez spécifier les jeux d'autorisations qui incluent la classe de sécurité OleDbPermission. Pour ce faire, ajoutez un élément IPermission à l'élément PermissionSet dont l'attribut de nom a la valeur ASP.Net dans le fichier de stratégie de confiance, comme l'illustre l'exemple suivant :

<PermissionSet
    class="NamedPermissionSet"
    version="1"
    Name="ASP.Net">
  <IPermission
      class="OleDbPermission"
      version="1"
      Unrestricted="true" />
</PermissionSet>

Certaines autorisations, telles que l'autorisation OleDbPermission, permettent de spécifier des restrictions supplémentaires qui restreignent l'accès accordé ou refusé. Par exemple, l'autorisation OleDbPermission vous permet d'accorder un accès pour établir des connexions à l'aide du fournisseur de données .NET Framework pour OLEDB, mais avec des restrictions concernant les chaînes de connexion OLEDB autorisées. L'exemple suivant indique comment autoriser uniquement des connexions OLEDB à la base de données Access nommée catalog.mdb.

<IPermission class="OleDbPermission" version="1">
    <add ConnectionString=
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\access_data\catalog.mdb""
        KeyRestrictions=""data source=;user id=;password=;" 
        KeyRestrictionBehavior="AllowOnly"/>
</IPermission>

Vous pouvez enregistrer votre fichier de stratégie de confiance mis à jour et le remplacer par le fichier Web_hightrust.config actuel. Ou alors, vous pouvez créer un fichier de stratégie de confiance et le spécifier comme fichier de stratégie pour le niveau de confiance High ou créer un nouveau niveau de confiance comme l'illustre l'exemple suivant :

<trustLevel name="HighCustom"
    policyFile="web_highcustom.config"/>

Avec cette définition de niveau de confiance, vous pouvez définir la stratégie de confiance partielle pour une application ASP.NET afin qu'elle utilise HighCustom comme l'illustre l'exemple suivant :

<trust level="HighCustom" />

Pour conserver les paramètres par défaut, ASP.NET inclut deux copies de chaque fichier contenant des paramètres de niveau de confiance. Une copie est nommée avec l'extension de nom de fichier .config. Le fichier .config contient les paramètres de chaque niveau de confiance utilisé par le système. La seconde copie porte l'extension de nom de fichier .config .default et contient les paramètres par défaut du niveau de confiance associé. Si les paramètres de niveau de confiance actuels ont été modifiés et que vous voulez restaurer les paramètres par défaut, vous pouvez remplacer le contenu du fichier .config par le contenu du fichier .config.default.

Vous pouvez configurer des applications ASP.NET 4 pour utiliser le comportement d'autorités de certification d'ASP.NET 2.0.

Dans ASP.NET 4, l'élément trust fournit l'attribut legacyCasModel qui a par défaut la valeur false. Si cet attribut a pour valeur true, une application ASP.NET est configurée pour utiliser la majeure partie (mais pas la totalité) du comportement de sécurité d'accès du code ASP.NET des versions antérieures à ASP.NET 4. Pour plus d'informations sur l'utilisation du comportement d'autorités de certification ASP.NET dans les versions antérieures d'ASP.NET 4, consultez Domaines d'application homogènes.

Dans le .NET Framework 4.0, indépendamment du modèle d'autorités de certification qui est appliqué pour une application ASP.NET, le code de confiance partielle n'est pas autorisé à exécuter des assertions de sécurité. Pour plus d'informations, consultez la section « Configuration des applications ASP.NET 4 pour utiliser le modèle d'autorités de certification d'ASP.NET 2.0 » dans Sécurité d'accès du code dans les applications ASP.NET 4.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft