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 sono specifiche per i progetti basati su. NETFramework e la AWS SDK for .NET versione 3.3 e precedenti.
Amazon.CognitoIdentity.CognitoAWSCredentials
, trovato in AWSSDK. CognitoIdentity
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.
-
Il ruolo non autenticatoARN: un ruolo che assumeranno gli utenti non autenticati. Ad esempio, questo ruolo è in grado di fornire le autorizzazioni di sola lettura per i dati.
-
Il ruolo autenticatoARN: un ruolo che assumeranno gli utenti autenticati. Questo ruolo è in grado di fornire autorizzazioni più estese per i dati.
Configura C ognitoAWSCredentials
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 = "..." }); }