Compartir a través de


Comprobación del acceso a objetos privados

Una aplicación de servidor protegida debe comprobar los derechos de acceso de un cliente antes de permitir que el cliente acceda a un objeto privado protegido. Para ello, el servidor pasa un token de suplantación, un descriptor de seguridad y un conjunto de derechos de acceso solicitados a AccessCheck. Las entradas de control de acceso (ACE) de la DACL del descriptor de seguridad especifican los derechos de acceso permitidos o denegados a varios administradores. La función AccessCheck compara el administrador de cada ACE con los administradores identificados en el token de suplantación. Para obtener una descripción del algoritmo usado para conceder o denegar el acceso, vea Cómo controlan el acceso de DACLs a un objeto.

La función AccessCheckAndAuditAlarm realiza una comprobación de acceso similar. Además, genera registros de auditoría en el registro de eventos de seguridad en función del SACL en el descriptor de seguridad.

Las funciones AccessCheckByType y AccessCheckByTypeAndAuditAlarm son similares a AccessCheck y AccessCheckAndAuditAlarm , excepto que permiten comprobar el acceso a los subobjetos de un objeto, como conjuntos de propiedades o propiedades. Las funciones AccessCheckByTypeResultList y AccessCheckByTypeResultListAndAuditAlarm también son similares a AccessCheck , salvo que proporcionan los resultados de la comprobación de acceso para cada subobjeto de una jerarquía de los conjuntos de propiedades y propiedades del objeto. Estas funciones usan la estructura OBJECT_TYPE_LIST para describir la jerarquía de objetos para los que se comprueba el acceso. Las funciones que generan un mensaje de auditoría usan el tipo de enumeración AUDIT_EVENT_TYPE para indicar si el objeto que se comprueba es un objeto de servicio de directorio. Para obtener más información sobre la jerarquía de un objeto y sus subobjetos, vea ACE para controlar el acceso a las propiedades de un objeto.

Los derechos de acceso solicitados que se pasan a las funciones AccessCheck y AccessCheckAndAuditAlarm no deben incluir ningún derecho de acceso genérico. El servidor puede usar la función MapGenericMask para convertir los derechos de acceso genéricos a los derechos específicos y estándar correspondientes según la asignación especificada en la estructura de GENERIC_MAPPING .

Las funciones AreAllAccessesGranted y AreAnyAccessesGranted comparan una máscara de acceso solicitada con una máscara de acceso concedida.

Para obtener código de ejemplo que usa la función AccessCheck , consulte Comprobación del acceso de cliente con ACL en C++.

La función ConvertToAutoInheritPrivateObjectSecurity crea y devuelve un descriptor de seguridad en un formato que permite la propagación automática de acees herederas. Este descriptor de seguridad contiene todos los AEC, heredados y noheridos, en el descriptor de seguridad actual y tiene un formato autoconsito . La función ConvertToAutoInheritPrivateObjectSecurity determina si los AEC se heredan o no se comparan todos los AEC en el descriptor de seguridad actual con todos los AEC en su descriptor de seguridad primario. Puede que no haya una correspondencia uno a uno entre los dos grupos de ACE. Por ejemplo, una ACE que permite el permiso de lectura y escritura puede ser equivalente a dos ACE: una ACE que permite el permiso de lectura y una ACE que permite el permiso de escritura. Es posible que no se proporcione un descriptor de seguridad primario cuando el descriptor de seguridad actual sea el elemento primario.