Share via


ICertPolicy 인터페이스(certpol.h)

ICertPolicy 인터페이스는 인증서 서비스 서버 엔진과 정책 모듈 간의 통신을 제공합니다.

참고 정책 모듈은 ICertServerPolicy 인터페이스를 사용하여 Certificate Services 서버 엔진과 통신할 수 있습니다.
 
Certificate Services 서버 엔진은 ICertPolicy 메서드를 호출하여 다음 작업을 수행합니다.
  • 정책 모듈을 초기화합니다.
  • 새 요청이 시스템에 입력되었음을 정책 모듈에 알립니다. 그런 다음 정책 모듈은 ICertServerPolicy 인터페이스의 메서드를 사용하여 요청이 양호하고 발급되어야 하며, 잘못되었거나, 거부되어야 하며, 나중에 고려할 수 있도록 보관해야 함을 나타낼 수 있습니다.
  • 정책 모듈 및 해당 기능에 대한 설명을 검색합니다.
  • 인증서 서비스 서버가 종료되고 있음을 정책 모듈에 알립니다.

정책 모듈은 ICertPolicyICertManageModule을 모두 구현해야 합니다.

ICertPolicy 는 Certpol.h에 정의되어 있습니다. 그러나 프로그램을 만들 때는 Certsrv.h를 포함 파일로 사용합니다.

Certificate Services 인터페이스는 아파트 스레딩 및 자유 스레딩 모델을 모두 지원합니다. 더 나은 처리량을 위해 무료 스레딩이 권장됩니다.

상속

ICertPolicy 인터페이스는 IDispatch 인터페이스에서 상속됩니다. ICertPolicy 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

ICertPolicy 인터페이스에는 이러한 메서드가 있습니다.

 
ICertPolicy::GetDescription

정책 모듈 및 해당 함수에 대해 사람이 읽을 수 있는 설명을 반환합니다.
ICertPolicy::Initialize

정책 모듈이 초기화 작업을 수행할 수 있도록 서버 엔진에서 호출됩니다.
ICertPolicy::ShutDown

서버가 종료되기 전에 서버 엔진에서 호출됩니다.
ICertPolicy::VerifyRequest

정책 모듈에 새 요청이 시스템에 입력되었음을 알 수 있습니다.

설명

독립 실행형 인증 기관 만 사용자 지정 정책 또는 종료 모듈을 사용해야 합니다. 엔터프라이즈 인증 기관을 실행하는 경우 Microsoft에서 제공하는 정책 및 종료 모듈을 사용하는 것이 좋습니다.

ICertPolicy 구현자는 ICertManageModule도 구현해야 합니다. 또한 ICertPolicy 를 구현하는 클래스의 ProgID는 명명 규칙을 준수해야 합니다. 특히 ProgID는 다음과 같은 형식이어야 합니다.

"MyApp. 정책"

여기서 MyApp 은 애플리케이션을 식별하는 지정자입니다. 예를 들어 C++에서는 ICertPolicy를 구현하는 클래스(CMyCertPolicyModule)의 DECLARE_REGISTRY 매크로에서 다음 코드를 사용할 수 있습니다.

DECLARE_REGISTRY(
    CMyCertPolicyModule,
    L"MyCode.Policy.1",
    L"MyCode.Policy",
    IDS_CERTPOLICYMODULE_DESC,
    THREADFLAGS_BOTH);

이전 예제에서 IDS_CERTPOLICYMODULE_DESC 값은 클래스를 설명하는 문자열에 대한 리소스 파일(.rc)의 애플리케이션별 식별자입니다.

Certmod.h에 정의된 문자열 상수를 사용하여 명명 규칙에 따라 간소화할 수 있습니다.

상수
wszCERTPOLICYMODULE_POSTFIX TEXT(". 정책")
 

한 번에 둘 이상의 Visual Basic Scripting Edition 정책 모듈을 인증서 서비스 서버에 등록할 수 없습니다. 두 개 이상의 정책 모듈이 인증서 서비스 서버에 등록된 경우 인증 기관 MMC 스냅인, 인증서 서비스 애플리케이션 또는 certutil 명령줄 프로그램에서 오류가 발생할 수 있습니다. Visual Basic Scripting Edition 개발 환경은 성공적으로 빌드될 때 DLL을 자동으로 등록합니다. 따라서 하나의 Visual Basic Scripting Edition 정책 모듈이 이미 등록되어 있고 다른 Visual Basic Scripting Edition 정책 모듈이 만들어지면 이러한 상황이 발생할 수 있습니다. 이러한 상황을 방지하려면 명령줄 명령줄 명령 regsvr32 /u FileName.dll를 사용하여 Visual Basic Scripting Edition 정책 모듈 중 하나를 등록 취소해야 합니다. 여기서 FileName.dll 활성화하지 않으려는 Visual Basic Scripting Edition 정책 모듈의 이름입니다.

Visual Basic Scripting Edition의 ICertPolicy 구현자는 프로젝트 이름을 형식으로 지정해야 합니다.

"MyApp"

여기서 MyApp 은 애플리케이션을 식별하는 지정자입니다. 또한 ICertPolicy 를 구현하는 클래스의 이름은 "Policy"여야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 지원되는 버전 없음
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 certpol.h(Certsrv.h 포함)