Идентификаторы безопасности

Идентификатор безопасности (SID) — это уникальное значение переменной длины, используемое для идентификации доверенного лица. Каждая учетная запись имеет уникальный идентификатор безопасности, выданный центром сертификации, таким как контроллер домена Windows, и хранящийся в базе данных безопасности. Каждый раз, когда пользователь входит в систему, система получает идентификатор безопасности для этого пользователя из базы данных и помещает его в маркер доступа для этого пользователя. Система использует sid в маркере доступа для идентификации пользователя во всех последующих взаимодействиях с безопасностью Windows. Если идентификатор sid используется в качестве уникального идентификатора пользователя или группы, его нельзя использовать повторно для идентификации другого пользователя или группы.

Безопасность Windows использует идентификаторы безопасности в следующих элементах безопасности:

В дополнение к уникально созданным идентификаторам безопасности для конкретного домена, назначенным определенным пользователям и группам, существуют хорошо известные идентификаторы безопасности , которые определяют универсальные группы и универсальных пользователей. Например, известные идентификаторы безопасности ,Все и Мир, идентифицируют группу, в которую входят все пользователи.

Большинству приложений никогда не требуется работать с идентификаторами БЕЗОПАСНОСТИ. Так как имена известных идентификаторов безопасности могут различаться, следует использовать функции для создания идентификатора безопасности на основе предопределенных констант, а не имени хорошо известного идентификатора безопасности. Например, английская версия операционной системы Windows для США имеет хорошо известный идентификатор безопасности с именем BUILTIN\Administrators, который может иметь другое имя в международных версиях системы. Пример создания хорошо известного идентификатора безопасности см. в разделе Поиск идентификатора безопасности в маркере доступа на C++.

Если вам нужно работать с идентификаторами БЕЗОПАСНОСТИ, не управляйте ими напрямую. Вместо этого используйте следующие функции.

Функция Описание
AllocateAndInitializeSid Выделяет и инициализирует идентификатор безопасности с указанным количеством дополнительных учетных данных.
ConvertSidToStringSid Преобразует идентификатор безопасности в формат строки, подходящий для отображения, хранения или транспорта.
ConvertStringSidToSid Преобразует идентификатор безопасности строкового формата в допустимый функциональный идентификатор безопасности.
CopySid Копирует идентификатор безопасности источника в буфер.
EqualPrefixSid Проверяет два значения префикса SID на равенство. Префикс SID — это весь идентификатор безопасности, за исключением последнего значения подчиненного.
EqualSid Проверяет два идентификатора безопасности на равенство. Они должны точно совпадать, чтобы считаться равными.
FreeSid Освобождает ранее выделенный идентификатор безопасности с помощью функции AllocateAndInitializeSid .
GetLengthSid Извлекает длину идентификатора безопасности.
GetSidIdentifierAuthority Извлекает указатель на центр идентификатора для идентификатора sid.
GetSidLengthRequired Извлекает размер буфера, необходимого для хранения идентификатора безопасности с указанным числом вложенных учетных данных.
GetSidSubAuthority Извлекает указатель на указанную вложенную проверку подлинности в идентификаторе безопасности.
GetSidSubAuthorityCount Извлекает количество вложенных учетных данных в идентификаторе безопасности.
InitializeSid Инициализирует структуру SID .
IsValidSid Проверяет допустимость идентификатора безопасности, проверяя, что номер редакции находится в пределах известного диапазона и что количество вложенных авторов меньше максимального.
LookupAccountName Извлекает идентификатор безопасности, соответствующий указанному имени учетной записи.
LookupAccountSid Извлекает имя учетной записи, соответствующее указанному идентификатору безопасности.