

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
<a name="getting-credentials"></a>

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 (). AWS Security Token Service AWS STS Per ottenere le credenziali AWS per gli utenti dell'app, ti consigliamo di utilizzare `AWS.CognitoIdentityCredentials`. L'identità nell'oggetto credentials viene quindi scambiata con credenziali utilizzando. AWS STS

**Nota**  
Se hai creato il pool di identità prima di febbraio 2015, devi riassociare i ruoli con il pool di identità per utilizzare il costruttore `AWS.CognitoIdentityCredentials` senza i ruoli come parametri. A tale scopo, apri [console Amazon Cognito](https://console.aws.amazon.com/cognito/home), scegli **Manage identity pools** (Gestisci pool di identità), seleziona il pool di identità, scegli **Edit identity Pool** (Modifica pool di identità), specifica i ruoli autenticati e non autenticati e salva le modifiche. 

I provider di credenziali di identità Web fanno parte della catena di provider di credenziali predefinita in. AWS SDKs 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. Vedi [Assume il ruolo di fornitore di credenziali](https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html) nella Guida di riferimento agli strumenti AWS SDKs 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à](https://docs.amplify.aws/lib/auth/advanced/q/platform/android/#identity-pool-federation) (Android) in Amplify Dev Center
+ [Federazione del pool di identità](https://docs.amplify.aws/lib/auth/advanced/q/platform/ios/#identity-pool-federation) (iOS) in Amplify Dev Center
+ [Utilizzo di Amazon Cognito Identity per autenticare gli utenti](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/loading-browser-credentials-cognito.html) nella Developer Guide AWS SDK per JavaScript 
+ [Provider di credenziali Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) nella Developer Guide AWS SDK per .NET 
+ [Specificate le credenziali in modo programmatico](https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specify-credentials-programmatically) nella Guida per gli sviluppatori AWS SDK per Go 
+ [Fornisci credenziali temporanee nel codice contenuto nella Guida](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-explicit.html) per gli sviluppatori AWS SDK for Java 2.x 
+ [assumeRoleWithWebIdentityCredentialProvider](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_provider.html#assume-role-with-web-identity-provider)provider nella Guida per gli AWS SDK per PHP sviluppatori
+ [Assumere il ruolo con provider di identità web](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#assume-role-with-web-identity-provider) nella documentazione  AWS SDK per Python (Boto3) 
+ [Specificazione delle credenziali e della regione predefinita nella Guida](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/credentials.html) per gli sviluppatori AWS SDK per Rust 

Le sezioni seguenti forniscono esempi di codice in alcune versioni precedenti. AWS SDKs

## Android
<a name="getting-credentials-1.android"></a>

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 i passaggi seguenti.

Per utilizzare un pool di identità di Amazon Cognito in un'app Android, configura. AWS Amplify Per ulteriori informazioni, consultare [Autenticazione](https://docs.amplify.aws/lib/auth/getting-started/q/platform/android/) in *Amplify Dev Center*.

**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 [NetworkOnMainThreadException](https://developer.android.com/reference/android/os/NetworkOnMainThreadException.html)se esegui una rete I/O sul thread principale dell'applicazione. È necessario spostare il codice in un thread in background utilizzando `AsyncTask`. Per ulteriori informazioni, consulta la [documentazione di Android](https://developer.android.com/training/basics/network-ops/connecting.html#AsyncTask). Puoi inoltre chiamare `getCachedIdentityId()` 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. 

## iOS - Objective-C
<a name="getting-credentials-1.ios-objc"></a>

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](https://docs.amplify.aws/lib/auth/getting-started/q/platform/ios/) e [Flutter Authentication](https://docs.amplify.aws/lib/auth/getting-started/q/platform/flutter/) nella *Amplify Dev Center*.

**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 provider non è impostato alcun ID identità, la chiamata a `credentialsProvider.identityId` restituirà `nil`. Per ulteriori informazioni, consulta la [documentazione di riferimento del'SDK per iOS](https://github.com/aws-amplify/aws-sdk-ios). 

## iOS - Swift
<a name="getting-credentials-1.ios-swift"></a>

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 i passaggi seguenti. 

Per utilizzare un pool di identità di Amazon Cognito in un'app iOS, configura. AWS Amplify Per ulteriori informazioni, consultare [Swift Authentication](https://docs.amplify.aws/lib/auth/getting-started/q/platform/ios/) in *Amplify Dev Center*.

**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 provider non è impostato alcun ID identità, la chiamata a `credentialsProvider.identityId` restituirà `nil`. Per ulteriori informazioni, consulta la [documentazione di riferimento del'SDK per iOS](https://github.com/aws-amplify/aws-sdk-ios). 

## JavaScript
<a name="getting-credentials-1.javascript"></a>

Se non lo hai già fatto, crea un pool di identità nella [console Amazon Cognito](https://console.aws.amazon.com/cognito) prima di utilizzare `AWS.CognitoIdentityCredentials`.

Dopo aver configurato un pool di identità con i provider di identità, puoi utilizzare `AWS.CognitoIdentityCredentials` per autenticare gli utenti. Per configurare le credenziali dell'applicazione per utilizzare `AWS.CognitoIdentityCredentials`, imposta la proprietà `credentials` di `AWS.Config` o di una configurazione per servizio. Nell'esempio seguente viene utilizzato `AWS.Config`: 

```
// Set the region where your identity pool exists (us-east-1, eu-west-1)
AWS.config.region = 'us-east-1';

// Configure the credentials provider to use your identity pool
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    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'
    }
});

// Make the call to obtain credentials
AWS.config.credentials.get(function(){

    // Credentials will be available when this function is called.
    var accessKeyId = AWS.config.credentials.accessKeyId;
    var secretAccessKey = AWS.config.credentials.secretAccessKey;
    var sessionToken = AWS.config.credentials.sessionToken;

});
```

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](https://developers.facebook.com/docs/facebook-login/web) per ottenere un token del provider di identità: 

```
FB.login(function (response) {
    if (response.authResponse) { // logged in
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
          IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',
          Logins: {
            'graph.facebook.com': response.authResponse.accessToken
          }
        });

        console.log('You are now logged in.');
    } else {
        console.log('There was a problem logging you in.');
    }
});
```

**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:

```
var identityId = AWS.config.credentials.identityId;
```

## Unità
<a name="getting-credentials-1.unity"></a>

 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 i passaggi seguenti. 

L'[SDK AWS  per Xamarin](https://docs.aws.amazon.com/mobile/sdkforunity/developerguide/what-is-unity-plugin.html) fa ora parte di [SDK per .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html). Per iniziare a usare Amazon Cognito in SDK per .NET, consulta il fornitore di [credenziali Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) nella Developer Guide. AWS SDK per .NET Oppure consulta [Amplify Dev](https://docs.amplify.aws/) Center per le opzioni con cui creare un'app. AWS Amplify

**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: 

```
credentials.GetIdentityIdAsync(delegate(AmazonCognitoIdentityResult<string> result) {
    if (result.Exception != null) {
        //Exception!
    }
    string identityId = result.Response;
});
```

## Xamarin
<a name="getting-credentials-1.xamarin"></a>

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 i passaggi seguenti.

L'[SDK AWS  per Xamarin](https://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/Welcome.html) fa ora parte di [SDK per .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html). Per iniziare a usare Amazon Cognito in SDK per .NET, consulta il fornitore di [credenziali Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) nella Developer Guide. AWS SDK per .NET Oppure consulta [Amplify Dev](https://docs.amplify.aws/) Center per le opzioni con cui creare un'app. AWS Amplify

**Nota**  
 **Nota:** se hai creato il pool di identità prima di febbraio 2015, devi riassociare i ruoli con il pool di identità, in modo da utilizzare questo costruttore senza i ruoli come parametri. A tale scopo, apri [console Amazon Cognito](https://console.aws.amazon.com/cognito/home), scegli **Manage identity pools (Gestisci pool di identità)**, seleziona il pool di identità, scegli **Edit identity Pool (Modifica pool di identità)**, specifica i ruoli autenticati e non autenticati e salva le modifiche. 

**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: 

```
var identityId = await credentials.GetIdentityIdAsync();
```