Überprüfen von Clientzertifikaten

GILT FÜR: Alle API Management-Ebenen

Verwenden Sie die validate-client-certificate-Richtlinie, um zu erzwingen, dass ein einer API Management-Instanz von einem Client präsentiertes Zertifikat mit den angegebenen Validierungsregeln und Ansprüchen wie Antragsteller oder Aussteller für eine oder mehrere Zertifikatidentitäten übereinstimmt.

Um als gültig angesehen zu werden, muss ein Clientzertifikat mit allen Validierungsregeln übereinstimmen, die von den Attributen im Element der obersten Ebene definiert sind, sowie mit allen definierten Ansprüchen für mindestens eine der definierten Identitäten.

Verwenden Sie diese Richtlinie, um eingehende Zertifikateigenschaften anhand der gewünschten Eigenschaften zu überprüfen. Verwenden Sie diese Richtlinie außerdem, um die Standardüberprüfung von Clientzertifikaten in folgenden Fällen außer Kraft zu setzen:

  • Wenn Sie benutzerdefinierte Zertifizierungsstellenzertifikate hochgeladen haben, um Clientanforderungen an das verwaltete Gateway zu überprüfen.
  • Wenn Sie benutzerdefinierte Zertifizierungsstellen zum Überprüfen von Clientanforderungen an ein selbstverwaltetes Gateway konfiguriert haben.

Weitere Informationen zu benutzerdefinierten Zertifizierungsstellenzertifikaten und Zertifizierungsstellen finden Sie unter Hinzufügen eines benutzerdefinierten Zertifizierungsstellenzertifikats in Azure API Management.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

<validate-client-certificate 
    validate-revocation="true | false"
    validate-trust="true | false" 
    validate-not-before="true | false" 
    validate-not-after="true | false" 
    ignore-error="true | false">
    <identities>
        <identity
            thumbprint="certificate thumbprint"
            serial-number="certificate serial number"
            common-name="certificate common name"
            subject="certificate subject string"
            dns-name="certificate DNS name"
            issuer-subject="certificate issuer"
            issuer-thumbprint="certificate issuer thumbprint"
            issuer-certificate-id="certificate identifier"/>
    </identities>
</validate-client-certificate> 

Attribute

Name BESCHREIBUNG Erforderlich Standard
validate-revocation Boolesch. Gibt an, ob das Zertifikat anhand der Onlinesperrliste überprüft wird. Richtlinienausdrücke sind nicht zulässig. Nein true
validate-trust Boolesch. Gibt an, ob die Validierung fehlschlagen soll, falls die Kette nicht erfolgreich zu einer vertrauenswürdigen Zertifizierungsstelle konstruiert werden kann. Richtlinienausdrücke sind nicht zulässig. Nein true
validate-not-before Boolesch. Überprüft den Wert anhand der aktuellen Zeit. Richtlinienausdrücke sind nicht zulässig. Nein true
validate-not-after Boolesch. Überprüft den Wert anhand der aktuellen Zeit. Richtlinienausdrücke sind nicht zulässig. Nein true
ignore-error Boolesch. Gibt an, ob die Richtlinie mit dem nächsten Handler fortfahren oder bei einer fehlgeschlagenen Überprüfung zu „Bei Fehler“ (on-error) springen soll. Richtlinienausdrücke sind nicht zulässig. Nein false

Elemente

Element BESCHREIBUNG Erforderlich
Identitäten Fügen Sie dieses Element hinzu, um bis zu 10 identity Unterelemente mit definierten Ansprüchen für das Clientzertifikat anzugeben. Nein

Identitätsattribute

Name BESCHREIBUNG Erforderlich Standard
Fingerabdruck Sha-1-Zertifikatfingerabdruck. Nein –
Seriennummer Seriennummer des Zertifikats. Nein –
Common-Name Allgemeiner Name des Zertifikats (Teil der Antragstellerzeichenfolge). Nein –
Betreff Antragstellerzeichenfolge. Muss dem Format von Distinguished Name folgen, das aus kommagetrennten Namensattributen besteht, z. B. "CN=MyName, OU=MyOrgUnit, C=US...". Nein –
DNS-Name Wert des „dnsName“-Eintrags innerhalb des Anspruchs „Alternativer Antragstellername“ (Subject Alternative Name). Nein –
Ausstellerthema Antragsteller des Ausstellers. Muss das Format des Distinguished Name einhalten. Nein –
Issuer-Fingerabdruck Aussteller SHA-1 Fingerabdruck. Nein –
issuer-certificate-id Bezeichner der vorhandenen Zertifikatentität, die den öffentlichen Schlüssel des Ausstellers darstellt. Schließt sich mit anderen Ausstellerattributen gegenseitig aus. Nein –

Wichtig

Der verknüpfte Zugriff wird nicht überprüft, wenn ein Zertifikat mit issuer-certificate-id. referenziert wird. Ein Benutzer mit der Berechtigung, eine Richtlinie zu schreiben, kann auf jedes verfügbare Zertifikat verweisen und dessen öffentlichen Schlüssel verwenden, um den Aussteller der Client-Zertifikate zu validieren, selbst wenn der Benutzer keinen Lesezugriff auf die Zertifikatsressource hat. Dies gewährt keinen Zugriff auf das Zertifikat oder einen privaten Schlüssel, den es enthält.

Verwendung

Beispiele

Im folgenden Beispiel wird ein Clientzertifikat überprüft, um die Standardüberprüfungsregeln der Richtlinie abzugleichen, und es wird überprüft, ob der Name des Antragstellers und des Ausstellers den angegebenen Werten entsprechen.

<validate-client-certificate 
    validate-revocation="true" 
    validate-trust="true" 
    validate-not-before="true" 
    validate-not-after="true" 
    ignore-error="false">
    <identities>
        <identity
            subject="C=US, ST=Illinois, L=Chicago, O="Contoso, Inc.", CN=*.contoso.com"
            issuer-subject="C=BE, O=FabrikamSign nv-sa, OU=Root CA, CN=FabrikamSign Root CA" />
    </identities>
</validate-client-certificate> 

Im folgenden Beispiel wird eine strengere Überprüfung ausgeführt, indem sie darauf jubeln, ob der Betrefffingerabdruck und der Ausstellerfingerabdruck den angegebenen Werten entsprechen.

<validate-client-certificate 
    validate-revocation="true" 
    validate-trust="true" 
    validate-not-before="true" 
    validate-not-after="true" 
    ignore-error="false">
    <identities>
        <identity
            thumbprint="AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00"
            issuer-thumbprint="BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11" />
    </identities>
</validate-client-certificate> 

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: