

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

# OAuth Requisiti 2.0 per il collegamento degli account
<a name="concepts-account-linking"></a>

Ogni connettore C2C si basa su un server di autorizzazione OAuth 2.0 per autenticare gli utenti finali. Tramite questo server, gli utenti finali collegano i propri account di terze parti alla piattaforma del dispositivo del cliente. Il collegamento dell'account è il primo passaggio richiesto da un utente finale per utilizzare i dispositivi supportati dal connettore C2C. Per ulteriori informazioni sui diversi ruoli nel collegamento degli account e OAuth nella versione 2.0, consulta. [Ruoli di collegamento degli account](roles-account-linking.md)

Sebbene il connettore C2C non richieda l'implementazione di una logica aziendale specifica per supportare il flusso di autorizzazione, il server di autorizzazione OAuth2 .0 associato al connettore C2C deve soddisfare i. [OAuth requisiti di configurazione](#oauth-config-requirements)

**Nota**  
Le integrazioni gestite supportano AWS IoT Device Management solo la OAuth versione 2.0 con un flusso di codice di autorizzazione. Per ulteriori informazioni, consulta [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1).

Il collegamento degli account è un processo che consente alle integrazioni gestite e al connettore di accedere ai dispositivi dell'utente finale utilizzando un token di accesso. Questo token fornisce integrazioni gestite per AWS IoT Device Management con l'autorizzazione dell'utente finale, in modo che il connettore possa interagire con i dati dell'utente finale tramite chiamate API. Per ulteriori informazioni, consulta [Flusso di lavoro per il collegamento degli account](account-linking-flow.md).

Ti consigliamo di non registrare questi token sensibili in nessun registro. Se tuttavia sono archiviati nei log, ti consigliamo di utilizzare le politiche di protezione dei dati di CloudWatch Logs per mascherare i token contenuti nei log. Per ulteriori informazioni, consulta [Incremento della protezione dei dati di log sensibili con il mascheramento](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).

Le integrazioni gestite per AWS IoT Device Management non ottengono direttamente un token di accesso, ma lo fanno tramite l'Authorization Code Grant Type. Innanzitutto, le integrazioni gestite per AWS IoT Device Management devono ottenere un codice di autorizzazione. Quindi scambia il codice con un token di accesso e un token di aggiornamento. Il token di aggiornamento viene utilizzato per richiedere un nuovo token di accesso alla scadenza del vecchio token di accesso. Se sia il token di accesso che il token di aggiornamento sono scaduti, è necessario eseguire nuovamente il flusso di collegamento degli account. È possibile farlo con l'operazione API. `StartAccountAssociationRefresh`

**Importante**  
Il token di accesso emesso deve essere definito per utente, ma non per OAuth client. Il token non deve fornire l'accesso a tutti i dispositivi di tutti gli utenti del client.  
 Il server di autorizzazione deve eseguire una delle seguenti operazioni:  
Emetti token di accesso che contengono un ID estraibile dell'utente finale (proprietario della risorsa), come un token JWT.
Restituisci l'ID dell'utente finale per ogni token di accesso emesso.

## OAuth requisiti di configurazione
<a name="oauth-config-requirements"></a>

La tabella seguente illustra i parametri richiesti dal server di OAuth autorizzazione per le integrazioni gestite per AWS IoT Device Management per eseguire il collegamento degli [account](account-linking-flow.md):


**OAuth Parametri del server**  

|  |  |  | 
| --- |--- |--- |
| Campo | Campo obbligatorio | Commento | 
|  `clientId`  |  Sì  |  Un identificatore pubblico per l'applicazione. Viene utilizzato per avviare flussi di autenticazione e può essere condiviso pubblicamente.  | 
|  `clientSecret`  |  Sì  |  Una chiave segreta utilizzata per autenticare l'applicazione con il server di autorizzazione, soprattutto quando si scambia un codice di autorizzazione con un token di accesso. Deve essere mantenuta riservata e non condivisa pubblicamente.  | 
|  `authorizationType`  |  Sì  |  Il tipo di autorizzazione supportato da questa configurazione di autorizzazione. Attualmente, "OAuth 2.0" è l'unico valore supportato.  | 
|  `authUrl`  |  Sì  |  L'URL di autorizzazione per il provider cloud di terze parti.  | 
|  `tokenUrl`  |  Sì  |  L'URL del token per il provider di servizi cloud di terze parti.  | 
|  `tokenEndpointAuthenticationScheme`  |  Sì  |  Schema di autenticazione di «HTTP\$1BASIC» o «REQUEST\$1BODY\$1CREDENTIALS». HTTP\$1BASIC segnala che le credenziali del client sono incluse nell'intestazione di autorizzazione, mentre il ladder segnala che sono incluse nel corpo della richiesta.  | 

Il OAuth server utilizzato deve essere configurato in modo che i valori delle stringhe dei token di accesso siano codificati in Base64 con il set di caratteri UTF-8.

# Ruoli di collegamento degli account
<a name="roles-account-linking"></a>

Per creare un connettore C2C, avrai bisogno di un server di autorizzazione OAuth 2.0 e di un collegamento all'account. Per ulteriori informazioni, consulta [Flusso di lavoro per il collegamento degli account](account-linking-flow.md).

OAuth 2.0 definisce i seguenti quattro ruoli nell'implementazione del collegamento degli account:

1. Server di autorizzazione

1. Proprietario della risorsa (utente finale)

1. Server di risorse

1. Client

Di seguito vengono definiti ciascuno di questi OAuth ruoli:

**Server di autorizzazione**  
Il server di autorizzazione è il server che identifica e autentica l'identità di un utente finale in un cloud di terze parti. I token di accesso forniti da questo server possono collegare l'account della piattaforma cliente dell'utente AWS finale e l'account della piattaforma di terze parti. Questo processo è denominato collegamento dell'account.  
Il server di autorizzazione supporta il collegamento degli account fornendo quanto segue:  
+ Visualizza una pagina di accesso per consentire all'utente finale di accedere al sistema. Questo viene in genere definito endpoint di autorizzazione.
+ Autentica l'utente finale nel sistema.
+ Genera un codice di autorizzazione che identifica l'utente finale.
+ Trasmette il codice di autorizzazione alle integrazioni gestite per AWS IoT Device Management.
+ Accetta il codice di autorizzazione dalle integrazioni gestite per AWS IoT Device Management e restituisce un token di accesso che le integrazioni gestite per AWS IoT Device Management possono utilizzare per accedere ai dati dell'utente finale nel tuo sistema. Questa operazione viene in genere completata tramite un URI separato, chiamato URI token o endpoint.
Il server di autorizzazione deve supportare il flusso del codice di autorizzazione OAuth 2.0 da utilizzare con integrazioni gestite per AWS IoT Device Management Connector. le integrazioni gestite per AWS IoT Device Management supportano anche il flusso del codice di autorizzazione con [Proof Key for Code Exchange (](https://www.rfc-editor.org/rfc/rfc7636)PKCE).  
Il server di autorizzazione deve:  
+ Emetti token di accesso che contengono l'ID estraibile dell'utente finale o del proprietario della risorsa, ad esempio token JWT
+ Puoi restituire l'ID dell'utente finale per ogni token di accesso emesso
In caso contrario, il connettore non sarà in grado di supportare l'operazione richiesta. `AWS.ActivateUser` Ciò impedirà l'utilizzo dei connettori con le integrazioni gestite.
Se lo sviluppatore o il proprietario del connettore non gestisce il proprio server di autorizzazione, il server di autorizzazione utilizzato deve fornire l'autorizzazione per le risorse gestite dalla piattaforma di terze parti dello sviluppatore del connettore. Ciò significa che tutti i token ricevuti dalle integrazioni gestite dal server di autorizzazione devono fornire limiti di sicurezza significativi sui dispositivi (la risorsa). Ad esempio, un token per utenti finali non consente comandi su un altro dispositivo dell'utente finale; le autorizzazioni fornite dal token sono mappate alle risorse all'interno della piattaforma. Considerate l'esempio di *Lights Incorporated*. Quando un utente finale avvia il flusso di collegamento dell'account con il proprio connettore, viene reindirizzato alla pagina di accesso di *Lights Incorporated* che si trova davanti al server di autorizzazione. *Dopo aver effettuato l'accesso e concesso le autorizzazioni al client, forniscono un token che consente al connettore di accedere alle risorse all'interno del proprio account Lights Incorporated.* 

**Proprietario della risorsa (utente finale)**  
In qualità di proprietario della risorsa, consenti a integrazioni gestite per i clienti di AWS IoT Device Management di accedere alle risorse associate al tuo account eseguendo il collegamento dell'account. Ad esempio, si consideri la lampadina intelligente che un utente finale ha inserito nell'applicazione mobile *Lights* Incorporated. Il proprietario della risorsa si riferisce all'account dell'utente finale che ha acquistato e effettuato l'onboarding del dispositivo. Nel nostro esempio, il proprietario della risorsa è modellato come un account *Lights Incorporated OAuth2 2.0*. In qualità di proprietario della risorsa, questo account fornisce le autorizzazioni per emettere comandi e gestire il dispositivo.

**Server di risorse**  
Questo è il server che ospita le risorse protette che richiedono l'autorizzazione all'accesso (dati del dispositivo). Il AWS cliente deve accedere alle risorse protette per conto di un utente finale e lo fa tramite integrazioni gestite per i connettori AWS IoT Device Management dopo il collegamento dell'account. Considerando ad esempio la lampadina intelligente di prima, il server di risorse è un servizio basato su cloud di proprietà di *Lights Incorporated* che gestisce la lampadina dopo l'installazione. Tramite il server di risorse, il proprietario della risorsa può impartire comandi alla lampadina intelligente, come accenderla e spegnerla. La risorsa protetta fornisce solo le autorizzazioni per l'account dell'utente finale e per altri account a accounts/entities cui potrebbe aver fornito l'autorizzazione. 

**Cliente**  
In questo contesto, il client è il tuo connettore C2C. Un client è definito come un'applicazione a cui viene concesso l'accesso alle risorse all'interno di un server di risorse per conto dell'utente finale. Il processo di collegamento dell'account rappresenta il connettore, il client, che richiede l'accesso alle risorse di un utente finale all'interno del cloud di terze parti.   
Sebbene il connettore sia il OAuth client, le integrazioni gestite per AWS IoT Device Management eseguono operazioni per conto del connettore. Ad esempio, le integrazioni gestite per AWS IoT Device Management inoltrano richieste al server di autorizzazione per ottenere un token di accesso. Il connettore è ancora considerato il client perché è l'unico componente che accede alla risorsa protetta (dati del dispositivo) nel server di risorse.  
Considerate la lampadina intelligente che è stata integrata da un utente finale. Una volta completato il collegamento dell'account tra la piattaforma del cliente e il server di autorizzazione di *Lights Incorporated*, il connettore stesso comunicherà con il server di risorse per recuperare informazioni sulla lampadina intelligente dell'utente finale. Il connettore può quindi ricevere comandi dall'utente finale. Ciò include l'accensione o lo spegnimento della luce per loro conto tramite il server di risorse *Lights Incorporated*. Pertanto, designiamo il connettore come client.

# Flusso di lavoro per il collegamento degli account
<a name="account-linking-flow"></a>

Affinché le integrazioni gestite di un cliente per la piattaforma AWS IoT Device Management interagiscano con i dispositivi di un utente finale sulla piattaforma di terze parti tramite il connettore C2C, ottiene il token di accesso tramite il seguente flusso di lavoro:

1. Quando un utente avvia l'onboarding di dispositivi di terze parti tramite l'applicazione del cliente, le integrazioni gestite per AWS IoT Device Management restituiscono l'URI di autorizzazione e il. AssociationId

1. Il front-end dell'applicazione memorizza AssociationId e reindirizza l'utente finale alla pagina di accesso della piattaforma di terze parti.

   1. L'utente finale accede. L'utente finale concede al client l'accesso ai dati del proprio dispositivo.

1. La piattaforma di terze parti crea un codice di autorizzazione. L'utente finale viene reindirizzato alle integrazioni gestite per l'URI di callback della piattaforma AWS IoT Device Management, incluso il codice allegato alla richiesta di reindirizzamento.

1. Le integrazioni gestite scambia questo codice con l'URI del token della piattaforma di terze parti.

1. L'URI del token convalida il codice di autorizzazione e restituisce un token di accesso OAuth2 .0 e un token di aggiornamento, associati all'utente finale.

1. Le integrazioni gestite richiamano il connettore C2C per completare il flusso di collegamento `AWS.ActivateUser` dell'account e ottenere. UserId

1. Le integrazioni gestite restituiscono OAuth RedirectUrl (dalla configurazione Connector Policy) la pagina di autenticazione riuscita all'applicazione del cliente.
**Nota**  
In caso di errori, le integrazioni gestite per AWS IoT Device Management aggiungono i parametri di query error ed error\$1description all'URL fornendo i dettagli dell'errore all'applicazione del cliente.

1. L'applicazione del cliente reindirizza l'utente finale a. OAuth RedirectUrl A questo punto il front-end dell'applicazione conosce AssociationId l'associazione sin dal primo passaggio.

   Tutte le richieste successive effettuate da integrazioni gestite per AWS IoT Device Management tramite il connettore C2C alla piattaforma cloud di terze parti, come i comandi per scoprire dispositivi e inviare comandi, includeranno il token di accesso OAuth2 .0.

Il diagramma seguente mostra la relazione tra i componenti chiave del collegamento degli account:

![\[Connettore C2C: collegamento dell'account, flusso di lavoro con l'autorizzazione OAuth\]](http://docs.aws.amazon.com/it_it/iot-mi/latest/devguide/images/account-linking-workflow.png)
