다음을 통해 공유


IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity 메서드(aclui.h)

ComputeEffectivePermissionWithSecondarySecurity 메서드는 개체에 대한 유효 권한을 계산합니다. 보조 또는 사용자 지정 보안 정책 통합을 지원합니다. ISecurityInformation4 인터페이스를 구현하여 이 추가 보안 정보를 제공하도록 선택할 수 있습니다. 이 메서드는 보안 주체의 액세스 토큰에 사용자 및 디바이스 권한 부여 정보가 포함된 경우의 복합 ID를 지원합니다.

구문

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
);

매개 변수

[in] pSid

유효 권한이 결정되는 보안 주체를 나타내는 SID 구조체에 대한 포인터입니다.

[in, optional] pDeviceSid

보안 주체가 개체에 액세스하는 디바이스를 나타내는 SID 구조체에 대한 포인터입니다. NULL이 아니고 AuthzAccessCheck 함수를 사용하여 유효 권한을 계산하는 경우 디바이스 SID는 AuthzInitializeCompoundContext 함수를 사용하여 pSid 매개 변수와 복합화될 수 있습니다.

[in, optional] pszServerName

개체가 있는 서버의 이름입니다. ISecurityInformation::GetObjectInformation 메서드에서 반환된 것과 동일한 이름입니다.

[in] pSecurityObjects

보안 개체의 배열입니다. 이 배열은 ISecurityInformation4::GetSecondarySecurity 메서드에서 반환된 개체 외에도 액세스 제어 편집기에서 추론된 개체로 구성됩니다.

[in] dwSecurityObjectCount

pSecurityObjects 매개 변수의 보안 개체 수와 pEffpermResultLists 매개 변수의 결과 목록 수입니다.

[in, optional] pUserGroups

pSid 매개 변수에서 초기화된 보안 컨텍스트를 수정하는 데 사용해야 하는 추가 사용자 그룹에 대한 포인터입니다. AuthzAccessCheck 함수를 사용하여 유효 권한을 계산하는 경우 AuthzContextInfoGroupsSids를 SidClass 매개 변수로 사용하여 AuthzModifySids 함수를 호출하여 수정을 수행할 수 있습니다.

[in, optional] pAuthzUserGroupsOperations

pUserGroups 인수의 각 사용자 그룹에 대해 authz 컨텍스트의 사용자 그룹을 수정하는 방법을 지정하는 AUTHZ_SID_OPERATION 구조의 배열에 대한 포인터입니다. 이 배열에는 pUserGroups 매개 변수의 그룹 수만큼 많은 요소가 포함됩니다.

[in, optional] pDeviceGroups

pSid 매개 변수 또는 pSid 및 pDeviceSid 매개 변수에서 초기화된 컨텍스트를 복합하여 만든 보안 컨텍스트를 수정하는 데 사용해야 하는 추가 디바이스 그룹에 대한 포인터입니다. AuthzAccessCheck 함수를 사용하여 유효 권한을 계산하는 경우 AuthzContextInfoDeviceSids를 SidClass 매개 변수로 사용하여 AuthzModifySids 함수를 호출하여 수정을 수행할 수 있습니다.

[in, optional] pAuthzDeviceGroupsOperations

pDeviceGroups인수의 각 디바이스 그룹에 대해 authz 컨텍스트의 디바이스 그룹을 수정하는 방법을 지정하는 AUTHZ_SID_OPERATION 열거형 형식의 배열에 대한 포인터입니다. 이 배열에는 pDeviceGroups 매개 변수의 그룹 수만큼 많은 요소가 포함됩니다.

[in, optional] pAuthzUserClaims

pSid 매개 변수에서 초기화된 보안 컨텍스트를 수정하는 데 사용해야 하는 사용자 클레임 컨텍스트가 포함된 AUTHZ_SECURITY_ATTRIBUTES_INFORMATION 구조체에 대한 포인터입니다. AuthzAccessCheck 함수를 사용하여 유효 권한을 계산하는 경우 AuthzContextInfoUserClaims를 ClaimClass 매개 변수로 사용하여 AuthzModifyClaims 함수를 호출하여 수정을 수행할 수 있습니다.

[in, optional] pAuthzUserClaimsOperations

사용자 클레임 컨텍스트와 연결된 작업을 지정하는 AUTHZ_SECURITY_ATTRIBUTE_OPERATION 열거형 형식에 대한 포인터입니다.

[in, optional] pAuthzDeviceClaims

pSid 매개 변수 또는 pSid 및 pDeviceSid 매개 변수에서 초기화된 컨텍스트를 복합하여 만든 보안 컨텍스트를 수정하는 데 사용해야 하는 디바이스 클레임 컨텍스트에 대한 포인터입니다. pDeviceSid 매개 변수가 없는 경우에도 호출자가 제공할 수 있습니다. AuthzAccessCheck 함수를 사용하여 유효 권한을 계산하는 경우 AuthzContextInfoDeviceClaims를 ClaimClass 매개 변수로 사용하여 AuthzModifyClaims 함수를 호출하여 수정을 수행할 수 있습니다.

[in, optional] pAuthzDeviceClaimsOperations

디바이스 클레임 컨텍스트와 연결된 작업을 지정하는 AUTHZ_SECURITY_ATTRIBUTE_OPERATION 열거형 형식에 대한 포인터입니다.

[in, out] pEffpermResultLists

EFFPERM_RESULT_LIST 형식의 유효 사용 권한 결과 배열에 대한 포인터입니다. 이 배열은 dwSecurityObjectCount 긴 요소입니다. 배열은 호출자에 의해 초기화되고 구현은 해당 보안 개체에 의해 부여된 액세스 권한을 나타내는 배열의 각 멤버의 모든 필드를 설정해야 합니다.

보안 개체를 고려한 경우 fEvaluated 멤버를 TRUE로 설정해야 합니다. 이 경우 pObjectTypeListpGrantedAccessList 멤버는 모두 cObjectTypeListLength 요소 길이여야 합니다. pObjectTypeList 멤버는 리소스 관리자가 소유한 메모리를 가리키고 EditSecurity 함수가 종료될 때까지 유효한 상태를 유지해야 합니다. pGrantedAccessList 멤버는 LocalFree 함수를 사용하여 호출자가 해제합니다. 리소스 관리자가 개체 ACE를 지원하지 않는 경우 pObjectTypeList 멤버는 NULL GUID를 가리키고 cObjectTypeListLength 멤버는 1이어야 하며 pGrantedAccessList 멤버는 단일 DWORD여야 합니다.

반환 값

함수가 성공하면 반환 값이 S_OK.

함수가 성공했지만 대략적인 결과를 반환하면 반환 값이 S_FALSE.

함수가 실패하면 반환 값은 오류를 나타내는 HRESULT 입니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.

설명

id멤버 SECURITY_OBJECT 구조체가 SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE 설정되면 ComputeEffectivePermissionWithSecondarySecurity 메서드는 먼저 pData2 멤버를 사용한 다음 pData 멤버를 사용하여 액세스를 평가해야 합니다.

호출자는 AuthzAccessCheck를 사용하여 유효 권한을 결정할 것으로 예상됩니다. 가능한 경우 구현은 AuthzInitializeRemoteResourceManager 함수를 사용하여 제공된 pszServerName 멤버에서 원격 리소스 관리자를 초기화하여 주체가 실제로 개체에 액세스할 때와 동일한 방식으로 그룹 및 클레임이 초기화되도록 해야 합니다. AuthzInitializeRemoteResourceManager가 실패하면 구현이 AuthzInitializeResourceManager 함수를 사용하는 것으로 대체되고 대략적인 결과가 반환됨을 나타내는 S_FALSE 반환할 수 있습니다.

fEvaluated 멤버가 TRUE로 설정된 각 보조 보안 개체에 대해 액세스 제어 편집기는 pwszName 멤버를 사용하여 해당 개체에 의해 제한된 권한 및 속성을 표시합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 aclui.h

추가 정보

AUTHZ_SECURITY_ATTRIBUTE_OPERATION

AuthzInitializeRemoteResourceManager

IEffectivePermission2

ISecurityInformation4::GetSecondarySecurity

SECURITY_OBJECT