Compartilhar via


Função AuthzAccessCheck (authz.h)

A função AuthzAccessCheck determina quais bits de acesso podem ser concedidos a um cliente para um determinado conjunto de descritores de segurança. A estrutura AUTHZ_ACCESS_REPLY retorna uma matriz de máscaras de acesso concedidas e status de erro. Opcionalmente, máscaras de acesso que sempre serão concedidas podem ser armazenadas em cache e um identificador para valores armazenados em cache é retornado.

Sintaxe

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

Um valor DWORD que especifica como o descritor de segurança é copiado. Esse parâmetro pode usar um dos valores a seguir.

Começando com Windows 8 e Windows Server 2012, quando você chama essa função em um identificador de contexto remoto, os 16 bits superiores devem ser zero.

Valor Significado
0
Se phAccessCheckResults não for NULL, uma cópia profunda do descritor de segurança será copiada para o identificador referenciado por phAccessCheckResults.
AUTHZ_ACCESS_CHECK_NO_DEEP_COPY_SD
1
Uma cópia profunda do descritor de segurança não é executada. O aplicativo de chamada deve passar o endereço de um identificador de AUTHZ_ACCESS_CHECK_RESULTS_HANDLE em phAccessCheckResults. A função AuthzAccessCheck define esse identificador como um descritor de segurança que deve permanecer válido durante as chamadas subsequentes para AuthzCachedAccessCheck.

[in] hAuthzClientContext

Um identificador para uma estrutura que representa o cliente.

Começando com Windows 8 e Windows Server 2012, o contexto do cliente pode ser local ou remoto.

[in] pRequest

Um ponteiro para uma estrutura AUTHZ_ACCESS_REQUEST que especifica a máscara de acesso desejada, o SID ( identificador de segurança própria) principal e a estrutura de lista de tipos de objeto, se existir.

[in, optional] hAuditEvent

Uma estrutura que contém informações de auditoria específicas do objeto. Quando o valor desse parâmetro não é nulo, uma auditoria é solicitada automaticamente. As informações de auditoria estáticas são lidas da estrutura do gerenciador de recursos.

Começando com Windows 8 e Windows Server 2012, quando você usa essa função com um identificador de contexto remoto, o valor do parâmetro deve ser NULL.

[in] pSecurityDescriptor

Um ponteiro para uma estrutura SECURITY_DESCRIPTOR a ser usada para verificações de acesso. O SID do proprietário do objeto é escolhido desse descritor de segurança. Uma DACL (lista de controle de acesso discricionário) NULL neste descritor de segurança representa uma DACL NULL para todo o objeto. Verifique se o descritor de segurança contém informações de OWNER e DACL ou se uma mensagem de código de erro 87 ou "parâmetro inválido" será gerada.

DACLs NULLimportantes permitem todos os tipos de acesso a todos os usuários; portanto, não use DACLs NULL. Para obter informações sobre como criar uma DACL, consulte Criando uma DACL.
 
Uma SACL (lista de controle de acesso do sistema) NULL nesse descritor de segurança é tratada da mesma maneira que uma SACL vazia.

[in, optional] OptionalSecurityDescriptorArray

Uma matriz de estruturas SECURITY_DESCRIPTOR . AS ACLs (listas de controle de acesso) NULL nesses descritores de segurança são tratadas como ACLs vazias. A ACL de todo o objeto é a concatenação lógica de todas as ACLs.

[in, optional] OptionalSecurityDescriptorCount

O número de descritores de segurança que não incluem o descritor de segurança primário.

[in, out] pReply

Um ponteiro para uma estrutura AUTHZ_ACCESS_REPLY que contém os resultados da marcar de acesso. Antes de chamar a função AuthzAccessCheck , um aplicativo deve alocar memória para os membros GrantedAccessMask e SaclEvaluationResults da estrutura AUTHZ_ACCESS_REPLY referenciada por pReply.

[out, optional] phAccessCheckResults

Um ponteiro para retornar um identificador para os resultados armazenados em cache da marcar de acesso. Quando esse valor de parâmetro não for nulo, os resultados dessa chamada de marcar de acesso serão armazenados em cache. Isso resulta em um MAXIMUM_ALLOWED marcar.

Começando com Windows 8 e Windows Server 2012, quando você usa essa função com um identificador de contexto remoto, o valor do parâmetro deve ser NULL.

Retornar valor

Se a função for bem-sucedida, a função retornará TRUE.

Se a função falhar, ela retornará FALSE. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função de retorno de chamada AuthzAccessCheckCallback será chamada se a DACL da estrutura SECURITY_DESCRIPTOR apontada pelo parâmetro pSecurityDescriptor contiver uma ACE ( entrada de controle de acesso de retorno de chamada).

As variáveis de atributo de segurança devem estar presentes no contexto do cliente se referenciadas em uma expressão condicional, caso contrário, o termo de expressão condicional referenciando-as será avaliado como desconhecido. Para obter mais informações, consulte o tópico Linguagem de definição do descritor de segurança para ACEs condicionais .

Para obter mais informações, consulte as visões gerais como o AccessCheck funciona e a Política de Autorização Centralizada .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho authz.h
Biblioteca Authz.lib
DLL Authz.dll
Redistribuível Pacote de Ferramentas de Administração do Windows Server 2003 no Windows XP

Confira também

AUTHZ_ACCESS_REPLY

AUTHZ_ACCESS_REQUEST

AuthzCachedAccessCheck

Funções básicas de Controle de Acesso

Política de Autorização Centralizada

Como o AccessCheck funciona

SECURITY_DESCRIPTOR

Linguagem de definição do descritor de segurança para ACEs condicionais