Utilizzo di Amazon Cognito per applicazioni per dispositivi mobili - AWS Identity and Access 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à.

Utilizzo di Amazon Cognito per applicazioni per dispositivi mobili

Il modo preferito per utilizzare la federazione OIDC è usare Amazon Cognito. Ad esempio, Adele sta sviluppando un gioco per un dispositivo mobile in cui i dati dell'utente, quali punteggi e profili, vengono memorizzati in Amazon S3 e Amazon DynamoDB. Adele potrebbe archiviare questi dati anche in locale sul dispositivo e utilizzare Amazon Cognito per mantenerli sincronizzati su tutti i dispositivi. Tuttavia, Adele è consapevole che, per motivi di sicurezza e manutenzione, le credenziali di sicurezza AWS a lungo termine non dovrebbero essere distribuite con il gioco. Adele sa anche che il gioco potrebbe avere un gran numero di utenti. Per tutti questi motivi, non desidera creare nuove identità utente in IAM per ciascun giocatore. In alternativa, decide di sviluppare il gioco in modo che gli utenti possano effettuare l'accesso utilizzando un'identità già stabilita con un noto provider di identità (IdP) esterno, ad esempio Login with Amazon, Facebook, Google o qualsiasi provider di identità compatibile con OpenID Connect (OIDC). Il suo gioco può sfruttare il meccanismo di autenticazione di uno di questi provider per convalidare l'identità dell'utente.

Per consentire all'app mobile di accedere alle sue AWS risorse, Adele si registra innanzitutto per ottenere un ID sviluppatore con il nome scelto. IdPs Configura anche l'applicazione con ciascuno di questi provider. Nella cartella Account AWS che contiene il bucket Amazon S3 e la tabella DynamoDB per il gioco, Adele utilizza Amazon Cognito per creare ruoli IAM che definiscono con precisione le autorizzazioni di cui il gioco ha bisogno. Se utilizza un IdP OIDC, crea anche un'entità provider di identità IAM OIDC per stabilire un rapporto di fiducia tra il pool di identità di Amazon Cognito che possiede e l'IdP. Account AWS

Nel codice dell'app, Adele chiama l'interfaccia di accesso per il provider di identità che ha configurato in precedenza. Il provider di identità gestisce tutti i dettagli relativi all'accesso dell'utente e l'app riceve un token di accesso OAuth o un token ID OIDC dal provider. L'app di Adele può scambiare queste informazioni di autenticazione con una serie di credenziali di sicurezza temporanee costituite da un ID della chiave di accesso, una chiave di AWS accesso segreta e un token di sessione. L'app può quindi utilizzare queste credenziali per accedere ai servizi web offerti da. AWS L'app è limitata alle autorizzazioni definite nel ruolo che assume.

La figura riportata di seguito mostra un flusso semplificato su come questo processo potrebbe funzionare, usando Login with Amazon come provider di identità. Per la fase 2, l'app può anche utilizzare Facebook, Google o qualsiasi altro IdP compatibile con OIDC, ma ciò non è mostrato qui.

Esempio di flusso di lavoro con utilizzo di Amazon Cognito per effettuare la federazione degli utenti per un'applicazione per dispositivi mobili

  1. Un cliente avvia l'app su un dispositivo mobile. L'app richiede all'utente di effettuare l'accesso.

  2. L'app utilizza il login con le risorse di Login with Amazon per accettare le credenziali dell'utente.

  3. L'app utilizza le operazioni dell'API Amazon Cognito GetId e GetCredentialsForIdentity per scambiare il token ID di Login with Amazon con un token di Amazon Cognito. Amazon Cognito, che è stato configurato per rendere attendibile il tuo progetto Login with Amazon, genera un token che scambia con credenziali di sessione temporanee per AWS STS.

  4. L'app riceve le credenziali di sicurezza temporanee da Amazon Cognito. La tua app può anche utilizzare il flusso di lavoro Basic (Classic) in Amazon Cognito per recuperare i token da utilizzare. AWS STS AssumeRoleWithWebIdentity Per ulteriori informazioni, consulta Flusso di autenticazione dei pool di identità (identità federate) nella Guida per gli sviluppatori di Amazon Cognito.

  5. Le credenziali di sicurezza temporanee possono essere utilizzate dall'app per accedere alle risorse AWS richieste dall'applicazione per funzionare. Il ruolo associato alle credenziali di sicurezza temporanee e alle relative policy assegnate determina a quali elementi è possibile accedere.

Utilizza la seguente procedura per configurare la tua app in modo che utilizzi Amazon Cognito per autenticare gli utenti e consentire all'app di accedere alle risorse. AWS Per le operazioni specifiche per realizzare questo scenario, consulta la documentazione di Amazon Cognito.

  1. (Facoltativo) Registrati come sviluppatore con Login with Amazon, Facebook, Google o qualsiasi altro provider di identità compatibile con OpenID Connect (OIDC) e configura una o più app con il provider. Questa fase è facoltativa poiché Amazon Cognito supporta anche l'accesso non autenticato (guest) per gli utenti.

  2. Vai ad Amazon Cognito in. AWS Management Console Utilizza la procedura guidata di Amazon Cognito per creare un pool di identità, ovvero un container che Amazon Cognito utilizza per mantenere le identità degli utenti finali organizzate per le app. Puoi condividere i pool di identità tra le app. Quando configuru un pool di identità, Amazon Cognito crea uno o due ruoli IAM (uno per le identità autenticate e uno per le identità "guest" non autenticate) che definiscono le autorizzazioni per gli utenti di Amazon Cognito.

  3. Integra AWSAmplify con l'app e importa i file necessari per utilizzare Amazon Cognito.

  4. Crea un'istanza del provider di credenziali di Amazon Cognito, passando l'ID del pool di identità, il numero del tuo Account AWS e l'Amazon Resource Name (ARN) dei ruoli associati al pool di identità. La procedura guidata di Amazon Cognito AWS Management Console fornisce un codice di esempio per aiutarti a iniziare.

  5. Quando l'app accede a una AWS risorsa, passa l'istanza del provider di credenziali all'oggetto client, che passa le credenziali di sicurezza temporanee al client. Le autorizzazioni per le credenziali si basano sul ruolo o sui ruoli definiti in precedenza.

Per ulteriori informazioni, consulta gli argomenti seguenti: