IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity-Methode (aclui.h)
Die ComputeEffectivePermissionWithSecondarySecurity-Methode berechnet die effektiven Berechtigungen für ein Objekt. Es unterstützt die Integration sekundärer oder benutzerdefinierter Sicherheitsrichtlinien. Sie können diese zusätzlichen Sicherheitsinformationen angeben, indem Sie die ISecurityInformation4-Schnittstelle implementieren. Diese Methode unterstützt zusammengesetzte Identitäten, wenn das Zugriffstoken eines Prinzipals Benutzer- und Geräteautorisierungsinformationen enthält.
Syntax
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
Ein Zeiger auf eine SID-Struktur , die den Sicherheitsprinzipal darstellt, dessen effektive Berechtigung bestimmt wird.
[in, optional] pDeviceSid
Ein Zeiger auf eine SID-Struktur , die das Gerät darstellt, von dem aus der Prinzipal auf das Objekt zugreift. Wenn dies nicht NULL ist und Sie die AuthzAccessCheck-Funktion verwenden, um die effektiven Berechtigungen zu berechnen, kann die Geräte-SID mithilfe der AuthzInitializeCompoundContext-Funktion mit dem Parameter pSid zusammengesetzt werden.
[in, optional] pszServerName
Der Name des Servers, auf dem sich das Objekt befindet. Dies ist derselbe Name, der von der ISecurityInformation::GetObjectInformation-Methode zurückgegeben wurde.
[in] pSecurityObjects
Ein Array von Sicherheitsobjekten. Dieses Array besteht aus Objekten, die vom Zugriffssteuerungs-Editor abgeleitet wurden, zusätzlich zu den Objekten, die von der ISecurityInformation4::GetSecondarySecurity-Methode zurückgegeben wurden.
[in] dwSecurityObjectCount
Die Anzahl der Sicherheitsobjekte im pSecurityObjects-Parameter und die Anzahl der Ergebnisse, die im pEffpermResultLists-Parameter aufgeführt sind.
[in, optional] pUserGroups
Ein Zeiger auf zusätzliche Benutzergruppen, die zum Ändern des Sicherheitskontexts verwendet werden sollen, der aus dem pSid-Parameter initialisiert wurde. Wenn Sie die AuthzAccessCheck-Funktion verwenden, um die effektiven Berechtigungen zu berechnen, kann die Änderung durch Aufrufen der AuthzModifySids-Funktion mithilfe von AuthzContextInfoGroupsSids als SidClass-Parameter erfolgen.
[in, optional] pAuthzUserGroupsOperations
Zeiger auf ein Array von AUTHZ_SID_OPERATION Strukturen, die angeben, wie die Benutzergruppen im authz-Kontext für jede Benutzergruppe im pUserGroups-Argument geändert werden müssen. Dieses Array enthält so viele Elemente wie die Anzahl von Gruppen im pUserGroups-Parameter .
[in, optional] pDeviceGroups
Ein Zeiger auf zusätzliche Gerätegruppen, die verwendet werden sollen, um den Sicherheitskontext zu ändern, der aus dem pSid-Parameter initialisiert wurde, oder einen, der durch Das Anfügen der Kontexte erstellt wurde, die aus den Parametern pSid und pDeviceSid initialisiert wurden. Wenn Sie die AuthzAccessCheck-Funktion verwenden, um die effektiven Berechtigungen zu berechnen, kann die Änderung durch Aufrufen der AuthzModifySids-Funktion mithilfe von AuthzContextInfoDeviceSids als SidClass-Parameter erfolgen.
[in, optional] pAuthzDeviceGroupsOperations
Zeiger auf ein Array von AUTHZ_SID_OPERATION Enumerationstypen, die angeben, wie die Gerätegruppen im authz-Kontext für jede Gerätegruppe im Argument pDeviceGroups geändert werden müssen. Dieses Array enthält so viele Elemente wie die Anzahl von Gruppen im pDeviceGroups-Parameter .
[in, optional] pAuthzUserClaims
Zeiger auf eine AUTHZ_SECURITY_ATTRIBUTES_INFORMATION-Struktur , die den Benutzeranspruchskontext enthält, der verwendet werden soll, um den Sicherheitskontext zu ändern, der aus dem pSid-Parameter initialisiert wurde. Wenn Sie die AuthzAccessCheck-Funktion verwenden, um die effektiven Berechtigungen zu berechnen, kann die Änderung durch Aufrufen der AuthzModifyClaims-Funktion mithilfe von AuthzContextInfoUserClaims als ClaimClass-Parameter erfolgen.
[in, optional] pAuthzUserClaimsOperations
Zeiger auf einen AUTHZ_SECURITY_ATTRIBUTE_OPERATION Enumerationstyp, der die Vorgänge angibt, die dem Benutzeranspruchskontext zugeordnet sind.
[in, optional] pAuthzDeviceClaims
Ein Zeiger auf den Geräteanspruchskontext, der verwendet werden soll, um den Sicherheitskontext zu ändern, der aus dem pSid-Parameter initialisiert wurde, oder einer, der durch Das Compoundieren der Kontexte erstellt wurde, die aus den Parametern pSid und pDeviceSid initialisiert wurden. Dies kann vom Aufrufer bereitgestellt werden, auch wenn der pDeviceSid-Parameter nicht ist. Wenn Sie die AuthzAccessCheck-Funktion verwenden, um die effektiven Berechtigungen zu berechnen, kann die Änderung durch Aufrufen der AuthzModifyClaims-Funktion mithilfe von AuthzContextInfoDeviceClaims als ClaimClass-Parameter erfolgen.
[in, optional] pAuthzDeviceClaimsOperations
Zeiger auf einen AUTHZ_SECURITY_ATTRIBUTE_OPERATION Enumerationstyp, der die Vorgänge angibt, die dem Geräteanspruchskontext zugeordnet sind.
[in, out] pEffpermResultLists
Ein Zeiger auf ein Array der effektiven Berechtigungsergebnisse vom Typ EFFPERM_RESULT_LIST. Dieses Array ist dwSecurityObjectCount-Elemente lang. Das Array wird vom Aufrufer initialisiert, und von der Implementierung wird erwartet, dass alle Felder der einzelnen Member im Array festgelegt werden, was angibt, welcher Zugriff vom entsprechenden Sicherheitsobjekt gewährt wurde.
Wenn ein Sicherheitsobjekt in Betracht gezogen wurde, sollte das fEvaluierte Element auf TRUE festgelegt werden. In diesem Fall sollten die Elemente pObjectTypeList und pGrantedAccessList lang cObjectTypeListLength sein. Das pObjectTypeList-Element muss auf den Speicher verweisen, der sich im Besitz des Ressourcen-Managers befindet, und muss gültig bleiben, bis die EditSecurity-Funktion beendet wird. Das pGrantedAccessList-Element wird vom Aufrufer mithilfe der LocalFree-Funktion freigegeben. Wenn der Ressourcen-Manager keine Objekt-ACEs unterstützt, sollte das pObjectTypeList-Element auf die NULL-GUID , das cObjectTypeListLength-Element 1 und das pGrantedAccessList-Element ein einzelnes DWORD sein.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert S_OK.
Wenn die Funktion erfolgreich ist, aber ein ungefähres Ergebnis zurückgegeben hat, wird der Rückgabewert S_FALSE.
Wenn die Funktion fehlschlägt, ist der Rückgabewert ein HRESULT, das den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.
Hinweise
Wenn das Id-Element der SECURITY_OBJECT-Struktur auf SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE festgelegt ist, sollte die ComputeEffectivePermissionWithSecondarySecurity-Methode zuerst den pData2-Member verwenden und dann erst den Zugriff mithilfe des pData-Elements auswerten.
Es wird erwartet, dass der Aufrufer AuthzAccessCheck verwendet, um die effektiven Berechtigungen zu bestimmen. Wenn möglich, sollte die Implementierung einen Remoteressourcen-Manager auf dem angegebenen pszServerName-Member initialisieren, wobei die AuthzInitializeRemoteResourceManager-Funktion verwendet wird, um sicherzustellen, dass die Gruppen und Ansprüche auf die gleiche Weise initialisiert werden, wie der Prinzipal tatsächlich auf das Objekt zugreift. Wenn AuthzInitializeRemoteResourceManager fehlschlägt, kann die Implementierung auf die Verwendung der AuthzInitializeResourceManager-Funktion zurückgreifen und S_FALSE zurückgeben, um anzugeben, dass ungefähre Ergebnisse zurückgegeben werden.
Für jedes sekundäre Sicherheitsobjekt, dessen fEvaluated-Member auf TRUE festgelegt ist, zeigt der Zugriffssteuerungs-Editor mithilfe des pwszName-Elements an, welche Berechtigungen und Eigenschaften von diesem Objekt eingeschränkt wurden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | aclui.h |
Weitere Informationen
AUTHZ_SECURITY_ATTRIBUTE_OPERATION
AuthzInitializeRemoteResourceManager