다음을 통해 공유


제어 액세스 권한 만들기

Active Directory 서버에 대한 제어 액세스를 추가하려면 Configuration 파티션의 Extended-Rights 컨테이너에 controlAccessRight 개체를 만듭니다. 자세한 내용과 코드 예제는 제어 액세스 권한을 만들기 위한 예제 코드를 참조하세요. 제어 액세스 권한을 사용하려면 컨트롤 액세스 권한이 특수 작업 또는 속성 집합에 대한 것인지에 따라 몇 가지 단계를 더 완료해야 합니다.

속성 집합에 대한 제어 액세스 권한을 정의하는 경우 controlAccessRight 개체의 rightsGUID를 사용하여 집합의 속성을 식별합니다. 모든 속성은 Active Directory 스키 마의 attributeSchema 개체에 의해 정의됩니다. attributeSchema 개체의 attributeSecurityGUID 속성은 속성이 속한 속성 집합(있는 경우)을 식별합니다. attributeSecurityGUID 속성은 단일 값이며 GUID를 이진 형식(octet 문자열 구문)으로 저장합니다.

특정 작업에 대한 액세스에 제한을 두는 제어 액세스 권한을 정의하는 경우 사용자가 작업을 시도할 때 애플리케이션에서 액세스 검사 수행해야 합니다.

액세스 검사 설정하려면

  1. 애플리케이션 또는 서비스에 대한 액세스 유형을 정의하는 제어 액세스 권한을 만듭니다. 자세한 내용은 다음 코드 예제를 참조하세요.
  2. 보호 중인 애플리케이션, 서비스 또는 리소스를 나타내는 Active Directory Domain Services 개체를 만듭니다.
  3. 개체 보안 설명자의 DACL에 개체 ACE를 추가하여 사용자에게 해당 개체에 대한 액세스 권한을 부여하거나 거부하거나 해당 개체에 대한 제어 액세스 권한을 그룹화합니다. 자세한 내용은 개체의 ACL에서 제어 액세스 권한 ACE 설정을 참조하세요.
  4. 사용자가 작업을 수행하려고 하면 개체 보안 설명자 및 사용자 액세스 토큰을 AccessCheckByTypeResultList 함수에 전달하여 사용자 권한을 확인합니다. 자세한 내용은 개체의 ACL에서 액세스 권한 제어 확인을 참조하세요.

개체에 대한 액세스 검사 결과에 따라 애플리케이션 또는 서비스는 애플리케이션 또는 서비스에 대한 사용자 액세스를 허용하거나 거부할 수 있습니다.

controlAccessRight 개체를 만들 때 다음 표에 나열된 특성을 설정하여 개체를 Active Directory Domain Services 및 Windows 보안 시스템에서 인식할 수 있는 법적 제어 액세스 권한으로 만듭니다.

attribute Description
cn Extended-Rights 컨테이너에서 개체의 RDN(상대 고유 이름)인 단일 값 속성입니다. cn은 Active Directory Domain Services 액세스 제어의 이름입니다.
Appliesto 액세스 제어 권한이 적용되는 개체 클래스를 나열하는 다중값 속성입니다. 예를 들어 Send-As 액세스 제어 권한은 appliesTo 속성의 사용자컴퓨터 개체 클래스를 나열합니다. 목록에서 각 개체 클래스는 해당 classSchema 개체의 schemaIDGUID로 식별됩니다. GUID는 COM 라이브러리의 StringFromGUID2 함수에서 생성된 폼의 문자열로 저장되지만 시작 및 종료 중괄호({ })가 없습니다. 예를 들어 다음 GUID는 컴퓨터 클래스에 대한 schemaIDGUID입니다. bf967a86-0de6-11d0-a285-00aa003049e2.
classSchema 개체의 schemaIDGUID 속성은 octet 문자열 구문을 사용하여 이진 GUID로 저장됩니다. 이 8진수 문자열 형식을 appliesTo 속성에 사용된 문자열 형식으로 변환하려면 StringFromGUID2 함수를 사용하고 반환된 문자열에서 중괄호를 제거합니다.
사용자 또는 컴퓨터와 같이 미리 정의된 개체 클래스 중 하나의 schemaIDGUID 속성에 대한 자세한 내용은 Active Directory Domain Services 참조의 Active Directory 스키마 참조에 있는 클래스 참조 페이지를 참조하세요. classSchema 개체에서 schemaIDGUID 를 검색하는 코드 예제 및 자세한 내용은 Reading attributeSchema 및 classSchema Objects를 참조하세요.
displayName 보안 속성 페이지 및 Active Directory 사용자 및 컴퓨터 MMC 스냅인의 다른 위치와 같은 사용자 인터페이스에서 액세스 제어를 표시하는 데 사용되는 문자열입니다.
rightsGuid ACE에서 바로 제어 액세스를 식별하는 GUID입니다. GUID는 StringFromGUID2 함수에서 생성된 폼의 문자열로 저장되지만 시작 및 종료 중괄호는 저장되지 않습니다. 다른 유틸리티에 Uuidgen.exe 사용하여 제어 액세스 권한에 대한 GUID를 생성합니다. 새 속성 집합을 정의하는 경우 controlAccessRight 개체의 rightsGuid를 사용하여 집합의 속성을 식별합니다. 속성 집합의 각 속성에 대해 속성의 attributeSecurityGUID 값을 속성 집합의 rightsGUID 값으로 설정합니다. 속성의 attributeSecurityGUID 값은 Active Directory 스키마에 있는 속성의 attributeSchema 정의에 저장됩니다. attributeSecurityGUID 속성은 단일 값이며 GUID를 이진 형식(octet 문자열 구문)으로 저장합니다.
objectClass 이 특성은 controlAccessRight를 개체 클래스로 지정합니다.
validAccesses 속성 집합의 경우 이 특성을 0x30(ADS_RIGHT_DS_READ_PROP ADS_RIGHT_DS_WRITE_PROP | )로 설정합니다. 제어 액세스 권한의 경우 이 특성을 0x100(ADS_RIGHT_DS_CONTROL_ACCESS)로 설정합니다. 보안 속성 페이지는 validAccesses 특성이 적절한 값으로 설정된 경우에만 제어 액세스 권한을 인식합니다. 0이면 보안 속성 페이지에서 제어 액세스 권한이 무시되거나 표시되지 않습니다.

미리 정의된 스키마 클래스는 controlAccessRight 개체의 localizationDisplayId 특성을 사용하여 Dssec.dll 지역화된 표시 이름을 검색하는 데 사용되는 메시지 식별자를 지정합니다. 새 controlAccessRight 개체를 정의하는 경우 localizationDisplayId 특성을 설정하지 마세요.