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
AWS IoT Core unterstützt die benutzerdefinierte Client-Zertifikatsüberprüfung für X.509 Client-Zertifikate, wodurch die Verwaltung der Client-Authentifizierung verbessert wird. Diese Methode der Zertifikatsvalidierung wird auch als Zertifikatsprüfungen vor der Authentifizierung bezeichnet. Dabei bewerten Sie Client-Zertifikate anhand Ihrer eigenen Kriterien (definiert in einer Lambda-Funktion) und ziehen Client-Zertifikate oder das Zertifikat der Signing Certificate Authority (CA) der Zertifikate zurück, um zu verhindern, dass Clients eine Verbindung herstellen. AWS IoT Core Sie können beispielsweise Ihre eigenen Zertifikatssperrprüfungen erstellen, die den Status der Zertifikate anhand von Validierungsstellen überprüfen, die Endpunkte des Online Certificate Status Protocol (OCSP)
Anmerkung
Diese Funktion wird in den AWS GovCloud (US) Regionen nicht unterstützt.
Das Verfahren zur Durchführung einer benutzerdefinierten Client-Zertifikatsüberprüfung umfasst die folgenden Schritte.
Schritt 1: Registrieren Sie Ihre X.509 Client-Zertifikate bei AWS IoT Core
Falls Sie dies noch nicht getan haben, registrieren und aktivieren Sie Ihre X.509 Client-Zertifikate bei 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:
-
Wenn Sie Client-Zertifikate direkt mit erstellen AWS IoT. Diese Client-Zertifikate werden automatisch bei registriert AWS IoT Core.
-
Wenn Sie Ihre eigenen Client-Zertifikate erstellen, folgen Sie diesen Anweisungen, um sie bei zu registrieren AWS IoT Core.
-
Folgen Sie diesen Anweisungen, um Ihre Client-Zertifikate zu aktivieren.
Schritt 2: Erstellen einer Lambda-Funktion
Sie müssen eine Lambda-Funktion erstellen, die eine Zertifikatsüberprüfung durchführt und bei jedem Client-Verbindungsversuch für den konfigurierten Endpunkt aufgerufen wird. Folgen Sie beim Erstellen dieser Lambda-Funktion den allgemeinen Anweisungen unter Erstellen Sie Ihre erste Lambda-Funktion. Stellen Sie außerdem sicher, dass die Lambda-Funktion den erwarteten Anforderungs- und Antwortformaten wie folgt entspricht:
Beispiel für ein Ereignis mit einer Lambda-Funktion
{ "connectionMetadata": { "id": "string" }, "principalId": "string", "serverName": "string", "clientCertificateChain": [ "string", "string" ] }
connectionMetadata-
Metadaten oder zusätzliche Informationen zur Verbindung des Clients zu AWS IoT Core.
principalId-
Die Hauptkennzeichnung, die dem Client in der TLS-Verbindung zugeordnet ist.
serverName-
Die Zeichenfolge für den Hostnamen von
Server Name Indication (SNI). AWS IoT Core erfordert, dass Geräte die SNI-Erweiterung 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 Anforderung authentifiziert ist.
Anmerkung
In der Lambda-Antwort isAuthenticated muss angegeben werden, true um mit der weiteren Authentifizierung und Autorisierung fortzufahren. Andernfalls kann das IoT-Client-Zertifikat deaktiviert werden und die benutzerdefinierte Authentifizierung mit X.509 Client-Zertifikaten kann für die weitere Authentifizierung und Autorisierung blockiert werden.
Schritt 3: Autorisieren AWS IoT um Ihre Lambda-Funktion aufzurufen
Nachdem Sie die Lambda-Funktion erstellt haben, müssen Sie mithilfe des CLI-Befehls add-permission die Erlaubnis AWS IoT zum Aufrufen der Lambda-Funktion erteilen. Beachten Sie, dass diese Lambda-Funktion bei jedem Verbindungsversuch zu Ihrem konfigurierten Endpunkt aufgerufen wird. Weitere Informationen finden Sie unter Autorisieren des Aufrufs Ihrer AWS IoT Lambda-Funktion.
Schritt 4: Stellen Sie die Authentifizierungskonfiguration für eine Domain ein
Im folgenden Abschnitt wird beschrieben, wie Sie die Authentifizierungskonfiguration für eine benutzerdefinierte Domäne mithilfe von festlegen AWS CLI.
Legen Sie die Konfiguration des Client-Zertifikats für eine Domäne fest (CLI)
Wenn Sie keine Domänenkonfiguration haben, verwenden Sie den create-domain-configuration CLI-Befehl, um eine zu erstellen. Wenn Sie bereits über eine Domänenkonfiguration verfügen, verwenden Sie den update-domain-configuration CLI-Befehl, um die Konfiguration des Client-Zertifikats für eine Domäne 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-namedomainConfigurationName\ --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-namedomainConfigurationName\ --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.
application-protocol-
Das Anwendungsprotokoll, mit dem Geräte kommunizieren AWS IoT Core. Weitere Informationen finden Sie unter Auswahl eines Anwendungsprotokolls.
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-Ebene aufgerufen wird, wenn eine neue Verbindung hergestellt wird. Um die Client-Authentifizierung so anzupassen, dass eine benutzerdefinierte Client-Zertifikatsvalidierung durchgeführt wird, müssen Sie den ARN der Lambda-Funktion hinzufügen, die Sie im vorherigen Schritt erstellt haben.
Weitere Informationen finden Sie unter CreateDomainConfiguration und UpdateDomainConfiguration aus der AWS IoT API-Referenz. Weitere Informationen zu Domänenkonfigurationen finden Sie unter Domänenkonfigurationen.