Fungsi SeFilterToken (ntifs.h)
Rutinitas SeFilterToken membuat token akses baru yang merupakan versi terbatas dari token akses yang ada.
Sintaks
NTSTATUS SeFilterToken(
[in] PACCESS_TOKEN ExistingToken,
[in] ULONG Flags,
[in, optional] PTOKEN_GROUPS SidsToDisable,
[in, optional] PTOKEN_PRIVILEGES PrivilegesToDelete,
[in, optional] PTOKEN_GROUPS RestrictedSids,
PACCESS_TOKEN *FilteredToken
);
Parameter
[in] ExistingToken
Penunjuk ke token utama atau peniruan. Token juga dapat menjadi token terbatas. Token ini harus sudah terbuka untuk akses TOKEN_DUPLICATE. Pointer ini dapat diperoleh dari handel token yang ada dengan memanggil ObReferenceObjectByHandle, menentukan TOKEN_DUPLICATE sebagai jenis DesiredAccess .
[in] Flags
Menentukan opsi hak istimewa tambahan. Parameter ini bisa nol atau kombinasi dari nilai berikut.
Nilai | Makna |
---|---|
DISABLE_MAX_PRIVILEGE | Menonaktifkan semua hak istimewa dalam token baru kecuali SE_CHANGE_NOTIFY_PRIVILEGE. Jika nilai ini ditentukan, parameter PrivilegesToDelete diabaikan. |
SANDBOX_INERT | Menyimpan bendera TOKEN_SANDBOX_INERT dalam token. |
[in, optional] SidsToDisable
Penunjuk ke struktur TOKEN_GROUPS yang berisi array struktur SID_AND_ATTRIBUTES yang menentukan SID khusus tolak dalam token terbatas. Sistem menggunakan SID khusus tolak untuk menolak akses ke objek yang dapat diamankan. Tidak adanya SID khusus tolak tidak mengizinkan akses.
Menonaktifkan SID mengaktifkan SE_GROUP_USE_FOR_DENY_ONLY dan menonaktifkan SE_GROUP_ENABLED dan SE_GROUP_ENABLED_BY_DEFAULT. Semua atribut lainnya diabaikan.
Atribut tolak-saja berlaku untuk kombinasi SID token yang ada, termasuk SID pengguna dan SID grup yang memiliki atribut SE_GROUP_MANDATORY. Untuk mendapatkan SID yang terkait dengan token yang ada, panggil SeQueryInformationToken dengan bendera TokenUser dan TokenGroups. SeFilterToken mengabaikan SID apa pun dalam array yang tidak juga ditemukan di token yang ada.
SeFilterToken mengabaikan anggota Atribut dari struktur SID_AND_ATTRIBUTES.
Parameter ini bersifat opsional dan dapat berupa NULL.
[in, optional] PrivilegesToDelete
Penunjuk ke struktur TOKEN_PRIVILEGES yang berisi array struktur LUID_AND_ATTRIBUTES yang menentukan hak istimewa untuk dihapus dalam token terbatas.
Untuk mendapatkan hak istimewa yang dipegang oleh token yang ada, panggil SeQueryInformationToken dengan bendera TokenPrivileges. SeFilterToken mengabaikan hak istimewa apa pun dalam array yang tidak dipegang oleh token yang ada.
SeFilterToken mengabaikan anggota Atribut dari struktur LUID_AND_ATTRIBUTES.
Parameter ini bersifat opsional dan dapat berupa NULL.
[in, optional] RestrictedSids
Penunjuk ke struktur TOKEN_GROUPS yang berisi array struktur SID_AND_ATTRIBUTES yang menentukan daftar pembatasan SID untuk token baru. Jika token yang ada adalah token terbatas, daftar membatasi SID untuk token baru adalah persimpangan array ini dan daftar membatasi SID untuk token yang ada.
Anggota Atribut dari struktur SID_AND_ATTRIBUTES harus nol. Membatasi SID selalu diaktifkan untuk pemeriksaan akses.
Parameter ini bersifat opsional dan dapat berupa NULL.
FilteredToken
Penunjuk ke variabel yang dialokasikan penelepon yang menerima alamat token terbatas baru. Token baru adalah jenis yang sama, primer atau peniruan identitas, seperti token yang ada.
Nilai kembali
Jika satu atau beberapa nilai parameter tidak valid, SeFilterToken mengembalikan STATUS_INVALID_PARAMETER. (Nilai ini dikembalikan jika token target bukan token peniruan.) Jika tidak, SeFilterToken mengembalikan STATUS_SUCCESS.
Keterangan
SeFilterToken dapat membatasi token dengan cara berikut:
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 dalam dokumentasi Microsoft Windows SDK.
Hapus hak istimewa dari token.
Tentukan daftar SID pembatasan, yang digunakan sistem saat memeriksa akses token ke 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.
Token terbatas dapat digunakan bersama dengan SeCreateClientSecurity dan SeImpersonateClientEx untuk membuat proses yang memiliki hak akses dan hak istimewa terbatas.
Untuk informasi selengkapnya tentang keamanan dan kontrol akses, lihat Model keamanan Windows untuk pengembang driver dan dokumentasi tentang topik ini di Windows SDK.
Ketika token yang dikembalikan di NewToken tidak lagi diperlukan, bebaskan dengan memanggil ObDereferenceObject.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |