Partilhar via


Identificadores de Segurança

Um identificador de segurança (SID) é um valor exclusivo de comprimento variável usado para identificar um administrador. Cada conta tem um SID exclusivo emitido por uma autoridade, como um controlador de domínio do Windows, e armazenado em um banco de dados de segurança. Cada vez que um usuário faz logon, o sistema recupera o SID desse usuário do banco de dados e o coloca no token de acesso para esse usuário. O sistema usa o SID no token de acesso para identificar o usuário em todas as interações subsequentes com a segurança do Windows. Quando um SID é usado como identificador exclusivo de um usuário ou grupo, ele nunca mais pode ser usado para identificar outro usuário ou grupo.

A segurança do Windows usa SIDs nos seguintes elementos de segurança:

Além dos SIDs específicos de domínio criados exclusivamente atribuídos a usuários e grupos específicos, há SIDs bem conhecidos que identificam grupos genéricos e usuários genéricos. Por exemplo, os SIDs bem conhecidos, Todos e Mundo, identificam um grupo que inclui todos os usuários.

A maioria dos aplicativos nunca precisa trabalhar com SIDs. Como os nomes de SIDs conhecidos podem variar, você deve usar as funções para criar o SID a partir de constantes predefinidas em vez de usar o nome do SID conhecido. Por exemplo, a versão em inglês dos EUA do sistema operacional Windows tem um SID bem conhecido chamado "BUILTIN\Administrators" que pode ter um nome diferente em versões internacionais do sistema. Para obter um exemplo que cria um SID conhecido, consulte Procurando um SID em um token de acesso em C++.

Se você precisar trabalhar com SIDs, não os manipule diretamente. Em vez disso, use as seguintes funções.

Função Descrição
AllocateAndInitializeSid Aloca e inicializa um SID com o número especificado de subautoridades.
ConvertSidToStringSid Converte um SID em um formato de cadeia de caracteres adequado para exibição, armazenamento ou transporte.
ConvertStringSidToSid Converte um SID de formato de cadeia de caracteres em um SID válido e funcional.
CopySid Copia um SID de origem para um buffer.
EqualPrefixSid Testa dois valores de prefixo SID para igualdade. Um prefixo SID é o SID inteiro, exceto para o último valor de subautoridade.
EqualSid Testa dois SIDs para igualdade. Eles devem corresponder exatamente para serem considerados iguais.
FreeSid Libera um SID alocado anteriormente usando a funçãoAllocateAndInitializeSid.
GetLengthSid Recupera o comprimento de um SID.
GetSidIdentifierAuthority Recupera um ponteiro para a autoridade identificador de um SID.
GetSidLengthRequired Recupera o tamanho do buffer necessário para armazenar um SID com um número especificado de subautoridades.
GetSidSubAuthority Recupera um ponteiro para uma subautoridade especificada em um SID.
GetSidSubAuthorityCount Recupera o número de subautoridades em um SID.
InitializeSid Inicializa uma estrutura de SID.
IsValidSid Testa a validade de um SID verificando se o número de revisão está dentro de um intervalo conhecido e se o número de subautoridades é inferior ao máximo.
LookupAccountName Recupera o SID que corresponde a um nome de conta especificado.
LookupAccountSid Recupera o nome da conta que corresponde a um SID especificado.