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à.
Ottenere le credenziali
Puoi usare Amazon Cognito per fornire credenziali temporanee con privilegi limitati alla tua applicazione, in modo che gli utenti possano accedere alle risorse. AWS In questa sezione viene descritto come ottenere le credenziali e come recuperare un'identità di Amazon Cognito da un pool di identità.
Amazon Cognito supporta sia le identità autenticate che le identità non autenticate. L'identità degli utenti non autenticati non è verificata. Ciò rende questo ruolo appropriato per utenti guest dell'app o per i casi in cui non importa se l'identità degli utenti è verificata. Gli utenti autenticati accedono all'applicazione tramite un provider di identità di terza parte o un bacino d'utenza, che verifica la loro identità. Assicurati di creare l'ambito delle autorizzazioni di risorse in modo appropriato per evitare che utenti non autenticati possano accedere a esse.
Le identità di Amazon Cognito non sono credenziali. Vengono scambiate con credenziali utilizzando il supporto per la federazione delle identità Web disponibile in (). Servizio di token di sicurezza AWS AWS STS Per ottenere AWS le credenziali per gli utenti della tua app, utilizza il provider di credenziali del pool di identità Cognito del tuo AWS SDK. Ad esempio, nell' AWS SDK for JavaScript (v3), utilizzate la funzione inclusa nel pacchetto. fromCognitoIdentityPool @aws-sdk/credential-providers L'identità viene quindi scambiata con credenziali utilizzando. AWS STS
I provider di credenziali di identità web fanno parte della catena di provider di credenziali predefinita negli SDK AWS . Per impostare il token del pool di identità in un config file locale per un AWS
SDK o il AWS CLI, aggiungi una web_identity_token_file voce di profilo. Consulta Assume il ruolo di fornitore di credenziali nella Guida di riferimento agli AWS SDK e agli strumenti.
Per ulteriori informazioni su come compilare le credenziali di identità web nell'SDK, fai riferimento alla guida per gli sviluppatori di SDK. Per ottenere i migliori risultati, inizia il tuo progetto con l'integrazione del pool di identità integrata in. AWS Amplify
AWS Risorse SDK per ottenere e impostare credenziali con pool di identità
-
Federazione del pool di identità
(Android) in Amplify Dev Center -
Federazione del pool di identità
(iOS) in Amplify Dev Center -
Utilizzo di Amazon Cognito Identity per autenticare gli utenti nella Developer Guide AWS SDK per JavaScript
-
Provider di credenziali Amazon Cognito nella Developer Guide AWS SDK per .NET
-
Specificate le credenziali in modo programmatico nella Guida per gli sviluppatori AWS SDK for Go
-
Fornisci credenziali temporanee nel codice contenuto nella Guida per gli sviluppatori AWS SDK for Java 2.x
-
assumi come RoleWithWebIdentityCredentialProvider provider nella AWS SDK per PHP Developer Guide
-
Assumere il ruolo con provider di identità web
nella documentazione AWS SDK per Python (Boto3) -
Specificare le credenziali e la regione predefinita nella Developer Guide AWS SDK per Rust
Le sezioni seguenti forniscono esempi di codice in alcuni SDK precedenti AWS .
Puoi usare Amazon Cognito per fornire credenziali temporanee con privilegi limitati alla tua applicazione, in modo che gli utenti possano accedere alle risorse. AWS Amazon Cognito supporta sia le identità autenticate sia le identità non autenticate. Per fornire AWS le credenziali alla tua app, segui questi passaggi.
Per utilizzare un pool di identità di Amazon Cognito in un'app Android, configura. AWS Amplify Per ulteriori informazioni, consultare Autenticazione
Recupero di una identità di Amazon Cognito
Se autorizzi gli utenti non autenticati, puoi recuperare immediatamente un identificatore univoco di Amazon Cognito (ID identità) per l'utente finale. Se esegui l'autenticazione degli utenti, puoi recuperare l'ID identità dopo aver impostato i token di accesso nel provider di credenziali:
String identityId = credentialsProvider.getIdentityId(); Log.d("LogTag", "my ID is " + identityId);
Nota
Non chiamare getIdentityId(), refresh() o getCredentials() nel thread principale dell'applicazione. A partire da Android 3.0 (API Level 11), l'app fallirà automaticamente e genererà un errore NetworkOnMainThreadExceptionAsyncTask. Per ulteriori informazioni, consulta la documentazione di AndroidgetCachedIdentityId() per recuperare un ID, ma solo se ce n'è già uno memorizzato nella cache in locale. In caso contrario, il metodo restituirà un valore nullo.
Puoi usare Amazon Cognito per fornire credenziali temporanee con privilegi limitati alla tua applicazione, in modo che gli utenti possano accedere alle risorse. AWS I pool di identità di Amazon Cognito supportano sia le identità autenticate che le identità non autenticate. Per fornire AWS le credenziali alla tua app, completa i seguenti passaggi.
Per utilizzare un pool di identità di Amazon Cognito in un'app iOS, configura. AWS Amplify Per ulteriori informazioni, consultare Swift Authentication
Recupero di una identità di Amazon Cognito
Puoi recuperare immediatamente un identificatore di identità univoco di Amazon Cognito (ID identità) per l'utente finale se autorizzi gli utenti non autenticati o dopo aver impostato i token di accesso nel fornitore di credenziali se autentichi gli utenti:
// Retrieve your Amazon Cognito ID [[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"Error: %@", task.error); } else { // the task result will contain the identity id NSString *cognitoId = task.result; } return nil; }];
Nota
getIdentityId è una chiamata asincrona. Se sul tuo provider è già impostato un ID identità, puoi chiamare credentialsProvider.identityId per recuperare tale identità, la quale è memorizzata nella cache in locale. Tuttavia, se sul tuo provider non è impostato un ID di identità, la chiamata credentialsProvider.identityId ritornanil. Per ulteriori informazioni, consulta la documentazione di riferimento del'SDK per iOS
Puoi usare Amazon Cognito per fornire credenziali temporanee con privilegi limitati alla tua applicazione in modo che gli utenti possano accedere alle risorse. AWS Amazon Cognito supporta sia le identità autenticate sia le identità non autenticate. Per fornire AWS le credenziali alla tua app, segui questi passaggi.
Per utilizzare un pool di identità di Amazon Cognito in un'app iOS, configura. AWS Amplify Per ulteriori informazioni, consultare Swift Authentication
Recupero di una identità di Amazon Cognito
Puoi recuperare immediatamente un identificatore di identità univoco di Amazon Cognito (ID identità) per l'utente finale se autorizzi gli utenti non autenticati o dopo aver impostato i token di accesso nel fornitore di credenziali se autentichi gli utenti:
// Retrieve your Amazon Cognito ID credentialsProvider.getIdentityId().continueWith(block: { (task) -> AnyObject? in if (task.error != nil) { print("Error: " + task.error!.localizedDescription) } else { // the task result will contain the identity id let cognitoId = task.result! print("Cognito id: \(cognitoId)") } return task; })
Nota
getIdentityId è una chiamata asincrona. Se sul tuo provider è già impostato un ID identità, puoi chiamare credentialsProvider.identityId per recuperare tale identità, la quale è memorizzata nella cache in locale. Tuttavia, se sul tuo provider non è impostato un ID di identità, la chiamata credentialsProvider.identityId ritornanil. Per ulteriori informazioni, consulta la documentazione di riferimento del'SDK per iOS
Se non lo hai già fatto, crea un pool di identità nella console Amazon CognitofromCognitoIdentityPool.
Dopo aver configurato un pool di identità con i tuoi provider di identità, puoi utilizzare la fromCognitoIdentityPool funzione inclusa nel @aws-sdk/credential-providers pacchetto per autenticare gli utenti. Anziché impostare un valore globaleAWS.config.credentials, collega il provider di credenziali direttamente a ciascun client di servizio tramite la relativa credentials proprietà. L'SDK v3 risolve pigramente il provider la prima volta che il client effettua una richiesta, quindi non è necessaria una chiamata separata per ottenere le credenziali. L'esempio seguente collega il provider a un: S3Client
import { S3Client } from "@aws-sdk/client-s3"; import { fromCognitoIdentityPool } from "@aws-sdk/credential-providers"; // Set the region where your identity pool exists (for example, us-east-1 or eu-west-1) const region = "REGION"; // Attach the credentials provider to your service client const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "IDENTITY_POOL_ID", logins: { // optional tokens, used for authenticated login "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "accounts.google.com": "GOOGLETOKEN", "appleid.apple.com": "APPLETOKEN" }, clientConfig: { region }, }), }); // Credentials are resolved lazily when the client first makes a request. // To inspect them directly, call the provider and await the result // (from inside an async function): const credentials = await client.config.credentials(); const { accessKeyId, secretAccessKey, sessionToken } = credentials;
La proprietà logins opzionale è una mappa di nomi di provider di identità ai token di identità per tali provider. Il modo in cui ottieni il token dal provider di identità dipende dal provider utilizzato. Ad esempio, se Facebook è uno dei provider di identità, puoi utilizzare la funzione FB.login di SDK di Facebook
FB.login(function (response) { if (response.authResponse) { // logged in const region = "us-east-1"; const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "us-east-1:1699ebc0-7900-4099-b910-2df94f52a030", logins: { "graph.facebook.com": response.authResponse.accessToken }, clientConfig: { region }, }), }); console.log('You are now logged in.'); } else { console.log('There was a problem logging you in.'); } });
Recupero di una identità di Amazon Cognito
Puoi recuperare un identificatore Amazon Cognito (ID di identità) univoco per il tuo utente finale. Se consenti utenti non autenticati, puoi recuperarlo immediatamente. Se autentichi gli utenti, recuperali dopo aver impostato i token di accesso. Il fromCognitoIdentityPool provider espone le identityId credenziali che risolve, quindi puoi leggerle dalle credenziali risolte di un client che utilizza il provider:
// Inside an async function: const { identityId } = await client.config.credentials();
Puoi usare Amazon Cognito per fornire credenziali temporanee con privilegi limitati alla tua applicazione, in modo che gli utenti possano accedere alle risorse. AWS Amazon Cognito supporta sia le identità autenticate sia le identità non autenticate. Per fornire AWS le credenziali alla tua app, segui questi passaggi.
L'SDK AWS per Xamarin fa ora parte di SDK per .NET. Per iniziare a usare Amazon Cognito in SDK per .NET, consulta il fornitore di credenziali Amazon Cognito nella Developer Guide. AWS SDK per .NET Oppure consulta Amplify Dev
Recupero di una identità di Amazon Cognito
Se autorizzi gli utenti non autenticati, puoi recuperare immediatamente un identificatore di identità univoco di Amazon Cognito (ID identità) per l'utente finale. Se autentichi gli utenti, lo puoi recuperare dopo aver impostato i token di accesso nel fornitore di credenziali:
string identityId = await credentials.GetIdentityIdAsync();