Función AuthzAccessCheck (authz.h)

La función AuthzAccessCheck determina qué bits de acceso se pueden conceder a un cliente para un conjunto determinado de descriptores de seguridad. La estructura AUTHZ_ACCESS_REPLY devuelve una matriz de máscaras de acceso concedidas y estado de error. Opcionalmente, las máscaras de acceso que siempre se concederán se pueden almacenar en caché y se devuelve un identificador para los valores almacenados en caché.

Sintaxis

AUTHZAPI BOOL AuthzAccessCheck(
  [in]            DWORD                              Flags,
  [in]            AUTHZ_CLIENT_CONTEXT_HANDLE        hAuthzClientContext,
  [in]            PAUTHZ_ACCESS_REQUEST              pRequest,
  [in, optional]  AUTHZ_AUDIT_EVENT_HANDLE           hAuditEvent,
  [in]            PSECURITY_DESCRIPTOR               pSecurityDescriptor,
  [in, optional]  PSECURITY_DESCRIPTOR               *OptionalSecurityDescriptorArray,
  [in, optional]  DWORD                              OptionalSecurityDescriptorCount,
  [in, out]       PAUTHZ_ACCESS_REPLY                pReply,
  [out, optional] PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE phAccessCheckResults
);

Parámetros

[in] Flags

Valor DWORD que especifica cómo se copia el descriptor de seguridad. Este parámetro puede ser uno de los valores siguientes.

A partir de Windows 8 y Windows Server 2012, cuando se llama a esta función en un identificador de contexto remoto, los 16 bits superiores deben ser cero.

Valor Significado
0
Si phAccessCheckResults no es NULL, se copia una copia en profundidad del descriptor de seguridad en el identificador al que hace referencia phAccessCheckResults.
AUTHZ_ACCESS_CHECK_NO_DEEP_COPY_SD
1
No se realiza una copia en profundidad del descriptor de seguridad. La aplicación que realiza la llamada debe pasar la dirección de un identificador de AUTHZ_ACCESS_CHECK_RESULTS_HANDLE en phAccessCheckResults. La función AuthzAccessCheck establece este identificador en un descriptor de seguridad que debe permanecer válido durante las llamadas posteriores a AuthzCachedAccessCheck.

[in] hAuthzClientContext

Identificador de una estructura que representa el cliente.

A partir de Windows 8 y Windows Server 2012, el contexto de cliente puede ser local o remoto.

[in] pRequest

Puntero a una estructura de AUTHZ_ACCESS_REQUEST que especifica la máscara de acceso deseada, el identificador de seguridad personal (SID) y la estructura de lista de tipos de objeto, si existe.

[in, optional] hAuditEvent

Estructura que contiene información de auditoría específica del objeto. Cuando el valor de este parámetro no es NULL, se solicita automáticamente una auditoría. La información de auditoría estática se lee de la estructura de Resource Manager.

A partir de Windows 8 y Windows Server 2012, cuando se usa esta función con un identificador de contexto remoto, el valor del parámetro debe ser NULL.

[in] pSecurityDescriptor

Puntero a una estructura de SECURITY_DESCRIPTOR que se va a usar para las comprobaciones de acceso. El SID de propietario del objeto se selecciona de este descriptor de seguridad. Una lista de control de acceso discrecional (DACL) NULL en este descriptor de seguridad representa una DACL NULL para todo el objeto. Asegúrese de que el descriptor de seguridad contiene información de OWNER y DACL, o se generará un mensaje de código de error 87 o "parámetro no válido".

Las DACL NULL importantes permiten todo tipo de acceso a todos los usuarios; por lo tanto, no use DACL NULL. Para obtener información sobre cómo crear una DACL, vea Creating a DACL.
 
Una lista de control de acceso del sistemaNULL (SACL) en este descriptor de seguridad se trata de la misma manera que una SACL vacía.

[in, optional] OptionalSecurityDescriptorArray

Matriz de estructuras de SECURITY_DESCRIPTOR . Las listas de control de acceso (ACL) NULL en estos descriptores de seguridad se tratan como ACL vacías. La ACL de todo el objeto es la concatenación lógica de todas las ACL.

[in, optional] OptionalSecurityDescriptorCount

Número de descriptores de seguridad que no incluyen el descriptor de seguridad principal.

[in, out] pReply

Puntero a una estructura de AUTHZ_ACCESS_REPLY que contiene los resultados de la comprobación de acceso. Antes de llamar a la función AuthzAccessCheck , una aplicación debe asignar memoria para los miembros GrantedAccessMask y SaclEvaluationResults de la estructura AUTHZ_ACCESS_REPLY a la que hace referencia pReply.

[out, optional] phAccessCheckResults

Puntero para devolver un identificador a los resultados almacenados en caché de la comprobación de acceso. Cuando este valor de parámetro no es null, los resultados de esta llamada de comprobación de acceso se almacenarán en caché. Esto da como resultado una comprobación de MAXIMUM_ALLOWED.

A partir de Windows 8 y Windows Server 2012, cuando se usa esta función con un identificador de contexto remoto, el valor del parámetro debe ser NULL.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve TRUE.

Si se produce un error en la función, devuelve FALSE. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Se llamará a la función de devolución de llamada AuthzAccessCheckCallback si la DACL de la estructura de SECURITY_DESCRIPTOR a la que apunta el parámetro pSecurityDescriptor contiene una entrada de control de acceso de devolución de llamada (ACE).

Las variables de atributo de seguridad deben estar presentes en el contexto de cliente si se hace referencia a en una expresión condicional; de lo contrario, el término de expresión condicional que hace referencia a ellas se evaluará como desconocido. Para obtener más información, vea el tema Lenguaje de definición de descriptores de seguridad para aces condicionales .

Para obtener más información, consulte La información general sobre cómo funciona AccessCheck y la directiva de autorización centralizada .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado authz.h
Library Authz.lib
Archivo DLL Authz.dll
Redistribuible Paquete de herramientas de administración de Windows Server 2003 en Windows XP

Consulte también

AUTHZ_ACCESS_REPLY

AUTHZ_ACCESS_REQUEST

AuthzCachedAccessCheck

Funciones básicas de Access Control

Directiva de autorización centralizada

Funcionamiento de AccessCheck

SECURITY_DESCRIPTOR

Lenguaje de definición de descriptor de seguridad para ACE condicionales