Contextos de seguridad y Servicios de dominio de Active Directory
Cuando una aplicación se enlaza a un controlador de Dominio de Active Directory (DC), lo hace en el contexto de seguridad de una entidad de seguridad, que puede ser un usuario o una entidad como un equipo o un servicio del sistema. El contexto de seguridad es la cuenta de usuario que el sistema usa para aplicar la seguridad cuando un subproceso intenta acceder a un objeto protegible. Estos datos incluyen el identificador de seguridad de usuario (SID), las pertenencias a grupos y los privilegios.
Un usuario establece un contexto de seguridad mediante la presentación de credenciales para la autenticación. Si las credenciales se autentican, el sistema genera un token de acceso que identifica las pertenencias a grupos y los privilegios asociados a la cuenta de usuario. El sistema comprueba el token de acceso al intentar acceder a un objeto de directorio. Compara los datos del token de acceso con las cuentas y grupos concedidos o denegados por el descriptor de seguridad de objetos.
Use los métodos siguientes para controlar el contexto de seguridad con el que se enlaza a un controlador de dominio de Active Directory:
- Enlace mediante la opción ADS_SECURE_AUTHENTICATION con la función ADsOpenObject o el método IADsOpenDSObject::OpenDSObject y especifique explícitamente un nombre de usuario y una contraseña. El sistema autentica estas credenciales y genera un token de acceso que usa para la comprobación de acceso mientras dure ese enlace. Para más información, consulte Autenticación.
- Enlace mediante la opción ADS_SECURE_AUTHENTICATION , pero sin especificar credenciales. Si no está suplantando a un usuario, el sistema usa el contexto de seguridad principal de la aplicación, es decir, el contexto de seguridad del usuario que inició la aplicación. En el caso de un servicio del sistema, este es el contexto de seguridad de la cuenta de servicio o la cuenta LocalSystem.
- Suplantar a un usuario y, a continuación, enlazar con ADS_SECURE_AUTHENTICATION, pero sin especificar credenciales. En este caso, el sistema usa el contexto de seguridad del cliente que se suplanta. Para obtener más información, vea Suplantación de cliente.
- Enlace mediante ADsOpenObject o IADsOpenDSObject::OpenDSObject con la opción ADS_NO_AUTHENTICATION . Este método enlaza sin autenticación y da como resultado "Todos" como contexto de seguridad. Solo el proveedor LDAP admite esta opción.
Si es posible, enlace sin especificar credenciales. Es decir, use el contexto de seguridad del usuario que ha iniciado sesión o el cliente suplantado. Esto le permite evitar el almacenamiento en caché de credenciales. Si debe usar credenciales de usuario alternativas, solicite las credenciales, vincule con ellas, pero no las almacene en caché. Para usar el mismo contexto de seguridad en varias operaciones de enlace, puede especificar el nombre de usuario y la contraseña de la primera operación de enlace y, a continuación, especificar solo el nombre de usuario para realizar enlaces posteriores. Para obtener más información sobre el uso de esta técnica, consulte Autenticación.
Algunos contextos de seguridad son más eficaces que otros. Por ejemplo, la cuenta LocalSystem de un controlador de dominio tiene acceso completo a Servicios de dominio de Active Directory, mientras que un usuario típico solo tiene acceso limitado a algunos de los objetos del directorio. En general, la aplicación no debe ejecutarse en un contexto de seguridad eficaz, como LocalSystem, cuando un contexto de seguridad menos eficaz es suficiente para realizar las operaciones. Esto significa que es posible que quiera dividir la aplicación en componentes independientes, cada uno de los cuales se ejecuta en un contexto de seguridad adecuado para las operaciones que se van a realizar. Por ejemplo, la configuración de la aplicación se puede dividir de la siguiente manera:
- Realice cambios de esquema y extensiones en el contexto de un usuario que sea miembro del grupo Administradores de esquemas.
- Realice cambios en el contenedor de configuración en el contexto de un usuario que sea miembro del grupo Administradores de empresa.
- Realice cambios en el contenedor de dominio en el contexto de un usuario que sea miembro del grupo Administradores de dominio.