Método IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity (aclui.h)
El método ComputeEffectivePermissionWithSecondarySecurity calcula los permisos efectivos de un objeto. Admite la integración de directivas de seguridad secundarias o personalizadas. Puede optar por proporcionar esta información de seguridad adicional mediante la implementación de la interfaz ISecurityInformation4 . Este método admite la identidad compuesta, que es cuando el token de acceso de una entidad de seguridad contiene información de autorización de usuario y dispositivo.
Sintaxis
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
);
Parámetros
[in] pSid
Puntero a una estructura de SID que representa la entidad de seguridad cuyo permiso efectivo se determina.
[in, optional] pDeviceSid
Puntero a una estructura de SID que representa el dispositivo desde el que la entidad de seguridad tiene acceso al objeto. Si no es NULL y usa la función AuthzAccessCheck para calcular los permisos efectivos, el SID del dispositivo puede estar compuesto con el parámetro pSid mediante la función AuthzInitializeCompoundContext .
[in, optional] pszServerName
Nombre del servidor en el que reside el objeto. Este es el mismo nombre que se devolvió desde el método ISecurityInformation::GetObjectInformation .
[in] pSecurityObjects
Matriz de objetos de seguridad. Esta matriz se compone de objetos que se han deducido por el editor de control de acceso, además de los devueltos por el método ISecurityInformation4::GetSecondarySecurity .
[in] dwSecurityObjectCount
Número de objetos de seguridad en el parámetro pSecurityObjects y el número de listas de resultados en el parámetro pEffpermResultLists .
[in, optional] pUserGroups
Puntero a grupos de usuarios adicionales que se deben usar para modificar el contexto de seguridad que se inicializó desde el parámetro pSid . Si usa la función AuthzAccessCheck para calcular los permisos efectivos, la modificación se puede realizar llamando a la función AuthzModifySids mediante AuthzContextInfoGroupsSids como parámetro SidClass .
[in, optional] pAuthzUserGroupsOperations
Puntero a una matriz de estructuras de AUTHZ_SID_OPERATION que especifican cómo se deben modificar los grupos de usuarios en el contexto de authz para cada grupo de usuarios en el argumento pUserGroups . Esta matriz contiene tantos elementos como el número de grupos en el parámetro pUserGroups .
[in, optional] pDeviceGroups
Puntero a grupos de dispositivos adicionales que se deben usar para modificar el contexto de seguridad que se inicializó desde el parámetro pSid o uno creado mediante la combinación de los contextos inicializados a partir de los parámetros pSid y pDeviceSid . Si usa la función AuthzAccessCheck para calcular los permisos efectivos, la modificación se puede realizar llamando a la función AuthzModifySids mediante AuthzContextInfoDeviceSids como parámetro SidClass .
[in, optional] pAuthzDeviceGroupsOperations
Puntero a una matriz de AUTHZ_SID_OPERATION tipos de enumeración que especifican cómo se deben modificar los grupos de dispositivos en el contexto de authz para cada grupo de dispositivos del argumento pDeviceGroups . Esta matriz contiene tantos elementos como el número de grupos en el parámetro pDeviceGroups .
[in, optional] pAuthzUserClaims
Puntero a una estructura de AUTHZ_SECURITY_ATTRIBUTES_INFORMATION que contiene el contexto de notificaciones de usuario que se debe usar para modificar el contexto de seguridad que se inicializó a partir del parámetro pSid . Si usa la función AuthzAccessCheck para calcular los permisos efectivos, la modificación se puede realizar llamando a la función AuthzModifyClaims mediante AuthzContextInfoUserClaims como parámetro ClaimClass .
[in, optional] pAuthzUserClaimsOperations
Puntero a un tipo de enumeración AUTHZ_SECURITY_ATTRIBUTE_OPERATION que especifica las operaciones asociadas al contexto de notificaciones del usuario.
[in, optional] pAuthzDeviceClaims
Puntero al contexto de notificaciones del dispositivo que se debe usar para modificar el contexto de seguridad que se inicializó desde el parámetro pSid o uno creado mediante la combinación de los contextos inicializados a partir de los parámetros pSid y pDeviceSid . Esto puede ser proporcionado por el autor de la llamada, incluso si el parámetro pDeviceSid no es . Si usa la función AuthzAccessCheck para calcular los permisos efectivos, la modificación se puede realizar llamando a la función AuthzModifyClaims mediante AuthzContextInfoDeviceClaims como parámetro ClaimClass .
[in, optional] pAuthzDeviceClaimsOperations
Puntero a un tipo de enumeración AUTHZ_SECURITY_ATTRIBUTE_OPERATION que especifica las operaciones asociadas al contexto de notificaciones del dispositivo.
[in, out] pEffpermResultLists
Puntero a una matriz de los resultados de permisos efectivos del tipo EFFPERM_RESULT_LIST. Esta matriz es los elementos dwSecurityObjectCount largos. El autor de la llamada inicializa la matriz y se espera que la implementación establezca todos los campos de cada miembro de la matriz, lo que indica qué acceso concedió el objeto de seguridad correspondiente.
Si se ha considerado un objeto de seguridad, el miembro fEvaluated debe establecerse en TRUE. En este caso, los miembros pObjectTypeList y pGrantedAccessList deben ser elementos cObjectTypeListLength long. El miembro pObjectTypeList debe apuntar a la memoria que pertenece al administrador de recursos y debe permanecer válido hasta que se cierre la función EditSecurity . El autor de la llamada libera el miembro pGrantedAccessList mediante la función LocalFree . Si el administrador de recursos no admite acees de objeto, el miembro pObjectTypeList debe apuntar al GUID NULL , el miembro cObjectTypeListLength debe ser 1 y el miembro pGrantedAccessList debe ser un único DWORD.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto se S_OK.
Si la función se ejecuta correctamente pero devuelve un resultado aproximado, el valor devuelto es S_FALSE.
Si se produce un error en la función, el valor devuelto es un VALOR HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.
Comentarios
Cuando el miembro Id de la estructura SECURITY_OBJECT se establece en SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE, el método ComputeEffectivePermissionWithSecondarySecurity debe usar primero el miembro pData2 y, a continuación, evaluar el acceso mediante el miembro pData .
Se espera que el autor de la llamada use AuthzAccessCheck para determinar los permisos efectivos. Cuando sea posible, la implementación debe inicializar un administrador de recursos remoto en el miembro pszServerName proporcionado, mediante la función AuthzInitializeRemoteResourceManager para asegurarse de que los grupos y las notificaciones se inicializan de la misma manera que cuando la entidad de seguridad accede realmente al objeto. Si se produce un error en AuthzInitializeRemoteResourceManager , la implementación puede revertir al uso de la función AuthzInitializeResourceManager y devolver S_FALSE para indicar que se devuelven los resultados aproximados.
Para cada uno de los objetos de seguridad secundarios cuyo miembro fEvaluated está establecido en TRUE, el editor de control de acceso mostrará qué permisos y propiedades estaban limitados por ese objeto mediante el miembro pwszName .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | aclui.h |
Consulte también
AUTHZ_SECURITY_ATTRIBUTE_OPERATION
AuthzInitializeRemoteResourceManager