다음을 통해 공유


프라이빗 개체에 대한 액세스 확인

보호된 서버 애플리케이션은 클라이언트가 보호된 프라이빗 개체에 액세스할 수 있도록 허용하기 전에 클라이언트의 액세스 권한을 검사 합니다. 이를 위해 서버는 가장 토큰, 보안 설명자 및 요청된 액세스 권한 집합을 AccessCheck에 전달합니다. 보안 설명자의 DACL에 있는 ACE(액세스 제어 항목)는 다양한 수탁자에게 허용되거나 거부된 액세스 권한을 지정합니다. AccessCheck 함수는 각 ACE의 트러스티와 가장 토큰에서 식별된 수탁자를 비교합니다. 액세스 권한을 부여하거나 거부하는 데 사용되는 알고리즘에 대한 설명은 DACLs가 개체에 대한 액세스를 제어하는 방법을 참조하세요.

AccessCheckAndAuditAlarm 함수는 유사한 액세스 검사 수행합니다. 또한 보안 설명자의 SACL에 따라 보안 이벤트 로그에 감사 레코드를 생성합니다.

AccessCheckByTypeAccessCheckByTypeAndAuditAlarm 함수는 속성 집합 또는 속성과 같은 개체의 하위 개체에 대한 액세스를 검사 수 있다는 점을 제외하고 AccessCheckAccessCheckAndAuditAlarm과 유사합니다. AccessCheckByTypeResultListAccessCheckByTypeResultListAndAuditAlarm 함수는 개체의 속성 및 속성 집합 계층 구조에서 각 하위 개체에 대한 액세스 검사 결과를 제공한다는 점을 제외하고 AccessCheck와 유사합니다. 이러한 함수는 OBJECT_TYPE_LIST 구조를 사용하여 액세스가 검사되는 개체의 계층 구조를 설명합니다. 감사 메시지를 생성하는 함수는 AUDIT_EVENT_TYPE 열거형 형식을 사용하여 검사되는 개체가 디렉터리 서비스 개체인지 여부를 나타냅니다. 개체 및 해당 하위 개체의 계층 구조에 대한 자세한 내용은 개체의 속성에 대한 액세스 제어를 참조하세요.

AccessCheck 및AccessCheckAndAuditAlarm 함수에 전달된 요청된 액세스 권한에는 일반 액세스 권한이 포함되어서는 안 됩니다. 서버는 MapGenericMask 함수를 사용하여 제네릭 액세스 권한을 GENERIC_MAPPING 구조에 지정된 매핑에 따라 해당 특정 및 표준 권한으로 변환할 수 있습니다.

AreAllAccessesGrantedAreAnyAccessesGranted 함수는 요청된 액세스 마스크를 부여된 액세스 마스크와 비교합니다.

AccessCheck 함수를 사용하는 샘플 코드는 C++에서 ACL을 사용하여 클라이언트 액세스 확인을 참조하세요.

ConvertToAutoInheritPrivateObjectSecurity 함수는 상속 가능한 ACE의 자동 전파를 허용하는 형식으로 보안 설명자를 만들고 반환합니다. 이 보안 설명자는 현재 보안 설명자로 상속되고 상속되지 않은 모든 AES를 포함하며 자체 상대 형식입니다. ConvertToAutoInheritPrivateObjectSecurity 함수는 현재 보안 설명자의 모든 API와 부모 보안 설명자의 모든 API를 비교하여 API가 상속되는지 또는 상속되지 않는지 여부를 결정합니다. 두 AES 그룹 간에 일대일 대응이 없을 수 있습니다. instance 읽기/쓰기 권한을 허용하는 ACE는 읽기 권한을 허용하는 ACE와 쓰기 권한을 허용하는 ACE의 두 API와 동일할 수 있습니다. 현재 보안 설명자가 부모인 경우 부모 보안 설명자를 제공하지 않을 수 있습니다.