Freigeben über


Attributarchitektur

Die folgenden Schnittstellen werden verwendet, um einer Zertifikatanforderung Attribute hinzuzufügen:

Die Architektur folgt der im ASN.1-Modul der PKCS #10-Zertifizierungsanforderungssyntax definierten.

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

Attributes ::= SET OF Attribute

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

Die ICryptAttributes- -Auflistung entspricht den Attributen Feld, und jedes ICryptAttribute- -Objekt in der Auflistung entspricht einer ASN.1 Attribut Struktur.

Jedes Attribut- besteht aus einem Objektbezeichner (OID) und null oder mehr Werten, die dem OID zugeordnet sind. Ein einzelnes OID-Wert-Paar wird durch eine IX509Attribute Schnittstelle dargestellt. Sie können eine IX509Attributes--Auflistung verwenden, um ein ICryptAttribute--Objekt zu initialisieren, aber jedes Attribut in der Auflistung muss demselben OID zugeordnet sein. In der Regel weist ein Attribut nur einen Wert auf.

Sie können eine der folgenden Schnittstellen verwenden, die von IX509Attributeabgeleitet sind, um ein einzelnes OID/Wert-Attributpaar zu erstellen:

Die folgende Prozedur zeigt beispielsweise, wie sie ein ClientId-attribut erstellen.

So erstellen Sie ein ClientId-attribut

  1. Dient zum Abrufen eines ICryptAttributes- Objekts aus einem IX509CertificateRequestPkcs10-- oder IX509CertificateRequestCmc--Objekt.
  2. Erstellen und Initialisieren eines IX509AttributeClientId--Objekts.
  3. Erstellen Sie eine IX509Attributes--Auflistung, und fügen Sie das IX509AttributeClientId-Objekt hinzu.
  4. Verwenden Sie die IX509Attributes--Auflistung, um ein ICryptAttribute-Objekt zu initialisieren.
  5. Fügen Sie das ICryptAttribute--Objekt zur Auflistung hinzu, die in Schritt 1 abgerufen wurde.

Das folgende Beispiel zeigt die ASN.1-Ausgabe des attributs ClientId. Das Attribut enthält den DNS-Namen des Computers, auf dem die Anforderung generiert wurde (test3d.jdomcsc.nttest.microsoft.com), den SAM-Namen des Benutzers (JDOMCSC\administrator) und den Namen der Anwendung, die die Anforderung generiert hat (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