IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity method (aclui.h)
Metode ComputeEffectivePermissionWithSecondarySecurity menghitung izin efektif untuk objek. Ini mendukung integrasi kebijakan keamanan sekunder atau kustom. Anda dapat memilih untuk memberikan informasi keamanan tambahan ini dengan menerapkan antarmuka ISecurityInformation4 . Metode ini mendukung identitas campuran, yaitu ketika token akses utama berisi informasi otorisasi pengguna dan perangkat.
Sintaks
HRESULT ComputeEffectivePermissionWithSecondarySecurity(
[in] PSID pSid,
[in, optional] PSID pDeviceSid,
[in, optional] PCWSTR pszServerName,
[in] PSECURITY_OBJECT pSecurityObjects,
[in] DWORD dwSecurityObjectCount,
[in, optional] PTOKEN_GROUPS pUserGroups,
[in, optional] PAUTHZ_SID_OPERATION pAuthzUserGroupsOperations,
[in, optional] PTOKEN_GROUPS pDeviceGroups,
[in, optional] PAUTHZ_SID_OPERATION pAuthzDeviceGroupsOperations,
[in, optional] PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION pAuthzUserClaims,
[in, optional] PAUTHZ_SECURITY_ATTRIBUTE_OPERATION pAuthzUserClaimsOperations,
[in, optional] PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION pAuthzDeviceClaims,
[in, optional] PAUTHZ_SECURITY_ATTRIBUTE_OPERATION pAuthzDeviceClaimsOperations,
[in, out] PEFFPERM_RESULT_LIST pEffpermResultLists
);
Parameter
[in] pSid
Penunjuk ke struktur SID yang mewakili prinsip keamanan yang izin efektifnya sedang ditentukan.
[in, optional] pDeviceSid
Penunjuk ke struktur SID yang mewakili perangkat tempat prinsipal mengakses objek. Jika ini bukan NULL dan Anda menggunakan fungsi AuthzAccessCheck untuk menghitung izin yang efektif, maka SID perangkat dapat dikompoundasikan dengan parameter pSid dengan menggunakan fungsi AuthzInitializeCompoundContext .
[in, optional] pszServerName
Nama server tempat objek berada. Ini adalah nama yang sama yang dikembalikan dari metode ISecurityInformation::GetObjectInformation .
[in] pSecurityObjects
Array objek keamanan. Array ini terdiri dari objek yang disimpulkan oleh editor kontrol akses selain yang dikembalikan dari metode ISecurityInformation4::GetSecondarySecurity .
[in] dwSecurityObjectCount
Jumlah objek keamanan dalam parameter pSecurityObjects , dan jumlah daftar hasil dalam parameter pEffpermResultLists .
[in, optional] pUserGroups
Penunjuk ke grup pengguna tambahan yang harus digunakan untuk mengubah konteks keamanan yang diinisialisasi dari parameter pSid . Jika Anda menggunakan fungsi AuthzAccessCheck untuk menghitung izin yang efektif, maka modifikasi dapat dilakukan dengan memanggil fungsi AuthzModifySids menggunakan AuthzContextInfoGroupsSids sebagai parameter SidClass .
[in, optional] pAuthzUserGroupsOperations
Penunjuk ke array struktur AUTHZ_SID_OPERATION yang menentukan bagaimana grup pengguna dalam konteks authz harus dimodifikasi untuk setiap grup pengguna dalam argumen pUserGroups . Array ini berisi elemen sebanyak jumlah grup dalam parameter pUserGroups .
[in, optional] pDeviceGroups
Pointer ke grup perangkat tambahan yang harus digunakan untuk memodifikasi konteks keamanan yang diinisialisasi dari parameter pSid atau yang dibuat dengan menggabungkan konteks yang diinisialisasi dari parameter pSid dan pDeviceSid . Jika Anda menggunakan fungsi AuthzAccessCheck untuk menghitung izin yang efektif, maka modifikasi dapat dilakukan dengan memanggil fungsi AuthzModifySids menggunakan AuthzContextInfoDeviceSids sebagai parameter SidClass .
[in, optional] pAuthzDeviceGroupsOperations
Penunjuk ke array jenis enumerasi AUTHZ_SID_OPERATION yang menentukan bagaimana grup perangkat dalam konteks authz harus dimodifikasi untuk setiap grup perangkat dalam argumen pDeviceGroups . Array ini berisi elemen sebanyak jumlah grup dalam parameter pDeviceGroups .
[in, optional] pAuthzUserClaims
Arahkan ke struktur AUTHZ_SECURITY_ATTRIBUTES_INFORMATION yang berisi konteks klaim pengguna yang harus digunakan untuk memodifikasi konteks keamanan yang diinisialisasi dari parameter pSid . Jika Anda menggunakan fungsi AuthzAccessCheck untuk menghitung izin yang efektif, maka modifikasi dapat dilakukan dengan memanggil fungsi AuthzModifyClaims menggunakan AuthzContextInfoUserClaims sebagai parameter ClaimClass .
[in, optional] pAuthzUserClaimsOperations
Arahkan ke jenis enumerasi AUTHZ_SECURITY_ATTRIBUTE_OPERATION yang menentukan operasi yang terkait dengan konteks klaim pengguna.
[in, optional] pAuthzDeviceClaims
Penunjuk ke konteks klaim perangkat yang harus digunakan untuk memodifikasi konteks keamanan yang diinisialisasi dari parameter pSid atau yang dibuat dengan menggabungkan konteks yang diinisialisasi dari parameter pSid dan pDeviceSid . Ini mungkin disediakan oleh pemanggil, bahkan jika parameter pDeviceSid tidak. Jika Anda menggunakan fungsi AuthzAccessCheck untuk menghitung izin yang efektif, maka modifikasi dapat dilakukan dengan memanggil fungsi AuthzModifyClaims menggunakan AuthzContextInfoDeviceClaims sebagai parameter ClaimClass .
[in, optional] pAuthzDeviceClaimsOperations
Arahkan ke jenis enumerasi AUTHZ_SECURITY_ATTRIBUTE_OPERATION yang menentukan operasi yang terkait dengan konteks klaim perangkat.
[in, out] pEffpermResultLists
Penunjuk ke array hasil izin efektif dari jenis EFFPERM_RESULT_LIST. Array ini panjangnya adalah elemen dwSecurityObjectCount . Array diinisialisasi oleh pemanggil dan implementasi diharapkan untuk mengatur semua bidang setiap anggota dalam array, menunjukkan akses apa yang diberikan oleh objek keamanan yang sesuai.
Jika objek keamanan dipertimbangkan, anggota fEvaluated harus diatur ke TRUE. Dalam hal ini, anggota pObjectTypeList dan pGrantedAccessList harus panjangnya adalah elemen cObjectTypeListLength . Anggota pObjectTypeList harus menunjuk ke memori yang dimiliki oleh manajer sumber daya dan harus tetap valid sampai fungsi EditKeamanan keluar. Anggota pGrantedAccessList dikosongkan oleh pemanggil dengan menggunakan fungsi LocalFree . Jika manajer sumber daya tidak mendukung ACE objek, maka anggota pObjectTypeList harus menunjuk ke NULL GUID, anggota cObjectTypeListLength harus 1, dan anggota pGrantedAccessList harus menjadi DWORD tunggal.
Menampilkan nilai
Jika fungsi berhasil, nilai yang dikembalikan S_OK.
Jika fungsi berhasil tetapi mengembalikan hasil perkiraan, nilai yang dikembalikan S_FALSE.
Jika fungsi gagal, nilai yang dikembalikan adalah HRESULT yang menunjukkan kesalahan. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.
Keterangan
Ketika anggota Id struktur SECURITY_OBJECT diatur ke SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE, metode ComputeEffectivePermissionWithSecondarySecurity harus menggunakan anggota pData2 terlebih dahulu dan hanya kemudian mengevaluasi akses dengan menggunakan anggota pData .
Diharapkan bahwa pemanggil akan menggunakan AuthzAccessCheck untuk menentukan izin yang efektif. Jika memungkinkan, implementasi harus menginisialisasi manajer sumber daya jarak jauh pada anggota pszServerName yang disediakan, menggunakan fungsi AuthzInitializeRemoteResourceManager untuk memastikan bahwa grup dan klaim diinisialisasi dengan cara yang sama seperti ketika prinsipal benar-benar mengakses objek. Jika AuthzInitializeRemoteResourceManager gagal, implementasi dapat kembali menggunakan fungsi AuthzInitializeResourceManager dan mengembalikan S_FALSE untuk menunjukkan bahwa perkiraan hasil dikembalikan.
Untuk setiap objek keamanan sekunder yang anggota fEvaluated-nya diatur ke TRUE, editor kontrol akses akan menampilkan izin dan properti mana yang dibatasi oleh objek tersebut menggunakan anggota pwszName .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | aclui.h |
Lihat juga
AUTHZ_SECURITY_ATTRIBUTE_OPERATION
AuthzInitializeRemoteResourceManager