Pengidentifikasi Keamanan

Pengidentifikasi keamanan (SID) adalah nilai unik dari panjang variabel yang digunakan untuk mengidentifikasi wali amanat. Setiap akun memiliki SID unik yang dikeluarkan oleh otoritas, seperti pengontrol domain Windows, dan disimpan dalam database keamanan. Setiap kali pengguna masuk, sistem mengambil SID untuk pengguna tersebut dari database dan menempatkannya di token akses untuk pengguna tersebut. Sistem menggunakan SID dalam token akses untuk mengidentifikasi pengguna di semua interaksi berikutnya dengan keamanan Windows. Ketika SID telah digunakan sebagai pengidentifikasi unik untuk pengguna atau grup, SID tidak dapat digunakan lagi untuk mengidentifikasi pengguna atau grup lain.

Keamanan Windows menggunakan SID dalam elemen keamanan berikut:

  • Dalam deskriptor keamanan untuk mengidentifikasi pemilik objek dan grup utama
  • Dalam entri kontrol akses, untuk mengidentifikasi wali yang aksesnya diizinkan, ditolak, atau diaudit
  • Dalam token akses, untuk mengidentifikasi pengguna dan grup tempat pengguna berada

Selain SID khusus domain yang dibuat secara unik yang ditetapkan untuk pengguna dan grup tertentu, ada SID terkenal yang mengidentifikasi grup generik dan pengguna generik. Misalnya, SID terkenal, Semua Orang, dan Dunia, mengidentifikasi grup yang mencakup semua pengguna.

Sebagian besar aplikasi tidak perlu bekerja dengan SID. Karena nama SID terkenal dapat bervariasi, Anda harus menggunakan fungsi untuk membangun SID dari konstanta yang telah ditentukan sebelumnya daripada menggunakan nama SID terkenal. Misalnya, versi bahasa Inggris AS dari sistem operasi Windows memiliki SID terkenal bernama "BUILTIN\Administrators" yang mungkin memiliki nama yang berbeda pada versi internasional sistem. Untuk contoh yang membangun SID terkenal, lihat Mencari SID dalam Token Akses di C++.

Jika Anda perlu bekerja dengan SID, jangan memanipulasinya secara langsung. Sebagai gantinya, gunakan fungsi berikut.

Fungsi Deskripsi
AllocateAndInitializeSid Mengalokasikan dan menginisialisasi SID dengan jumlah subautoritas yang ditentukan.
ConvertSidToStringSid Mengonversi SID ke format string yang cocok untuk tampilan, penyimpanan, atau transportasi.
ConvertStringSidTosid Mengonversi SID format string menjadi SID fungsional yang valid.
CopySid Menyalin SID sumber ke buffer.
EqualPrefixSid Menguji dua nilai awalan SID untuk kesetaraan. Awalan SID adalah seluruh SID kecuali untuk nilai subautoritas terakhir.
EqualSid Menguji dua SID untuk kesetaraan. Mereka harus sama persis agar dianggap sama.
FreeSid Membebaskan SID yang dialokasikan sebelumnya dengan menggunakan fungsi AllocateAndInitializeSid .
GetLengthSid Mengambil panjang SID.
GetSidIdentifierAuthority Mengambil pointer ke otoritas pengidentifikasi untuk SID.
GetSidLengthRequired Mengambil ukuran buffer yang diperlukan untuk menyimpan SID dengan jumlah subotoritas tertentu.
GetSidSubAuthority Mengambil penunjuk ke subautoritas tertentu dalam SID.
GetSidSubAuthorityCount Mengambil jumlah subautoritas dalam SID.
InitializeSid Menginisialisasi struktur SID .
IsValidSid Menguji validitas SID dengan memverifikasi bahwa nomor revisi berada dalam rentang yang diketahui dan bahwa jumlah subautoritas kurang dari maksimum.
LookupAccountName Mengambil SID yang sesuai dengan nama akun tertentu.
LookupAccountSid Mengambil nama akun yang sesuai dengan SID tertentu.