Identificadores de seguridad

Un identificador de seguridad (SID) es un valor único de longitud variable que se usa para identificar a un administrador de confianza. Cada cuenta tiene un SID único emitido por una autoridad, como un controlador de dominio de Windows, y almacenado en una base de datos de seguridad. Cada vez que un usuario inicia sesión, el sistema recupera el SID para ese usuario de la base de datos y lo coloca en el token de acceso para ese usuario. El sistema usa el SID en el token de acceso para identificar al usuario en todas las interacciones posteriores con la seguridad de Windows. Cuando se ha usado un SID como identificador único para un usuario o grupo, nunca se puede volver a usar para identificar a otro usuario o grupo.

La seguridad de Windows usa SID en los siguientes elementos de seguridad:

Además de los SID específicos del dominio creados de forma única asignados a usuarios y grupos específicos, hay SID conocidos que identifican grupos genéricos y usuarios genéricos. Por ejemplo, los SID conocidos, Todos y mundo, identifican un grupo que incluye a todos los usuarios.

La mayoría de las aplicaciones nunca necesitan trabajar con SID. Dado que los nombres de los SID conocidos pueden variar, debe usar las funciones para compilar el SID a partir de constantes predefinidas en lugar de usar el nombre del SID conocido. Por ejemplo, la versión en inglés de EE. UU. del sistema operativo Windows tiene un SID conocido denominado "BUILTIN\Administrators" que podría tener un nombre diferente en las versiones internacionales del sistema. Para obtener un ejemplo que compila un SID conocido, vea Buscar un SID en un token de acceso en C++.

Si necesita trabajar con SID, no los manipule directamente. En su lugar, use las siguientes funciones.

Función Descripción
AllocateAndInitializeSid Asigna e inicializa un SID con el número especificado de subauthoridades.
ConvertSidToStringSid Convierte un SID en un formato de cadena adecuado para mostrar, almacenar o transportar.
ConvertStringSidToSid Convierte un SID de formato de cadena en un SID funcional válido.
CopySid Copia un SID de origen en un búfer.
EqualPrefixSid Comprueba dos valores de prefijo de SID para comprobar si son iguales. Un prefijo de SID es el SID completo, excepto el último valor de subautenticación.
EqualSid Comprueba dos SID para comprobar si son iguales. Deben coincidir exactamente para considerarse iguales.
FreeSid Libera un SID asignado previamente mediante la función AllocateAndInitializeSid .
GetLengthSid Recupera la longitud de un SID.
GetSidIdentifierAuthority Recupera un puntero a la entidad de identificador de un SID.
GetSidLengthRequired Recupera el tamaño del búfer necesario para almacenar un SID con un número especificado de subauthoridades.
GetSidSubAuthority Recupera un puntero a una subauthoridad especificada en un SID.
GetSidSubAuthorityCount Recupera el número de subauthoridades en un SID.
InitializeSid Inicializa una estructura de SID .
IsValidSid Comprueba la validez de un SID comprobando que el número de revisión está dentro de un intervalo conocido y que el número de subauthoridades es menor que el máximo.
LookupAccountName Recupera el SID que corresponde a un nombre de cuenta especificado.
LookupAccountSid Recupera el nombre de la cuenta que corresponde a un SID especificado.