Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi harus membuat konteks klien sebelum dapat menggunakan Authz API untuk melakukan pemeriksaan akses atau audit.
Aplikasi harus memanggil fungsi AuthzInitializeResourceManager untuk menginisialisasi manajer sumber daya. Aplikasi kemudian dapat memanggil salah satu dari beberapa fungsi untuk membuat konteks klien. Selain itu, jika Anda melakukan pemeriksaan akses atau mengaudit dari jarak jauh, Anda harus menggunakan fungsi AuthzInitializeRemoteResourceManager .
Untuk membuat konteks klien berdasarkan konteks klien yang ada, panggil fungsi AuthzInitializeContextFromAuthzContext .
Fungsi AuthzInitializeContextFromToken membuat konteks klien baru dengan menggunakan informasi dalam token masuk. Fungsi AuthzInitializeContextFromSid membuat konteks klien baru dengan menggunakan SID yang ditentukan.
Jika memungkinkan, panggil fungsi AuthzInitializeContextFromTokenalih-alih AuthzInitializeContextFromSid. AuthzInitializeContextFromSid mencoba mengambil informasi yang tersedia dalam token masuk yang benar-benar masuk oleh klien. Token masuk aktual memberikan informasi lebih lanjut, seperti jenis masuk dan properti masuk, dan mencerminkan perilaku paket autentikasi yang digunakan untuk masuk. Konteks klien yang dibuat oleh AuthzInitializeContextFromToken menggunakan token masuk, dan konteks klien yang dihasilkan lebih lengkap dan akurat daripada konteks klien yang dibuat oleh AuthzInitializeContextFromSid.
Catatan
Variabel atribut keamanan harus ada dalam konteks klien jika dirujuk dalam ekspresi kondisi; jika tidak, istilah ekspresi bersyariah yang mereferensikannya akan dievaluasi sebagai tidak diketahui. Untuk informasi selengkapnya tentang ekspresi kondisional, lihat topik Bahasa Definisi Deskriptor Keamanan untuk ACE Bersyarah .
Contoh
Contoh berikut menginisialisasi manajer sumber daya Authz dan memanggil fungsi AuthzInitializeContextFromToken untuk membuat konteks klien dari token masuk yang terkait dengan proses saat ini.
BOOL AuthzInitFromToken(AUTHZ_CLIENT_CONTEXT_HANDLE *phClientContext)
{
HANDLE hToken = NULL;
LUID Luid = {0, 0};
ULONG uFlags = 0;
//Initialize Resource Manager
if(!AuthzInitializeResourceManager(
AUTHZ_RM_FLAG_NO_AUDIT,
NULL,
NULL,
NULL,
L"My Resource Manager",
&g_hResourceManager
))
{
printf_s("AuthzInitializeResourceManager failed with %d\n", GetLastError);
return FALSE;
}
//Get the current token.
if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken))
{
printf_s("OpenProcessToken failed with %d\n", GetLastError);
return FALSE;
}
//Initialize the client context
if(!AuthzInitializeContextFromToken(
0,
hToken,
g_hResourceManager,
NULL,
Luid,
NULL,
phClientContext
))
{
printf_s("AuthzInitializeContextFromToken failed with %d\n", GetLastError);
return FALSE;
}
printf_s("Initialized client context. \n");
return TRUE;
}
Topik terkait