다음을 통해 공유


특성 아키텍처

다음 인터페이스는 인증서 요청에 특성을 추가하는 데 사용됩니다.

아키텍처는 PKCS #10 인증 요청 구문의 ASN.1 모듈에 정의된 것을 따릅니다.

CertificationRequestInfo ::= SEQUENCE 
{
   version                 CertificationRequestInfoVersion,
   subject                 ANY,
   subjectPublicKeyInfo    SubjectPublicKeyInfo,
   attributes              [0] IMPLICIT Attributes
}

Attributes ::= SET OF Attribute

Attribute ::= SEQUENCE 
{
   type       EncodedObjectID,
   values     AttributeSetValue
}

ICryptAttributes 컬렉션은 특성 필드에 해당하며 컬렉션의 각 ICryptAttribute 개체는 ASN.1 특성 구조에 해당합니다.

특성 은 OID(개체 식별자) 및 OID와 연결된 0개 이상의 값으로 구성됩니다. 단일 OID 값 쌍은 IX509Attribute 인터페이스로 표시됩니다. IX509Attributes 컬렉션을 사용하여 ICryptAttribute 개체를 초기화할 수 있지만 컬렉션의 각 특성은 동일한 OID와 연결되어야 합니다. 일반적으로 특성에는 값이 하나만 있습니다.

IX509Attribute에서 파생된 다음 인터페이스 중 하나를 사용하여 단일 OID/값 특성 쌍을 만들 수 있습니다.

예를 들어 다음 절차에서는 ClientId 특성을 만드는 방법을 보여줍니다.

ClientId 특성을 만들려면

  1. IX509CertificateRequestPkcs10 또는 IX509CertificateRequestCmc 개체에서 ICryptAttributes 개체 검색합니다.
  2. IX509AttributeClientId 개체를 만들고 초기화합니다.
  3. IX509Attributes 컬렉션을 만들고 IX509AttributeClientId 개체를 추가합니다.
  4. IX509Attributes 컬렉션을 사용하여 ICryptAttribute 개체를 초기화합니다.
  5. 1단계에서 검색된 컬렉션에 ICryptAttribute 개체를 추가합니다.

다음 예제에서는 ClientId 특성의 ASN.1 출력을 보여줍니다. 특성에는 요청이 생성된 컴퓨터의 DNS 이름(test3d.jdomcsc.nttest.microsoft.com), 사용자의 SAM 이름(JDOMCSC\administrator) 및 요청을 생성한 애플리케이션의 이름(certreq)이 포함됩니다.

0136: 30 57; SEQUENCE (57 Bytes)
0138: |  06 09                            ; OBJECT_ID (9 Bytes)
013a: |  |  2b 06 01 04 01 82 37 15  14
      |  |     ; 1.3.6.1.4.1.311.21.20 Client Information
0143: |  |  31 4a                         ; SET (4a Bytes)
0145: |  |     30 48                      ; SEQUENCE (48 Bytes)
0147: |  |        02 01                   ; INTEGER (1 Bytes)
0149: |  |        |  09
014a: |  |        0c 23                   ; UTF8_STRING (23 Bytes)
014c: |  |        |  74 65 73 74 33 64 2e 6a  64 6f 6d 63 73 63 2e 6e 
015c: |  |        |  74 74 65 73 74 2e 6d 69  63 72 6f 73 6f 66 74 2e 
016c: |  |        |  63 6f 6d                                         
      |  |        |     ; "test3d.jdomcsc.nttest.microsoft.com"
016f: |  |        0c 15                   ; UTF8_STRING (15 Bytes)
0171: |  |        |  4a 44 4f 4d 43 53 43 5c  61 64 6d 69 6e 69 73 74 
0181: |  |        |  72 61 74 6f 72                                   
      |  |        |     ; "JDOMCSC\administrator"
0186: |  |        0c 07                   ; UTF8_STRING (7 Bytes)
0188: |  |           63 65 72 74 72 65 71                             
      |  |              ; "certreq"

ICryptAttribute

ICryptAttributes

IX509Attribute

IX509Attributes