Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Convalida personalizzata del certificato del cliente
AWS IoT Core supporta la convalida personalizzata dei certificati X.509 client, che migliora la gestione dell'autenticazione dei client. Questo metodo di convalida dei certificati è noto anche come controlli dei certificati di preautenticazione, in cui si valutano i certificati client in base ai propri criteri (definiti in una funzione Lambda) e si revocano i certificati client o il certificato CA (Signing Certificate Authority) dei certificati per impedire ai client di connettersi. AWS IoT Core Ad esempio, puoi creare i tuoi controlli di revoca dei certificati che convalidano lo stato dei certificati rispetto alle autorità di convalida che supportano gli endpoint OCSP (Online Certificate Status Protocol)
Nota
Questa funzionalità non è supportata nelle AWS GovCloud (US) regioni.
Il processo di esecuzione della convalida personalizzata dei certificati client prevede i seguenti passaggi.
Fase 1: Registra i certificati X.509 dei tuoi clienti con AWS IoT Core
Se non l'hai già fatto, registra e attiva i tuoi certificati X.509 cliente con AWS IoT Core. Altrimenti, passare alla fase successiva.
Per registrare e attivare i tuoi certificati cliente con AWS IoT Core, segui i passaggi:
-
Se crei certificati client direttamente con AWS IoT. Questi certificati client verranno registrati automaticamente con AWS IoT Core.
-
Se crei i tuoi certificati cliente, segui queste istruzioni per registrarli AWS IoT Core.
-
Per attivare i tuoi certificati cliente, segui queste istruzioni.
Passaggio 2: creazione di una funzione Lambda
È necessario creare una funzione Lambda che esegua la verifica del certificato e venga richiamata per ogni tentativo di connessione del client per l'endpoint configurato. Quando crei questa funzione Lambda, segui le indicazioni generali di Crea la tua prima funzione Lambda. Inoltre, assicurati che la funzione Lambda aderisca ai formati di richiesta e risposta previsti come segue:
Esempio di evento della funzione Lambda
{ "connectionMetadata": { "id": "string" }, "principalId": "string", "serverName": "string", "clientCertificateChain": [ "string", "string" ] }
connectionMetadata-
Metadati o informazioni aggiuntive relative alla connessione del client a. AWS IoT Core
principalId-
L'identificatore principale associato al client nella connessione TLS.
serverName-
La stringa del nome host SNI (Server Name Indication).
AWS IoT Core richiede che i dispositivi inviino l'estensione SNI al protocollo Transport Layer Security (TLS) e forniscano l'indirizzo completo dell'endpoint nel campo. host_name clientCertificateChain-
L'array di stringhe che rappresenta la catena di certificati del cliente. X.509
Esempio di risposta della funzione Lambda
{ "isAuthenticated": "boolean" }
isAuthenticated-
Un valore booleano che indica se la richiesta è autenticata.
Nota
Nella risposta Lambda, isAuthenticated deve essere necessario procedere true a un'ulteriore autenticazione e autorizzazione. Altrimenti, il certificato client IoT può essere disabilitato e l'autenticazione personalizzata con i certificati X.509 client può essere bloccata per ulteriori autenticazioni e autorizzazioni.
Fase 3: Autorizzazione AWS IoT per richiamare la tua funzione Lambda
Dopo aver creato la funzione Lambda, è necessario concedere l'autorizzazione per AWS IoT richiamarla, utilizzando il comando add-permission CLI. Nota che questa funzione Lambda verrà richiamata per ogni tentativo di connessione all'endpoint configurato. Per ulteriori informazioni, consulta Autorizzazione AWS IoT all'invocazione della funzione Lambda.
Passaggio 4: imposta la configurazione dell'autenticazione per un dominio
La sezione seguente descrive come impostare la configurazione di autenticazione per un dominio personalizzato utilizzando AWS CLI.
Imposta la configurazione del certificato client per un dominio (CLI)
Se non disponi di una configurazione di dominio, usa il comando create-domain-configuration CLI per crearne una. Se disponi già di una configurazione di dominio, utilizza il comando update-domain-configuration CLI per aggiornare la configurazione del certificato client per un dominio. Devi aggiungere l'ARN della funzione Lambda che hai creato nel passaggio precedente.
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-
Il nome della configurazione di dominio.
authentication-type-
Il tipo di autenticazione della configurazione del dominio. Per ulteriori informazioni, vedere Scelta di un tipo di autenticazione.
application-protocol-
Il protocollo applicativo con cui i dispositivi comunicano AWS IoT Core. Per ulteriori informazioni, vedere Scelta di un protocollo applicativo.
client-certificate-config-
Un oggetto che specifica la configurazione di autenticazione del client per un dominio.
clientCertificateCallbackArn-
L'Amazon Resource Name (ARN) della funzione Lambda che viene AWS IoT richiamata nel livello TLS quando viene stabilita una nuova connessione. Per personalizzare l'autenticazione del client per eseguire una convalida personalizzata dei certificati client, devi aggiungere l'ARN della funzione Lambda che hai creato nel passaggio precedente.
Per ulteriori informazioni, consulta CreateDomainConfiguration e UpdateDomainConfiguration dall'API Reference. AWS IoT Per ulteriori informazioni sulle configurazioni di dominio, consulta Configurazioni di dominio.