다음을 통해 공유


제어 액세스 권한 만들기

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

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

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

액세스 확인을 설정하려면

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

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

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

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