Bagikan melalui


Token Terbatas

Token terbatas adalah token aksesutama atau peniruan yang telah dimodifikasi oleh fungsi CreateRestrictedToken. Proses atau peniruan utas yang berjalan dalam konteks keamanan token terbatas dibatasi kemampuannya untuk mengakses objek yang dapat diamankan atau melakukan operasi istimewa. Fungsi CreateRestrictedToken dapat membatasi token dengan cara berikut:

  • Hapus hak istimewa dari token.
  • Terapkan atribut tolak-saja ke SID dalam token sehingga tidak dapat digunakan untuk mengakses objek aman. Untuk informasi selengkapnya tentang atribut tolak-saja, lihat Atribut SID dalam Token Akses.
  • Tentukan daftar SID pembatasan, yang dapat membatasi akses ke objek yang dapat diamankan.

Sistem menggunakan daftar pembatasan SID saat memeriksa akses token ke objek yang dapat diamankan. Ketika proses atau utas terbatas mencoba mengakses objek yang dapat diamankan, sistem melakukan dua pemeriksaan akses: satu menggunakan SID yang diaktifkan token, dan yang lain menggunakan daftar MEMBATASI SID. Akses diberikan hanya jika kedua pemeriksaan akses mengizinkan hak akses yang diminta. Untuk informasi selengkapnya tentang pemeriksaan akses, lihat Cara DACL Mengontrol Akses ke Objek.

Anda dapat menggunakan token utama terbatas dalam panggilan ke fungsi CreateProcessAsUser . Biasanya, proses yang memanggil CreateProcessAsUser harus memiliki hak istimewa SE_ASSIGNPRIMARYTOKEN_NAME, yang biasanya hanya disimpan oleh kode sistem atau oleh layanan yang berjalan di akun LocalSystem. Namun, jika panggilan CreateProcessAsUser menentukan versi terbatas dari token utama pemanggil, hak istimewa ini tidak diperlukan. Ini memungkinkan aplikasi biasa untuk membuat proses terbatas.

Anda juga dapat menggunakan token primer atau peniruan yang dibatasi dalam fungsi ImpersonateLoggedOnUser .

Untuk menentukan apakah token memiliki daftar SID pembatasan, panggil fungsi IsTokenRestricted .

Catatan

Aplikasi yang menggunakan token terbatas harus menjalankan aplikasi terbatas pada desktop selain desktop default. Ini diperlukan untuk mencegah serangan oleh aplikasi terbatas, menggunakan SendMessage atau PostMessage, untuk aplikasi yang tidak dibatasi pada desktop default. Jika perlu, beralih antar desktop untuk tujuan aplikasi Anda.