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à.
Autentica e autorizza i dispositivi client
Utilizza il servizio IPC di autenticazione dei dispositivi client per sviluppare un componente broker locale personalizzato a cui possano connettersi i dispositivi IoT locali, come i dispositivi client.
Per utilizzare queste operazioni IPC, includi la versione 2.2.0 o successiva del componente di autenticazione del dispositivo client come dipendenza nel componente personalizzato. È quindi possibile utilizzare le operazioni IPC nei componenti personalizzati per effettuare le seguenti operazioni:
-
Verifica l'identità dei dispositivi client che si connettono al dispositivo principale.
-
Crea una sessione per consentire a un dispositivo client di connettersi al dispositivo principale.
-
Verifica se un dispositivo client è autorizzato a eseguire un'azione.
-
Ricevi una notifica quando il certificato del server del dispositivo principale cambia.
Argomenti
Versioni SDK minime
La tabella seguente elenca le versioni minime da utilizzare per interagire con il servizio IPC di autenticazione del dispositivo client. SDK per dispositivi AWS IoT
SDK | Versione minima |
---|---|
v1.9.3 |
|
v1.11.3 |
|
v1.18.3 |
|
v1.12.0 |
Autorizzazione
Per utilizzare il servizio IPC di autenticazione del dispositivo client in un componente personalizzato, è necessario definire politiche di autorizzazione che consentano al componente di eseguire queste operazioni. Per informazioni sulla definizione delle politiche di autorizzazione, vedere. Autorizza i componenti a eseguire operazioni IPC
Le politiche di autorizzazione per l'autenticazione e l'autorizzazione dei dispositivi client hanno le seguenti proprietà.
Identificatore del servizio IPC: aws.greengrass.clientdevices.Auth
Operazione | Descrizione | Risorse |
---|---|---|
|
Consente a un componente di verificare l'identità di un dispositivo client. |
|
|
Consente a un componente di convalidare le credenziali di un dispositivo client e di creare una sessione per quel dispositivo client. |
|
|
Consente a un componente di verificare se un dispositivo client è autorizzato a eseguire un'azione. |
|
|
Consente a un componente di ricevere notifiche quando il certificato del server del dispositivo principale ruota. |
|
|
Consente a un componente di eseguire tutte le operazioni del servizio IPC di autenticazione del dispositivo client. |
|
Esempi di politiche di autorizzazione
È possibile fare riferimento al seguente esempio di politica di autorizzazione per configurare le politiche di autorizzazione per i componenti.
Esempio di politica di autorizzazione
Il seguente esempio di politica di autorizzazione consente a un componente di eseguire tutte le operazioni IPC di autenticazione dei dispositivi client.
{ "accessControl": { "aws.greengrass.clientdevices.Auth": { "
com.example.MyLocalBrokerComponent
:clientdevices:1": { "policyDescription": "Allows access to authenticate and authorize client devices.", "operations": [ "aws.greengrass#VerifyClientDeviceIdentity", "aws.greengrass#GetClientDeviceAuthToken", "aws.greengrass#AuthorizeClientDeviceAction", "aws.greengrass#SubscribeToCertificateUpdates" ], "resources": [ "*" ] } } } }
VerifyClientDeviceIdentity
Verifica l'identità di un dispositivo client. Questa operazione verifica se il dispositivo client è validoAWS IoT.
Richiesta
La richiesta di questa operazione ha i seguenti parametri:
credential
-
Le credenziali del dispositivo client. Questo oggetto contiene
ClientDeviceCredential
le seguenti informazioni:clientDeviceCertificate
(Python:)client_device_certificate
-
Il certificato del dispositivo X.509 del dispositivo client.
Risposta
La risposta di questa operazione contiene le seguenti informazioni:
isValidClientDevice
(Python:)is_valid_client_device
-
Se l'identità del dispositivo client è valida.
GetClientDeviceAuthToken
Convalida le credenziali di un dispositivo client e crea una sessione per il dispositivo client. Questa operazione restituisce un token di sessione che è possibile utilizzare nelle richieste successive per autorizzare le azioni del dispositivo client.
Per connettere correttamente un dispositivo client, il componente di autenticazione del dispositivo client deve concedere l'mqtt:connect
autorizzazione per l'ID client utilizzato dal dispositivo client.
Richiesta
La richiesta di questa operazione ha i seguenti parametri:
credential
-
Le credenziali del dispositivo client. Questo oggetto contiene
CredentialDocument
le seguenti informazioni:mqttCredential
(Python:)mqtt_credential
-
Le credenziali MQTT del dispositivo client. Specificare l'ID client e il certificato utilizzati dal dispositivo client per la connessione. Questo oggetto contiene
MQTTCredential
le seguenti informazioni:clientId
(Python:)client_id
-
L'ID client da utilizzare per la connessione.
certificatePem
(Python:)certificate_pem
-
Il certificato del dispositivo X.509 da utilizzare per la connessione.
username
-
Nota
Questa proprietà non è attualmente utilizzata.
password
-
Nota
Questa proprietà non è attualmente utilizzata.
Risposta
La risposta di questa operazione contiene le seguenti informazioni:
clientDeviceAuthToken
(Python:)client_device_auth_token
-
Il token di sessione per il dispositivo client. È possibile utilizzare questo token di sessione nelle richieste successive per autorizzare le azioni di questo dispositivo client.
AuthorizeClientDeviceAction
Verifica se un dispositivo client è autorizzato a eseguire un'azione su una risorsa. Le politiche di autorizzazione dei dispositivi client specificano le autorizzazioni che i dispositivi client possono eseguire mentre sono connessi a un dispositivo principale. Le politiche di autorizzazione dei dispositivi client vengono definite quando si configura il componente di autenticazione del dispositivo client.
Richiesta
La richiesta di questa operazione ha i seguenti parametri:
clientDeviceAuthToken
(Python:)client_device_auth_token
-
Il token di sessione per il dispositivo client.
operation
-
L'operazione da autorizzare.
resource
-
La risorsa in cui il dispositivo client esegue l'operazione.
Risposta
La risposta di questa operazione contiene le seguenti informazioni:
isAuthorized
(Python:)is_authorized
-
Se il dispositivo client è autorizzato a eseguire l'operazione sulla risorsa.
SubscribeToCertificateUpdates
Abbonati per ricevere il nuovo certificato server del dispositivo principale ogni volta che ruota. Quando il certificato del server cambia, i broker devono ricaricarlo utilizzando il nuovo certificato del server.
Per impostazione predefinita, il componente di autenticazione del dispositivo client ruota i certificati del server ogni 7 giorni. È possibile configurare l'intervallo di rotazione tra 2 e 10 giorni.
Questa operazione è un'operazione di sottoscrizione in cui ci si iscrive a un flusso di messaggi di eventi. Per utilizzare questa operazione, definite un gestore di risposte di flusso con funzioni che gestiscono i messaggi di evento, gli errori e la chiusura dei flussi. Per ulteriori informazioni, consulta Iscriviti agli stream di IPC eventi.
Tipo di messaggio di evento: CertificateUpdateEvent
Richiesta
La richiesta di questa operazione ha i seguenti parametri:
certificateOptions
(Python:)certificate_options
-
I tipi di aggiornamenti dei certificati a cui sottoscrivere. Questo oggetto contiene
CertificateOptions
le seguenti informazioni:certificateType
(Python:)certificate_type
-
Il tipo di aggiornamenti dei certificati a cui sottoscrivere. Scegli la seguente opzione:
-
SERVER
-
Risposta
La risposta di questa operazione contiene le seguenti informazioni:
messages
-
Il flusso di messaggi. Questo oggetto contiene
CertificateUpdateEvent
le seguenti informazioni:certificateUpdate
(Python:)certificate_update
-
Le informazioni sul nuovo certificato. Questo oggetto contiene
CertificateUpdate
le seguenti informazioni:certificate
-
Il certificato.
privateKey
(Python:)private_key
-
La chiave privata del certificato.
publicKey
(Python:)public_key
-
La chiave pubblica del certificato.
caCertificates
(Python:)ca_certificates
-
L'elenco dei certificati di autorità di certificazione (CA) nella catena di certificati CA del certificato.