새 디렉터리 개체에 대한 보안 설명자 만들기

ADSI를 사용하여 보안 설명자를 만들고 새 개체의 nTSecurityDescriptor 속성으로 설정하거나 기존 개체의 nTSecurityDescriptor 속성을 바꾸는 데 사용할 수 있습니다.

개체에 대한 보안 설명자를 만들려면 다음을 수행합니다.

  1. CoCreateInstance를 사용하여 새 보안 설명자에 대한 ADSI COM 개체를 만들고 해당 개체에 대한 IADsSecurityDescriptor 인터페이스 포인터를 가져옵니다. 클래스 ID가 CLSID_SecurityDescriptor.
  2. IADsSecurityDescriptor::p ut_Owner 메서드를 사용하여 개체의 소유자를 설정합니다. 트러스티는 사용자, 그룹 또는 기타 보안 주체입니다. 애플리케이션은 ACE를 적용할 수탁자의 사용자 또는 그룹 개체에서 적절한 속성의 값을 사용해야 합니다.
  3. IADsSecurityDescriptor::p ut_Control 메서드를 사용하여 DACL 및 SACL이 부모 컨테이너에서 개체에 상속되는지 여부를 제어합니다.
  4. CoCreateInstance를 사용하여 새 보안 설명자에 대한 DACL에 대한 ADSI COM 개체를 만들고 해당 개체에 대한 IADsAccessControlList 인터페이스 포인터를 가져옵니다. 클래스 ID가 CLSID_AccessControlList.
  5. DACL에 추가할 각 ACE에 대해 CoCreateInstance 를 사용하여 새 ACE에 대한 ADSI COM 개체를 만들고 해당 개체에 대한 IADsAccessControlEntry 인터페이스 포인터를 가져옵니다. 클래스 ID가 CLSID_AccessControlEntry.
  6. DACL에 추가할 각 ACE에 대해 ACE의 IADsAccessControlEntry 개체의 속성 메서드를 사용하여 ACE의 속성을 설정합니다. ACE에서 설정할 속성에 대한 자세한 내용은 개체에 대한 액세스 권한 설정을 참조하세요.
  7. DACL에 추가할 각 ACE에 대해 IADsAccessControlEntry 개체에서 QueryInterface 메서드를 사용하여 IDispatch 포인터를 가져옵니다. IADsAccessControlList::AddAce 메서드에는 ACE에 대한 IDispatch 인터페이스 포인터가 필요합니다.
  8. DACL에 추가할 각 ACE에 대해 IADsAccessControlList::AddAce 를 사용하여 DACL에 새 ACE를 추가합니다. ACL 내의 AES 순서는 개체에 대한 액세스 평가에 영향을 줄 수 있습니다. 개체에 올바르게 액세스하려면 새 ACL을 만들고, 기존 ACL의 ACL을 새 ACL에 올바른 순서로 추가한 다음, 보안 설명자의 기존 ACL을 새 ACL로 바꿔야 할 수 있습니다. 자세한 내용은 DACL의 ACE 순서를 참조하세요.
  9. 4-8단계에 따라 새 보안 설명자에 대한 SACL을 만듭니다.
  10. IADsSecurityDescriptor::p ut_DiscretionaryAcl 메서드를 사용하여 DACL을 설정합니다. DACL에 대한 자세한 내용은 Null DACL 및 빈 DACL을 참조하세요.
  11. IADsSecurityDescriptor::p ut_SystemAcl 메서드를 사용하여 SACL을 설정합니다.
  12. IADsSecurityDescriptor 개체의 QueryInterface 메서드를 사용하여 IADsSecurityDescriptor 개체를 VARIANT로 변환하여 IDispatch 인터페이스를 가져옵니다. 그런 다음 VARIANTvt 멤버를 VT_DISPATCH 설정하고 VARIANTpdispVal 멤버를 IDispatch 포인터와 동일하게 설정합니다.
  13. 개체에 대한 IADs 인터페이스 포인터를 가져옵니다.
  14. "nTSecurityDescriptor"와 함께 IADs::P ut 메서드를 사용하고 위에서 만든 VARIANT 를 사용하여 속성 캐시에 새 보안 설명자를 작성합니다.
  15. IADs::SetInfo 메서드를 사용하여 디렉터리의 개체에 대한 속성을 업데이트합니다.