Função AuthzInitializeContextFromSid (authz.h)

A função AuthzInitializeContextFromSid cria um contexto de cliente no modo de usuário de um SID ( identificador de segurança do usuário). SIDs de domínio recuperam atributos de grupo de tokens do Active Directory.

Nota Se possível, chame a função AuthzInitializeContextFromToken em vez de AuthzInitializeContextFromSid. Para obter mais informações, consulte Comentários.

 

Sintaxe

AUTHZAPI BOOL AuthzInitializeContextFromSid(
  [in]           DWORD                         Flags,
  [in]           PSID                          UserSid,
  [in, optional] AUTHZ_RESOURCE_MANAGER_HANDLE hAuthzResourceManager,
  [in]           PLARGE_INTEGER                pExpirationTime,
  [in]           LUID                          Identifier,
  [in, optional] PVOID                         DynamicGroupArgs,
  [out]          PAUTHZ_CLIENT_CONTEXT_HANDLE  phAuthzClientContext
);

Parâmetros

[in] Flags

Os sinalizadores a seguir são definidos.

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 (0x0)
Valor padrão.

AuthzInitializeContextFromSid tenta recuperar as informações do grupo de tokens do usuário executando um logon S4U.

Se o logon S4U não for compatível com o domínio do usuário ou o computador de chamada, AuthzInitializeContextFromSid consultará o objeto de conta do usuário para obter informações de grupo. Quando uma conta é consultada diretamente, alguns grupos que representam características de logon, como Rede, Interativo, Anônimo, Serviço de Rede ou Serviço Local, são omitidos. Os aplicativos podem adicionar explicitamente esses SIDs de grupo implementando a função AuthzComputeGroupsCallback ou chamando a função AuthzAddSidsToContext .

AUTHZ_SKIP_TOKEN_GROUPS
2 (0x2)
Faz com que AuthzInitializeContextFromSid ignore todas as avaliações de grupo. Quando esse sinalizador é usado, o contexto retornado contém apenas o SID especificado pelo parâmetro UserSid . O SID especificado pode ser um SID arbitrário ou específico do aplicativo. Outros SIDs podem ser adicionados a esse contexto implementando a função AuthzComputeGroupsCallback ou chamando a função AuthzAddSidsToContext .
AUTHZ_REQUIRE_S4U_LOGON
4 (0x4)
Faz com que AuthzInitializeContextFromSid falhe se o Windows Services For User não estiver disponível para recuperar informações do grupo de tokens.

Windows XP: Não há suporte para esse sinalizador.

AUTHZ_COMPUTE_PRIVILEGES
8 (0x8)
Faz com que AuthzInitializeContextFromSid recupere privilégios para o novo contexto. Se essa função executar um logon S4U, ela recuperará privilégios do token. Caso contrário, a função recuperará privilégios de todos os SIDs no contexto.

[in] UserSid

O SID do usuário para o qual um contexto de cliente será criado. Deve ser uma conta de usuário ou computador válida, a menos que o sinalizador AUTHZ_SKIP_TOKEN_GROUPS seja usado.

[in, optional] hAuthzResourceManager

Um identificador para o gerenciador de recursos que cria esse contexto de cliente. Esse identificador é armazenado na estrutura de contexto do cliente.

Começando com Windows 8 e Windows Server 2012, o gerenciador de recursos pode ser local ou remoto e é obtido chamando a função AuthzInitializeRemoteResourceManager.

[in] pExpirationTime

Data e hora de validade do token. Se nenhum valor for passado, o token nunca expirará. O tempo de expiração não é imposto no momento.

[in] Identifier

Identificador específico do gerenciador de recursos. Esse parâmetro não é usado no momento.

[in, optional] DynamicGroupArgs

Um ponteiro para parâmetros a serem passados para a função de retorno de chamada que calcula grupos dinâmicos. Esse parâmetro poderá ser NULL se nenhum parâmetro dinâmico for passado para a função de retorno de chamada.

Começando com Windows 8 e Windows Server 2012, esse parâmetro deverá ser NULL se o gerenciador de recursos for remoto. Caso contrário, ERROR_NOT_SUPPORTED será definido.

[out] phAuthzClientContext

Um ponteiro para o identificador para o contexto do cliente que a função AuthzInitializeContextFromSid cria. Quando terminar de usar o identificador, libere-o chamando a função AuthzFreeContext .

Retornar valor

Se a função for bem-sucedida, a função retornará diferente de zero.

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

Comentários

Se possível, chame a função AuthzInitializeContextFromToken em vez de AuthzInitializeContextFromSid. AuthzInitializeContextFromSid tenta recuperar as informações disponíveis em um token de logon em que o cliente realmente fez logon. Um token de logon real fornece mais informações, como o tipo de logon e as propriedades de logon, e reflete o comportamento do pacote de autenticação usado para o logon. O contexto do cliente criado por AuthzInitializeContextFromToken usa um token de logon e o contexto do cliente resultante é mais completo e preciso do que um contexto de cliente criado por AuthzInitializeContextFromSid.

Essa função resolve apenas SIDs de usuário válidos.

Windows XP: Essa função resolve associações de grupo para SIDs de usuário e grupo válidos (a menos que o sinalizador AUTHZ_SKIP_TOKEN_GROUPS seja usado). O suporte para resolver associações de SIDs de grupo pode ser alterado ou indisponível em versões subsequentes.

Essa função chama a função de retorno de chamada AuthzComputeGroupsCallback para adicionar SIDs ao contexto recém-criado.

Importante Os aplicativos não devem assumir que o contexto de chamada tenha permissão para usar essa função. A função AuthzInitializeContextFromSid lê o atributo tokenGroupsGlobalAndUniversal do SID especificado na chamada para determinar as associações de grupo do usuário atual. Se o objeto do usuário estiver no Active Directory, o contexto de chamada deverá ter acesso de leitura ao atributo tokenGroupsGlobalAndUniversal no objeto de usuário. Quando um novo domínio é criado, a seleção de compatibilidade de acesso padrão é Permissões compatíveis com sistemas operacionais Windows 2000 e Windows Server 2003. Quando essa opção é definida, o grupo acesso compatível com o Windows 2000 inclui apenas os identificadores de segurança internos usuários autenticados . Portanto, os aplicativos podem não ter acesso ao atributo tokenGroupsGlobalAndUniversal; nesse caso, a função AuthzInitializeContextFromSid falha com ACCESS_DENIED. Os aplicativos que usam essa função devem lidar corretamente com esse erro e fornecer documentação de suporte. Para simplificar a concessão de permissão de contas para consultar informações de grupo de um usuário, adicione contas que precisam da capacidade de pesquisar informações de grupo para o Grupo de Acesso de Autorização do Windows.
 

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

Permitindo acesso anônimo

AuthzFreeContext

Funções de Controle de Acesso básicas