View a markdown version of this page

General/Custom Requisiti di autorizzazione per gli sviluppatori di connettori - Integrazioni gestite per AWS IoT Device Management

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

General/Custom Requisiti di autorizzazione per gli sviluppatori di connettori

L'autorizzazione generale consente al connettore di utilizzare credenziali (come chiavi API, token o username/password combinazioni) anziché i token utente OAuth 2.0. A differenza di OAuth 2.0, che fornisce l'autorizzazione a livello utente tramite il collegamento degli account, l'autorizzazione generale consente di controllare i dispositivi di più utenti finali con un unico set di credenziali.

Nota

In questa documentazione, l'autorizzazione personalizzata viene definita autorizzazione generale. Entrambi i termini descrivono lo stesso meccanismo di autorizzazione. Nelle sezioni seguenti, utilizziamo «Autorizzazione generale» per motivi di coerenza.

Questa sezione spiega come implementare il supporto dell'autorizzazione generale nella AWS Lambda funzione del connettore. Se sei un cliente che configura l'autorizzazione generale per un connettore esistente, consultaGeneral/Custom Requisiti di autorizzazione.

Che cos'è l'autorizzazione generale?

L'autorizzazione generale è qualsiasi meccanismo di autorizzazione non OAuth che consente al connettore di autorizzarsi con piattaforme di terze parti utilizzando le credenziali del cliente. Con l'autorizzazione generale, Managed Integrations delega la gestione delle credenziali al connettore e un singolo set di credenziali può controllare i dispositivi di più utenti finali.

Ciò è utile negli scenari in cui hai una relazione commerciale con il fornitore del dispositivo e devi gestire i dispositivi su larga scala senza flussi di autorizzazione dei singoli utenti.

Quando utilizzare l'autorizzazione generale

Valuta la possibilità di implementare il supporto per l'autorizzazione generale nel connettore quando:

  • La piattaforma di terze parti non supporta OAuth 2.0

  • La piattaforma di terze parti fornisce materiale di autorizzazione personalizzato come chiavi API o credenziali che può risiedere in AWS Secrets Manager

  • È necessario gestire i dispositivi su larga scala senza flussi di autorizzazione dei singoli utenti

Nota

Il connettore può implementare entrambi i tipi di autorizzazione in parallelo, garantendo la compatibilità con diversi framework di autorizzazione.

Come viene utilizzata l'autorizzazione generale AWS Secrets Manager

AWS Secrets Manager è un servizio di archiviazione segreto che protegge le credenziali sensibili come chiavi API e token. I segreti vengono crittografati tramite AWS Key Management Service chiavi. Per ulteriori informazioni, consulta la Guida per l'utente AWS Secrets Manager.

Per l'autorizzazione generale, i clienti memorizzano le credenziali di autorizzazione in Secrets Manager e concedono al connettore C2C l'autorizzazione ad accedere a tali segreti. Quando le integrazioni gestite richiamano il connettore, forniscono l'ARN e l'ID della versione di Secrets Manager nell'intestazione della richiesta. Il connettore recupera il valore segreto e lo utilizza per l'autorizzazione con la piattaforma di terze parti.

Questo approccio garantisce che le integrazioni gestite non gestiscano mai direttamente le credenziali a lungo termine. Il connettore mantiene il pieno controllo sulla gestione delle credenziali e sulla generazione di token, rendendo la soluzione estensibile a qualsiasi meccanismo di autorizzazione supportato dalla piattaforma di terze parti.

Importante

Managed Integrations non accede né gestisce le credenziali memorizzate nell'archivio del cliente. AWS Secrets Manager Il connettore ha il pieno controllo sul recupero, l'analisi e l'utilizzo delle credenziali.

Importante

Ti consigliamo di non registrare credenziali o 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.

Formato di richiesta di autorizzazione generale

Quando Managed Integrations richiama il connettore per un'associazione di account di autorizzazione generale, l'intestazione della richiesta contiene un riferimento anziché un AWS Secrets Manager token OAuth. La struttura della richiesta è coerente in tutte le operazioni del connettore (AWS.ActivateUser,, e). AWS.DiscoverDevices AWS.SendCommand AWS.DeactivateUser

Esempio Esempio: richiesta di autorizzazione generale
{ "header": { "auth": { "secretsManager": { "arn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-key-AbCdEf", "versionId": "a1b2c3d4-5678-90ab-cdef-1234567890ab" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", ... } }
Esempio Esempio: richiesta OAuth 2.0 (per confronto)
{ "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", ... } }
Nota

Il connettore deve gestire entrambi i formati di richiesta. Controlla il auth.type campo per determinare quale metodo di autorizzazione utilizzare per ogni richiesta.

Flusso di lavoro di autorizzazione generale

Quando il connettore riceve una richiesta di autorizzazione generale, segui questo flusso di lavoro:

  • Verifica il tipo di autorizzazione: controlla il auth.type campo nell'intestazione della richiesta per determinare se la richiesta utilizza l'autorizzazione generale

  • Riferimento Extract Secrets Manager: estrae l' AWS Secrets Manager ARN e l'ID di versione dall'oggetto auth.secretsManager

  • Recupera segreto: chiama l' AWS Secrets Manager GetSecretValueAPI utilizzando l'ARN e l'ID di versione forniti

  • Analizza le credenziali: analizza il valore segreto per estrarre le credenziali di autorizzazione (il formato dipende dai requisiti della piattaforma di terze parti)

  • Genera token (se necessario): se necessario, utilizza le credenziali per generare un token di accesso o eseguire i passaggi di autorizzazione aggiuntivi richiesti dalla piattaforma di terze parti

  • Autorizza le chiamate API: utilizza le credenziali o il token generato per autorizzare le chiamate API verso la piattaforma di terze parti

  • Operazione del processo: elabora l'operazione del connettore (AWS.DiscoverDevicesAWS.SendCommand, ecc.) utilizzando la connessione autorizzata

Nota

Il connettore è responsabile di tutta la gestione delle credenziali, inclusa la generazione di token, l'aggiornamento e la gestione degli errori. Managed Integrations fornisce solo il riferimento al segreto; non gestisce le credenziali stesse.

Autorizzazioni Lambda per GeneralAuthorization

Il ruolo di esecuzione Lambda del connettore deve disporre dell'autorizzazione a recuperare segreti dal cliente. AWS Secrets Manager Aggiungi le seguenti autorizzazioni alla tua politica del ruolo di esecuzione Lambda:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.*.amazonaws.com" } } } ] }

Spiegazione dell'autorizzazione

  • secretsmanager:GetSecretValue- Consente alla Lambda di recuperare valori segreti

  • kms:Decrypt- Obbligatorio perché i segreti vengono crittografati tramite chiavi AWS Key Management Service

Nota

La politica di esempio consente l'accesso a qualsiasi segreto. In produzione, è necessario limitare il Resource campo solo ai segreti necessari al connettore. Tuttavia, poiché i clienti creano i propri segreti, potrebbe essere necessario utilizzare una jolly o un documento secondo la convenzione di denominazione che i clienti devono seguire.

Il cliente concederà inoltre alla tua Lambda l'autorizzazione ad accedere al suo segreto specifico tramite la politica delle risorse del segreto.