개체의 속성에 대한 액세스를 제어하는 ACE
DS(디렉터리 서비스) 개체의 DACL( 임의 액세스 제어 목록 )에는 다음과 같이 ACE( 액세스 제어 항목 ) 계층 구조가 포함될 수 있습니다.
- 개체 자체를 보호하는 ACE
- 개체에 설정된 지정된 속성을 보호하는 개체별 ACE
- 개체에서 지정된 속성을 보호하는 개체별 ACE
이 계층 구조 내에서 더 높은 수준에서 부여되거나 거부된 권한도 하위 수준에 적용됩니다. 예를 들어 속성 집합의 개체별 ACE가 트러스티에게 ADS_RIGHT_DS_READ_PROP 권한을 허용하는 경우 트러스티는 해당 속성 집합의 모든 속성에 대한 암시적 읽기 액세스 권한을 갖습니다. 마찬가지로 ADS_RIGHT_DS_READ_PROP 액세스를 허용하는 개체 자체의 ACE는 트러스티에게 개체의 모든 속성에 대한 읽기 권한을 부여합니다.
다음 그림에서는 가상 DS 개체의 트리와 해당 속성 집합 및 속성을 보여 줍니다.
이 DS 개체의 속성에 다음 액세스를 허용하려는 경우를 가정해 보겠습니다.
- 개체의 모든 속성에 대한 그룹 A 읽기/쓰기 권한 허용
- 속성 D를 제외한 모든 속성에 다른 모든 사용자 읽기/쓰기 권한 허용
이렇게 하려면 다음 표와 같이 개체의 DACL에서 ACE를 설정합니다.
트러스티 | 개체 GUID | ACE 유형 | 액세스 권한 |
---|---|---|---|
그룹 A | 없음 | 액세스 허용 ACE | ADS_RIGHT_DS_READ_PROP | ADS_RIGHT_DS_WRITE_PROP |
모든 사람 | 속성 집합 1 | 액세스 허용 개체 ACE | ADS_RIGHT_DS_READ_PROP | ADS_RIGHT_DS_WRITE_PROP |
모든 사람 | 속성 C | 액세스 허용 개체 ACE | ADS_RIGHT_DS_READ_PROP | ADS_RIGHT_DS_WRITE_PROP |
그룹 A에 대한 ACE에는 개체 GUID가 없으므로 모든 개체의 속성에 액세스할 수 있습니다. 속성 집합 1에 대한 개체별 ACE를 사용하면 모든 사용자가 속성 A 및 B에 액세스할 수 있습니다. 다른 개체별 ACE를 사용하면 모든 사용자가 Property C에 액세스할 수 있습니다. 이 DACL에는 액세스 거부 API가 없지만 그룹 A를 제외한 모든 사용자에 대한 Property D 액세스를 암시적으로 거부합니다.
사용자가 개체의 속성에 액세스하려고 하면 요청된 액세스가 명시적으로 부여되거나 거부되거나 더 이상 ACE가 없을 때까지 시스템에서 ACE를 순서대로 확인합니다. 이 경우 액세스가 암시적으로 거부됩니다.
시스템은 다음을 평가합니다.
- 개체 자체에 적용되는 ACE
- 액세스되는 속성을 포함하는 속성 집합에 적용되는 개체별 ACE
- 액세스되는 속성에 적용되는 개체별 ACE
시스템은 다른 속성 집합 또는 속성에 적용되는 개체별 ACE를 무시합니다.