Güvenlik Tanımlayıcıları
güvenlik tanımlayıcısı (SID), bir güvenilirtanımlamak için kullanılan benzersiz bir değişken uzunluğu değeridir. Her hesap, Windows etki alanı denetleyicisi gibi bir yetkili tarafından verilen ve bir güvenlik veritabanında depolanan benzersiz bir SID'ye sahiptir. Bir kullanıcı her oturum açtığında, sistem bu kullanıcının SID'sini veritabanından alır ve bu kullanıcı için erişim belirteci yerleştirir. Sistem, Windows güvenliğiyle sonraki tüm etkileşimlerde kullanıcıyı tanımlamak için erişim belirtecindeki SID'yi kullanır. Bir SID, bir kullanıcı veya grup için benzersiz tanımlayıcı olarak kullanıldığında, başka bir kullanıcı veya grubu tanımlamak için bir daha kullanılamaz.
Windows güvenliği aşağıdaki güvenlik öğelerinde SID kullanır:
- güvenlik tanımlayıcılarında, bir nesnenin ve birincil grubun sahibini tanımlamak için
- erişim izni verilen, reddedilen veya denetlenen mütevelliyi tanımlamak için erişim denetimi girdilerinde
- erişim belirteçlerinde, kullanıcıyı ve kullanıcının ait olduğu grupları tanımlamak için.
Belirli kullanıcılara ve gruplara atanan benzersiz, etki alanına özgü SID'lere ek olarak, genel grupları ve genel kullanıcıları tanımlayan iyi bilinen SID'ler vardır. Örneğin, herkes ve dünya adlı iyi bilinen SID'ler, tüm kullanıcıları içeren bir grubu tanımlar.
Çoğu uygulamanın SID'lerle çalışması gerekmez. İyi bilinen SID'lerin adları farklılık gösterebileceğinden, iyi bilinen SID'nin adını kullanmak yerine önceden tanımlanmış sabitlerden SID oluşturmak için işlevlerini kullanmanız gerekir. Örneğin, Windows işletim sisteminin ABD İngilizce sürümü, sistemin uluslararası sürümlerinde farklı bir ada sahip olabilecek "BUILTIN\Administrators" adlı iyi bilinen bir SID'ye sahiptir. İyi bilinen bir SID oluşturan bir örnek için bkz. C++Bir Erişim Belirtecinde SID arama.
SID'lerle çalışmanız gerekiyorsa, bunları doğrudan işlemeyin. Bunun yerine aşağıdaki işlevleri kullanın.
Fonksiyon | Açıklama |
---|---|
AllocateAndInitializeSid | Belirtilen sayıda alt kimlik doğrulamasına sahip bir SID ayırır ve başlatır. |
ConvertSidToStringSid | SID'yi görüntüleme, depolama veya taşıma için uygun bir dize biçimine dönüştürür. |
ConvertStringSidToSid | Dize biçimi SID'sini geçerli, işlevsel bir SID'ye dönüştürür. |
CopySid | Kaynak SID'yi arabelleğe kopyalar. |
EqualPrefixSid | Eşitlik için iki SID ön eki değerini test eder. SID ön eki, son alt kimlik doğrulama değeri dışında SID'nin tamamıdır. |
EqualSid | İki SID'i eşitlik için test eder. Eşit olarak kabul edilmeleri için tam olarak eşleşmeleri gerekir. |
FreeSid | AllocateAndInitializeSid işlevini kullanarak daha önce ayrılmış bir SID'yi serbestleştirir. |
GetLengthSid | SID uzunluğunu alır. |
GetSidIdentifierAuthority | SID için tanımlayıcı yetkilisine yönelik bir işaretçi alır. |
getSidLengthRequired | Belirtilen sayıda alt kimlik doğrulamasına sahip bir SID depolamak için gereken arabelleğin boyutunu alır. |
GetSidSubAuthority | SID'de belirtilen alt kimlik doğrulamasına yönelik bir işaretçi alır. |
GetSidSubAuthorityCount | SID'deki alt kimlik doğrulamalarının sayısını alır. |
InitializeSid | bir SID yapısı başlatır. |
IsValidSid | Düzeltme numarasının bilinen bir aralık içinde olduğunu ve alt kimlik doğrulaması sayısının üst sınırdan az olduğunu doğrulayarak SID'nin geçerliliğini sınar. |
LookupAccountName | Belirtilen hesap adına karşılık gelen SID'yi alır. |
LookupAccountSid | Belirtilen SID'ye karşılık gelen hesap adını alır. |