Compartir a través de


Resumen de tecnologías para listas ACL

En este tema se resume la información relativa a la API administrada para las listas de control de acceso discrecional (DACL), las listas de control de acceso al sistema (SACL) y las entradas del control de acceso (ACE). Puede utilizar las clases en el espacio de nombres System.Security.AccessControl para tener acceso mediante programación a DACL, SACL y ACEs de varios tipos de recursos protegidos en la versión 2.0 o posterior de .NET Framework.

La API administrada de ACL hace el trabajo con ACL más sencillo que la implementación no administrada al proporcionar varias clases que cuidan muchos detalles. Por ejemplo, no es posible crear DACL null en la implementación administrada y ya no tendrá que preocuparse sobre la creación accidental de un DACL no seguro debido a una ordenación incorrecta de los ACE.

Keywords

Lista de control de acceso (ACL), lista de control de acceso discrecional (DACL), lista de control de acceso al sistema (SACL), entrada del control de acceso (ACE), ACE de auditoría

Espacios de nombres

System.Security.AccessControl

Tecnologías relacionadas

Seguridad en .NET Framework

Segundo plano

Una lista de control de acceso discrecional (DACL), que a veces aparece abreviado como ACL, es un mecanismo utilizado por Microsoft Windows NT y posteriores para proteger recursos como archivos y carpetas. Los DACL contienen varias entradas de control de acceso (ACE) que asocian una entidad de seguridad (por lo general una cuenta de usuario o un grupo de cuentas) con una regla que rige el uso del recurso. Con DACL y ACE puede permitir o denegar los derechos a recursos basados en permisos que puede asociar a cuentas de usuario. Por ejemplo, puede crear un ACE y aplicarlo al DACL o a un archivo para prohibir a todo el mundo, excepto al administrador, que lea el archivo.

Una lista de control de acceso al sistema (SACL), que a veces se hace referencia como un ACE de auditoría, es un mecanismo que controla los mensajes de auditoría asociados con un recurso. De igual forma que los DACL, los SACL contienen ACE que definen las reglas de auditoría para un recurso determinado. Los ACE de auditoría le permite registrar intentos correctos o con error para tener acceso a un recurso, pero difieren de los ACE de acceso porque no rigen qué cuentas pueden usar un recurso. Por ejemplo, puede crear un ACE y aplicarlo al SACL de un archivo para registrar todos los intentos en los que se ha logrado abrir el archivo.

Un vistazo a las clases ACL

En la tabla siguiente se muestran las clases principales que se pueden utilizar para crear y modificar con facilidad ACL para las diversas áreas de tecnología. No es una lista exhaustiva del espacio de nombres System.Security.AccessControl, sino más bien una lista de las clases primarias que se deberían utilizar para trabajar con ACL.

Área de tecnología

Clases

Claves criptográficas

CryptoKeySecurity

CryptoKeyAccessRule

CryptoKeyAuditRule

Directorios

DirectorySecurity

FileSystemAccessRule

FileSystemAuditRule

Identificadores de espera de evento

EventWaitHandleSecurity

EventWaitHandleAccessRule

EventWaitHandleAuditRule

Files (Archivos)

FileSecurity

FileSystemAccessRule

FileSystemAuditRule

Mutexes

MutexSecurity

MutexAccessRule

MutexAuditRule

Claves del Registro

RegistrySecurity

RegistryAccessRule

RegistryAuditRule

Semáforos

SemaphoreSecurity

SemaphoreAccessRule

SemaphoreAuditRule

Para consultar la información de ACL existente para un recurso o para aplicar información de ACL modificada al recurso, debe utilizar uno de varios métodos para proporcionar acceso a las ACL de un recurso existente. Las clases de la tabla anterior proporcionan los métodos para construir y editar ACL pero no proporcionan maneras de consultar o aplicar ACL.

Cada recurso tiene métodos asociados que aplican ACL durante la creación de recursos (normalmente una sobrecarga de constructor), que recuperan las ACL para el recurso existente, y que aplican las ACL a un recurso existente.

En la tabla siguiente se muestran los métodos utilizados para obtener y establecer ACL para cada área de tecnología. Estos métodos se buscan en varios espacios de nombres fuera del espacio de nombres System.Security.AccessControl y forman parte de las clases de alto nivel que representan un recurso determinado. Por ejemplo, para consultar las ACL para un directorio determinado, debe utilizar el método Directory.GetAccessControl para obtener el objeto DirectorySecurity que encapsula las DACL y las SACL para el directorio. Observe que algunos recursos, como archivos y directorios, tienen varios métodos equivalentes en clases diferentes que proporcionan el acceso a ACL.

Área de tecnología

Métodos para obtener y establecer ACL

Claves criptográficas

CspParameters.CryptoKeySecurity

CspParameters.CspParameters

CspParameters.CspParameters

CspKeyContainerInfo.CryptoKeySecurity

Directorios

Directory.GetAccessControl

Directory.SetAccessControl

DirectoryInfo.GetAccessControl

DirectoryInfo.SetAccessControl

DirectoryInfo.Create

Identificadores de espera de evento

EventWaitHandle.GetAccessControl

EventWaitHandle.SetAccessControl

EventWaitHandle.EventWaitHandle

Files (Archivos)

FileStream.GetAccessControl

FileStream.SetAccessControl

FileStream.FileStream

File.GetAccessControl

File.SetAccessControl

File.Create

FileInfo.GetAccessControl

FileInfo.SetAccessControl

Mutexes

Mutex.GetAccessControl

Mutex.SetAccessControl

Mutex.Mutex

Claves del Registro

RegistryKey.GetAccessControl

RegistryKey.SetAccessControl

RegistryKey.CreateSubKey

Semáforos

Semaphore.GetAccessControl

Semaphore.SetAccessControl

Semaphore.Semaphore

Vea también

Otros recursos

Información general sobre la tecnología ACL

Seguridad en .NET Framework