Administración con atributos de grupo de código
Importante |
---|
En .NET Framework versión 4, Common Language Runtime (CLR) está dejando de proporcionar directivas de seguridad para los equipos.Microsoft recomienda usar las directivas de restricción de software de Windows en lugar de la directiva de seguridad de CLR.La información de este tema se aplica a .NET Framework 3.5 y versiones anteriores; no se aplica a la versión 4 ni a versiones posteriores.Para obtener más información sobre estos y otros cambios, vea Cambios de seguridad en .NET Framework 4. |
Imagine que es un administrador de empresa responsable de la administración de la directiva de seguridad para una serie de estaciones de trabajo. En un dominio de empresa normal, el administrador de la red tiene privilegios administrativos en todos los servidores y clientes. Sin embargo, no es raro que cada uno de los usuarios tenga privilegios administrativos en una sola estación de trabajo. Como consecuencia, el administrador de la red tiene privilegios administrativos en el nivel de la directiva de empresa y el administrador de la estación de trabajo los tiene en el nivel de la directiva de equipo. En esta situación, el administrador de la red parece tener un mayor control sobre la directiva, por que la directiva de empresa se evalúa antes y la directiva de equipo no puede hacer menos restrictivas las decisiones de seguridad que toma el administrador del nivel de empresa. Con todo, el administrador del nivel de equipo puede endurecer la seguridad, con la posibilidad de interrumpir aplicaciones de confianza que, de otra manera, se hubieran podido ejecutar. Por ello, los niveles de directiva superiores pueden decidir que no se evalúen las decisiones de directiva de niveles inferiores.
Esto se puede hacer aplicando el atributo LevelFinal o Exclusive a un grupo de código mediante una de las herramientas de directiva de seguridad.
Atributo LevelFinal
Cuando se aplica a un grupo de código, el atributo LevelFinal impide que se evalúen todos los niveles de directiva por debajo del actual. Por ejemplo, si se aplica el atributo LevelFinal al grupo de código de la intranet local en el nivel de empresa, no se evaluarán los grupos de código en el nivel de equipo incluso si un administrador en el nivel de equipo ha realizado cambios. Si se aplica el atributo LevelFinal, se garantiza que un ensamblado asociado a un grupo de código marcado con este atributo no recibirá nunca menos permisos como consecuencia de las decisiones tomadas por un administrador de un nivel de directiva inferior. Para obtener información sobre cómo establecer el atributo LevelFinal en un grupo de código predeterminado o personalizado, vea la herramienta Configuración de .NET Framework (Mscorcfg.msc) o la herramienta Directiva de seguridad de acceso del código (Caspol.exe).
Atributo Exclusive
Cuando se aplica a un grupo de código, el atributo Exclusive impide que se tengan en cuenta otros grupos de código del mismo nivel de directiva cuando el runtime calcula los permisos de los ensamblados del grupo de código exclusivo. Sin embargo, los niveles de directiva por encima y por debajo del actual se pueden seguir evaluando. Este atributo permite que un grupo de código específico tome la decisión para el nivel de directiva actual en lo que se refiere a qué permisos se conceden a los ensamblados que coincidan con dicho grupo. Esto resulta útil cuando se desea conceder un conjunto de permisos concreto a ensamblados específicos, sin permitir los permisos de otros grupos de código coincidentes del mismo nivel de directiva.
Tenga en cuenta que un ensamblado no se puede ejecutar si pertenece a más de un grupo de código marcado como exclusivo. Por ello, el atributo Exclusive debe usarse con precaución a la hora de administrar directivas de seguridad personalizadas. Para obtener información sobre cómo establecer el atributo Exclusive en un grupo de código integrado o personalizado, vea la herramienta Configuración de .NET Framework (Mscorcfg.msc) o la herramienta Directiva de seguridad de acceso del código (Caspol.exe).