애플리케이션 및 서비스 개발자가 그룹에 대해 알아야 할 사항
애플리케이션 또는 서비스를 개발할 때 그룹을 사용하여 관리 권한을 위임하거나 애플리케이션 또는 서비스에 대한 액세스를 전체 또는 일부로 제어할 수 있습니다. 예를 들어 애플리케이션은 다양한 관리 작업을 수행할 수 있는 사용자를 제어할 수 있습니다. 이렇게 하려면 적절한 그룹에 지정된 액세스 권한을 부여하는 ACE를 만듭니다. 개별 사용자 또는 컴퓨터에 대한 액세스 권한을 부여하는 여러 ACE가 있는 것보다 그룹에 대한 액세스 권한을 부여하는 ACE를 사용하는 것이 좋은 프로그래밍 방법입니다.
애플리케이션은 그룹을 사용할 때 다음 지침을 사용하는 것이 좋습니다.
- 그룹이 삭제되거나 이동되는 경우 복잡성을 일으킬 수 있는 하드 코딩된 그룹에 대한 종속성을 만들지 마세요.
- 그룹의 함수가 애플리케이션에 대한 특정 요구 사항을 제공하지 않는 한 기본 제공 그룹을 사용하지 않습니다. 예를 들어 사용자에게 컴퓨터 계정을 만들 수 있는 권한을 제공하기 위해 사용자가 Administrators 그룹의 구성원이 되도록 요구하지 마세요. 이렇게 하면 사용자에게 필요하지 않을 수 있는 권한과 권한이 제공되므로 보안 취약성이 발생할 수 있습니다. 대신 필요한 특정 권한이 있는 새 보안 그룹을 만들고 사용자를 이 새 그룹에 추가해야 합니다.
- 새 그룹을 만들 때 다음 권장 사항에 유의하세요.
- 구성원을 추가하거나 제거할 수 있는 사용자를 제어하는 ACE를 설정하여 그룹을 보호합니다.
- Active Directory Domain Services 개체에 대한 액세스 제어에 사용되는 경우 전역 그룹을 사용합니다.
- 필요한 경우에만 범용 그룹을 사용합니다(멤버 데이터는 전역 카탈로그를 사용하여 전역적으로 필요하며 그룹은 사용자/그룹을 포함할 수 있음). 범용 그룹을 사용하는 경우 전역 그룹을 유니버설 그룹에 배치하고 전역 그룹에서 사용자를 추가/제거합니다. 복제 효율성을 위해 범용 그룹에 대한 과도한 변경을 방지합니다.
- 액세스 제어에 그룹 멤버 자격을 사용하지 마세요. 대신 시스템에서 액세스 검사 수행하게 하여 ACE 및 제어 액세스를 사용합니다.
Active Directory 도메인 서비스의 개체에 대해 미리 정의된 액세스 권한 내에 맞지 않는 작업에 대한 액세스를 제어하려면 Windows 2000에서 액세스 제어의 액세스 권한 제어 기능을 사용합니다. 자세한 내용은 ADS_RIGHTS_ENUM 참조하세요.
제어 액세스 권한을 사용하여 작업을 수행할 수 있는 권한을 제어하려면
- 애플리케이션 또는 서비스에 대한 액세스 유형을 정의하는 제어 액세스 권한을 만듭니다. 자세한 내용은 액세스 권한 제어를 참조하세요.
- Active Directory Domain Services 애플리케이션, 서비스 또는 리소스를 나타내는 개체를 만듭니다.
- 개체 보안 설명자의 DACL에 개체 ACE를 추가하여 해당 개체에 대한 제어 액세스 권한을 사용자 또는 그룹에 부여하거나 거부합니다. 자세한 내용은 개체에 대한 액세스 권한 설정을 참조하세요.
- 사용자가 보호된 작업을 수행하려고 하면 애플리케이션 또는 서비스에서 AccessCheckByTypeResultList 함수를 사용하여 제어 액세스 권한이 사용자에게 부여되는지 여부를 확인합니다. 자세한 내용은 개체의 ACL에서 제어 액세스 권한 확인을 참조하세요.
- 개체에 대한 액세스 검사 결과에 따라 애플리케이션 또는 서비스에서 애플리케이션 또는 서비스에 대한 사용자 액세스 권한을 부여하거나 거부할 수 있습니다.
서비스 애플리케이션은 멤버가 다양한 서비스 인스턴스인 그룹을 만들 수도 있습니다. 예를 들어 엔터프라이즈 전체의 여러 컴퓨터에 인스턴스가 설치된 서비스에는 모든 서비스 인스턴스가 쓰는 공통 로그 파일이 있을 수 있습니다. 서비스 설치 프로그램은 로그 파일을 만들고 DACL을 사용하여 그룹 구성원에게만 액세스 권한을 부여합니다. 그룹 구성원은 다양한 서비스 인스턴스가 실행되는 사용자 계정이거나, 서비스가 LocalSystem 계정으로 실행되는 경우 멤버는 호스트 서버의 컴퓨터 계정이 됩니다.