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

Lihat juga

LUID_AND_ATTRIBUTES

ObDereferenceObject

ObReferenceObjectByHandle

SID

SID_AND_ATTRIBUTES

SeCreateClientSecurity

SeImpersonateClientEx

SeQueryInformationToken

SeTokenIsRestricted

TOKEN_GROUPS

TOKEN_PRIVILEGES