Identificadores de seguridad
Un identificador de seguridad (SID) es un valor único de longitud variable que se usa para identificar un administrador de . 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 usar de nuevo para identificar a otro usuario o grupo.
La seguridad de Windows usa SID en los siguientes elementos de seguridad:
- En descriptores de seguridad para identificar el propietario de un objeto y un grupo principal
- En entradas de control de acceso, para identificar al administrador de confianza para el que se permite, deniega o audita el acceso.
- En tokens de acceso, para identificar el usuario y los grupos a los que pertenece el usuario
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 el 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 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 Estados Unidos 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 en el que se 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 obtener igualdad. Un prefijo SID es el SID completo, excepto para el último valor de subautenticación. |
EqualSid | Comprueba dos SID para obtener igualdad. Deben coincidir exactamente para que se consideren 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. |
InicializeSid | Inicializa una estructura deSID. |
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 cuenta que corresponde a un SID especificado. |