Provider di credenziali Amazon Cognito - AWS SDK for .NET

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

Provider di credenziali Amazon Cognito

Nota

Le informazioni contenute in questo argomento si riferiscono specificamente ai progetti basati su.NET Framework e alla AWS SDK for .NET versione 3.3 e precedenti.

Amazon.CognitoIdentity.CognitoAWSCredentials, disponibile in AWSSDK. CognitoIdentity NuGetpackage, è un oggetto di credenziali che utilizza Amazon Cognito e AWS Security Token Service the AWS STS() per recuperare le credenziali per effettuare chiamate. AWS

Il primo passo per la configurazione di CognitoAWSCredentials è creare un "pool di identità". (Un pool di identità è un archivio di informazioni sull'identità dell'utente specifico per il tuo account. Le informazioni sono recuperabili su più piattaforme client, dispositivi e sistemi operativi, in modo tale che, se un utente inizia a usare l'applicazione su un telefono e successivamente su un tablet, le informazioni sull'applicazione restino a disposizione di quell'utente. Puoi creare un nuovo pool di identità dalla console Amazon Cognito. Se stai utilizzando la console, ti verranno fornite le altre informazioni necessarie:

  • Il tuo numero account: un numero di 12 cifre, ad esempio 123456789012, univoco per il tuo account.

  • L'ARN del ruolo non autenticato: un ruolo che verrà assunto dagli utenti non autenticati. Ad esempio, questo ruolo è in grado di fornire le autorizzazioni di sola lettura per i dati.

  • L'ARN del ruolo autenticato: un ruolo che verrà assunto dagli utenti autenticati. Questo ruolo è in grado di fornire autorizzazioni più estese per i dati.

Configura Cognito AWSCredentials

Il seguente esempio di codice mostra come eseguire la configurazioneCognitoAWSCredentials, che puoi quindi utilizzare per effettuare una chiamata ad Amazon S3 come utente non autenticato. In questo modo è possibile effettuare chiamate con solo una quantità minima dei dati richiesti per autenticare l'utente. Le autorizzazioni utente sono controllate dal ruolo, perciò è possibile configurare l'accesso necessario.

CognitoAWSCredentials credentials = new CognitoAWSCredentials( accountId, // Account number identityPoolId, // Identity pool ID unAuthRoleArn, // Role for unauthenticated users null, // Role for authenticated users, not set region); using (var s3Client = new AmazonS3Client(credentials)) { s3Client.ListBuckets(); }

Utilizza AWS come utente non autenticato

Il seguente esempio di codice mostra come iniziare a utilizzare AWS come utente non autenticato, quindi autenticarsi tramite Facebook e aggiornare le credenziali per utilizzare le credenziali di Facebook. Tramite questo approccio, è possibile concedere diverse funzionalità agli utenti autenticati tramite il ruolo autenticato. Ad esempio, sarebbe possibile avere un'applicazione per telefono che consente agli utenti di visualizzare i contenuti in modo anonimo, ma permette loro di pubblicare se connessi a uno o più provider configurati.

CognitoAWSCredentials credentials = new CognitoAWSCredentials( accountId, identityPoolId, unAuthRoleArn, // Role for unauthenticated users authRoleArn, // Role for authenticated users region); using (var s3Client = new AmazonS3Client(credentials)) { // Initial use will be unauthenticated s3Client.ListBuckets(); // Authenticate user through Facebook string facebookToken = GetFacebookAuthToken(); // Add Facebook login to credentials. This clears the current AWS credentials // and retrieves new AWS credentials using the authenticated role. credentials.AddLogin("graph.facebook.com", facebookAccessToken); // This call is performed with the authenticated role and credentials s3Client.ListBuckets(); }

L'oggetto CognitoAWSCredentials offre anche più funzionalità se utilizzato con il AmazonCognitoSyncClient che fa parte di AWS SDK for .NET. Se si utilizzano entrambi AmazonCognitoSyncClient eCognitoAWSCredentials, non è necessario specificare le IdentityId proprietà IdentityPoolId e quando si effettuano chiamate con. AmazonCognitoSyncClient Queste proprietà vengono automaticamente riempite da CognitoAWSCredentials. Il prossimo codice illustra quanto sopra, nonché un evento che notifica ogni modifica dell'IdentityId per CognitoAWSCredentials. Il codice IdentityId può variare in alcuni casi, ad esempio quando si passa da un utente non autenticato a uno autenticato.

CognitoAWSCredentials credentials = GetCognitoAWSCredentials(); // Log identity changes credentials.IdentityChangedEvent += (sender, args) => { Console.WriteLine("Identity changed: [{0}] => [{1}]", args.OldIdentityId, args.NewIdentityId); }; using (var syncClient = new AmazonCognitoSyncClient(credentials)) { var result = syncClient.ListRecords(new ListRecordsRequest { DatasetName = datasetName // No need to specify these properties //IdentityId = "...", //IdentityPoolId = "..." }); }