Identyfikatory zabezpieczeń
Identyfikator zabezpieczeń (SID) to unikatowa wartość zmiennej długości używanej do identyfikowania zaufania. Każde konto ma unikatowy identyfikator SID wystawiony przez urząd, taki jak kontroler domeny systemu Windows i przechowywany w bazie danych zabezpieczeń. Za każdym razem, gdy użytkownik loguje się, system pobiera identyfikator SID dla tego użytkownika z bazy danych i umieszcza go w tokenie dostępu dla tego użytkownika. System używa identyfikatora SID w tokenie dostępu, aby zidentyfikować użytkownika we wszystkich kolejnych interakcjach z zabezpieczeniami systemu Windows. Gdy identyfikator SID został użyty jako unikatowy identyfikator użytkownika lub grupy, nigdy nie może być używany ponownie do identyfikowania innego użytkownika lub grupy.
Zabezpieczenia systemu Windows używają identyfikatorów SID w następujących elementach zabezpieczeń:
- W deskryptory zabezpieczeń zidentyfikować właściciela obiektu i grupy podstawowej
- W wpisy kontroli dostępu, aby zidentyfikować zaufania, dla którego dostęp jest dozwolony, odmowa lub inspekcja
- W tokeny dostępu, aby zidentyfikować użytkownika i grupy, do których należy użytkownik
Oprócz unikatowych, specyficznych dla domeny identyfikatorów SI przypisanych do określonych użytkowników i grup, istnieją dobrze znane identyfikatory SID, które identyfikują grupy ogólne i użytkowników ogólnych. Na przykład znane identyfikatory SID, Wszyscy i Świat identyfikują grupę zawierającą wszystkich użytkowników.
Większość aplikacji nigdy nie musi pracować z identyfikatorami SID. Ponieważ nazwy dobrze znanych identyfikatorów SID mogą się różnić, należy użyć funkcji, aby skompilować identyfikator SID ze wstępnie zdefiniowanych stałych, zamiast używać nazwy dobrze znanego identyfikatora SID. Na przykład angielska wersja systemu operacyjnego Windows w USA ma dobrze znany identyfikator SID o nazwie "BUILTIN\Administrators", który może mieć inną nazwę w międzynarodowych wersjach systemu. Przykład, który tworzy dobrze znany identyfikator SID, zobacz Wyszukiwanie identyfikatora SID w tokenie dostępu w języku C++.
Jeśli musisz pracować z identyfikatorami SID, nie manipuluj nimi bezpośrednio. Zamiast tego użyj następujących funkcji.
Funkcja | Opis |
---|---|
PrzydzielandInitializeSid | Przydziela i inicjuje identyfikator SID z określoną liczbą poduwierzytelniania. |
ConvertSidToStringSid | Konwertuje identyfikator SID na format ciągu odpowiedni do wyświetlania, przechowywania lub transportu. |
ConvertStringSidToSid | Konwertuje identyfikator SID w formacie ciągu na prawidłowy, funkcjonalny identyfikator SID. |
CopySid | Kopiuje źródłowy identyfikator SID do buforu. |
equalprefixSid | Testuje dwie wartości prefiksu SID pod kątem równości. Prefiks SID jest całym identyfikatorem SID z wyjątkiem ostatniej wartości poduwierzytelniania. |
equalsid | Testuje dwa identyfikatory SID pod kątem równości. Muszą być dokładnie zgodne, aby były traktowane jako równe. |
FreeSid | Zwalnia wcześniej przydzielony identyfikator SID przy użyciu funkcji AllocateAndInitializeSid. |
GetLengthSid | Pobiera długość identyfikatora SID. |
GetSidIdentifierAuthority | Pobiera wskaźnik do urzędu identyfikatora dla identyfikatora SID. |
GetSidLengthRequired | Pobiera rozmiar buforu wymaganego do przechowywania identyfikatora SID z określoną liczbą poduwierzytelniania. |
GetSidSubAuthority | Pobiera wskaźnik do określonego poduwierzytelniania w identyfikatorze SID. |
GetSidSubAuthorityCount | Pobiera liczbę poduwierzytelniania podrzędnego w identyfikatorze SID. |
initializeSid | Inicjuje strukturęsid. |
IsValidSid | Sprawdza poprawność identyfikatora SID, sprawdzając, czy numer poprawki znajduje się w znanym zakresie i czy liczba poduwierzytelniania jest mniejsza niż maksymalna. |
LookupAccountName | Pobiera identyfikator SID odpowiadający określonej nazwie konta. |
LookupAccountSid | Pobiera nazwę konta odpowiadającą określonemu identyfikatorowi SID. |