Token Terbatas
Token terbatas adalah utama atau peniruan token akses yang telah dimodifikasi oleh fungsiCreateRestrictedToken. Proses atau meniru 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 pembatasan SID, 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 yang dibatasi mencoba mengakses objek yang dapat diamankan, sistem melakukan dua pemeriksaan akses: satu menggunakan SID yang diaktifkan token, dan yang lain menggunakan daftar SID pembatasan. Akses diberikan hanya jika kedua pemeriksaan akses mengizinkan hak akses yang diminta. Untuk informasi selengkapnya tentang pemeriksaan akses, lihat Bagaimana DACL Mengontrol Akses ke Objek.
Anda dapat menggunakantoken utamaterbatas dalam panggilan ke fungsiCreateProcessAsUser. Biasanya, proses yang memanggil CreateProcessAsUser harus memiliki hak istimewa SE_ASSIGNPRIMARYTOKEN_NAME, yang biasanya hanya dipegang 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 peniruan primer atau terbatas dalam fungsiImpersonateLoggedOnUser.
Untuk menentukan apakah token memiliki daftar SID pembatasan, panggil fungsiIsTokenRestricted.
Nota
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, ke aplikasi yang tidak dibatasi di desktop default. Jika perlu, beralih antar desktop untuk tujuan aplikasi Anda.