Bagikan melalui


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

IEffectivePermission2

ISecurityInformation4::GetSecondarySecurity

SECURITY_OBJECT