View a markdown version of this page

Convalida personalizzata del certificato del cliente - AWS IoT Core

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) o Certificate Revocation Lists (CRL) e impediscono le connessioni per i client con certificati revocati. I criteri utilizzati per valutare i certificati dei client sono definiti in una funzione Lambda (nota anche come Lambda di preautenticazione). È necessario utilizzare gli endpoint impostati nelle configurazioni del dominio e il tipo di autenticazione deve essere un certificato. X.509 Inoltre, i client devono fornire l'estensione SNI (Server Name Indication) durante la connessione a. AWS IoT Core

Nota

Questa funzionalità non è supportata nelle AWS GovCloud (US) regioni.

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:

  1. Se crei certificati client direttamente con AWS IoT. Questi certificati client verranno registrati automaticamente con AWS IoT Core.

  2. Se crei i tuoi certificati cliente, segui queste istruzioni per registrarli AWS IoT Core.

  3. 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-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

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.