

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Benutzerdefinierte Validierung von Client-Zertifikaten
<a name="customize-client-auth"></a>

AWS IoT Core unterstützt die benutzerdefinierte Validierung von Client-Zertifikaten für X.509-Clientzertifikate, wodurch die Verwaltung der Client-Authentifizierung verbessert wird. Diese Methode zur Zertifikatsvalidierung wird auch als Zertifikatsprüfung vor der Authentifizierung bezeichnet. Dabei bewerten Sie Client-Zertifikate anhand Ihrer eigenen Kriterien (definiert in einer Lambda-Funktion) und widerrufen Client-Zertifikate oder das Zertifikat der Signing Certificate Authority (CA) der Zertifikate, um zu verhindern, dass Clients eine Verbindung herstellen können. AWS IoT Core Sie können beispielsweise Ihre eigenen Zertifikatssperrprüfungen erstellen, die den Status der Zertifikate anhand von Validierungsstellen überprüfen, die [Online Certificate Status Protocol (OCSP)](https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol) oder [Certificate Revocation Lists (CRL)](https://en.wikipedia.org/wiki/Certificate_revocation_list) Endpunkte unterstützen, und Verbindungen für Clients mit gesperrten Zertifikaten verhindern. Die Kriterien, die zur Bewertung von Client-Zertifikaten verwendet werden, werden in einer Lambda-Funktion (auch bekannt als Lambda vor der Authentifizierung) definiert. Sie müssen die in den Domänenkonfigurationen festgelegten Endpunkte verwenden und der [Authentifizierungstyp](protocols.md#connection-protocol-auth-mode) muss ein X.509-Zertifikat sein. Darüber hinaus müssen Clients die Erweiterung [Server Name Indication (SNI)](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) angeben, wenn sie eine Verbindung herstellen. AWS IoT Core

**Anmerkung**  
Diese Funktion wird in den AWS GovCloud (US) Regionen nicht unterstützt.

**Topics**
+ [Schritt 1: Registrieren Sie Ihre X.509-Client-Zertifikate bei AWS IoT Core](#client-auth-cert-verification)
+ [Schritt 2: Erstellen einer Lambda-Funktion](#customize-client-auth-lambda)
+ [Schritt 3: Autorisieren Sie AWS IoT den Aufruf Ihrer Lambda-Funktion](#customize-client-configuration-grant-permission)
+ [Schritt 4: Legen Sie die Authentifizierungskonfiguration für eine Domain fest](#customize-client-configuration)

## Schritt 1: Registrieren Sie Ihre X.509-Client-Zertifikate bei AWS IoT Core
<a name="client-auth-cert-verification"></a>

Falls Sie dies noch nicht getan haben, registrieren und aktivieren Sie Ihre [X.509-Client-Zertifikate](https://docs.aws.amazon.com//iot/latest/developerguide/x509-client-certs.html) mit. AWS IoT Core Andernfalls überspringen Sie diesen Schritt und gehen Sie direkt zum nächsten.

Gehen Sie wie folgt vor AWS IoT Core, um Ihre Client-Zertifikate bei zu registrieren und zu aktivieren:

1. Wenn Sie [Kundenzertifikate direkt mit erstellen AWS IoT](https://docs.aws.amazon.com//iot/latest/developerguide/device-certs-create.html). Diese Client-Zertifikate werden automatisch bei registriert AWS IoT Core.

1. Wenn Sie [Ihre eigenen Client-Zertifikate erstellen](https://docs.aws.amazon.com//iot/latest/developerguide/device-certs-your-own.html), folgen Sie [diesen Anweisungen, um sie zu registrieren AWS IoT Core](https://docs.aws.amazon.com//iot/latest/developerguide/register-device-cert.html).

1. Folgen Sie [diesen Anweisungen](https://docs.aws.amazon.com//iot/latest/developerguide/activate-or-deactivate-device-cert.html), um Ihre Client-Zertifikate zu aktivieren.

## Schritt 2: Erstellen einer Lambda-Funktion
<a name="customize-client-auth-lambda"></a>

Sie müssen eine Lambda-Funktion erstellen, die die Zertifikatsverifizierung durchführt und bei jedem Verbindungsversuch eines Clients für den konfigurierten Endpunkt aufgerufen wird. Folgen Sie beim Erstellen dieser Lambda-Funktion den allgemeinen Anweisungen unter [Erstellen Sie Ihre erste Lambda-Funktion](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html). Stellen Sie außerdem sicher, dass die Lambda-Funktion die erwarteten Anfrage- und Antwortformate wie folgt einhält:

**Beispiel für ein Lambda-Funktionsereignis**

```
{
	"connectionMetadata": {
		"id": "string"
	},
	"principalId": "string",
	"serverName": "string",
	"clientCertificateChain": [
		"string",
		"string"
	]
}
```

`connectionMetadata`  
Metadaten oder zusätzliche Informationen im Zusammenhang mit der Verbindung des Clients zu AWS IoT Core.

`principalId`  
Die Haupt-ID, die dem Client in der TLS-Verbindung zugeordnet ist.

`serverName`  
Die [Hostnamenzeichenfolge (Server Name Indication, SNI)](https://www.rfc-editor.org/rfc/rfc3546#section-3.1). AWS IoT Core erfordert, dass Geräte die [SNI-Erweiterung](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) an das Transport Layer Security (TLS) -Protokoll senden und die vollständige Endpunktadresse im Feld angeben. `host_name`

`clientCertificateChain`  
Das Zeichenkettenarray, das die X.509-Zertifikatskette des Clients darstellt. 

**Beispiel für eine Antwort auf eine Lambda-Funktion**

```
{
	"isAuthenticated": "boolean"
}
```

`isAuthenticated`  
Ein boolescher Wert, der angibt, ob die Anfrage authentifiziert ist.

**Anmerkung**  
In der Lambda-Antwort `isAuthenticated` muss `true` mit der weiteren Authentifizierung und Autorisierung fortgefahren werden. Andernfalls kann das IoT-Client-Zertifikat deaktiviert und die benutzerdefinierte Authentifizierung mit X.509-Client-Zertifikaten für die weitere Authentifizierung und Autorisierung blockiert werden.

## Schritt 3: Autorisieren Sie AWS IoT den Aufruf Ihrer Lambda-Funktion
<a name="customize-client-configuration-grant-permission"></a>

Nachdem Sie die Lambda-Funktion erstellt haben, müssen Sie mithilfe des AWS IoT CLI-Befehls [add-permission die Erlaubnis erteilen](https://docs.aws.amazon.com//cli/latest/reference/lambda/add-permission.html), sie aufzurufen. Beachten Sie, dass diese Lambda-Funktion bei jedem Verbindungsversuch zu Ihrem konfigurierten Endpunkt aufgerufen wird. Weitere Informationen finden Sie unter [Autorisieren des AWS IoT Aufrufs Ihrer Lambda-Funktion](custom-auth-authorize.md).

## Schritt 4: Legen Sie die Authentifizierungskonfiguration für eine Domain fest
<a name="customize-client-configuration"></a>

Im folgenden Abschnitt wird beschrieben, wie Sie die Authentifizierungskonfiguration für eine benutzerdefinierte Domain mithilfe von festlegen AWS CLI.

### Konfiguration des Client-Zertifikats für eine Domain festlegen (CLI)
<a name="customize-client-auth-cli"></a>

Wenn Sie keine Domänenkonfiguration haben, verwenden Sie den [https://docs.aws.amazon.com//cli/latest/reference/iot/create-domain-configuration.html](https://docs.aws.amazon.com//cli/latest/reference/iot/create-domain-configuration.html)CLI-Befehl, um eine zu erstellen. Wenn Sie bereits über eine Domänenkonfiguration verfügen, verwenden Sie den [https://docs.aws.amazon.com//cli/latest/reference/iot/update-domain-configuration.html](https://docs.aws.amazon.com//cli/latest/reference/iot/update-domain-configuration.html)CLI-Befehl, um die Konfiguration des Client-Zertifikats für eine Domain zu aktualisieren. Sie müssen den ARN der Lambda-Funktion hinzufügen, die Sie im vorherigen Schritt erstellt haben.

```
aws iot create-domain-configuration \
    --domain-configuration-name domainConfigurationName \
    --authentication-type AWS_X509|CUSTOM_AUTH_X509 \
    --application-protocol SECURE_MQTT|HTTPS \
    --client-certificate-config 'clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012:function:my-function:1"}'
```

```
aws iot update-domain-configuration \
    --domain-configuration-name domainConfigurationName \
    --authentication-type AWS_X509|CUSTOM_AUTH_X509 \
    --application-protocol SECURE_MQTT|HTTPS \
    --client-certificate-config '{"clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012:function:my-function:1"}'
```

`domain-configuration-name`  
Der Name der Domänenkonfiguration.

`authentication-type`  
Der Authentifizierungstyp der Domänenkonfiguration. Weitere Informationen finden Sie unter [Auswahl eines Authentifizierungstyps](protocols.md#connection-protocol-auth-mode).

`application-protocol`  
Das Anwendungsprotokoll, mit dem Geräte kommunizieren AWS IoT Core. Weitere Informationen finden Sie unter [Auswahl eines Anwendungsprotokolls](protocols.md#protocol-selection).

`client-certificate-config`  
Ein Objekt, das die Konfiguration der Client-Authentifizierung für eine Domäne angibt.

`clientCertificateCallbackArn`  
Der Amazon-Ressourcenname (ARN) der Lambda-Funktion, die in der AWS IoT TLS-Schicht aufgerufen wird, wenn eine neue Verbindung hergestellt wird. Um die Client-Authentifizierung für die Durchführung einer benutzerdefinierten Client-Zertifikatsvalidierung anzupassen, müssen Sie den ARN der Lambda-Funktion hinzufügen, die Sie im vorherigen Schritt erstellt haben.

Weitere Informationen finden Sie in [CreateDomainConfiguration](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateDomainConfiguration.html)und in [UpdateDomainConfiguration](https://docs.aws.amazon.com//iot/latest/apireference/API_UpdateDomainConfiguration.html)der *AWS IoT API-Referenz.* Weitere Informationen zu Domänenkonfigurationen finden Sie unter [Domänenkonfigurationen](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable.html).