

La AWS SDK pour .NET V3 est passée en mode maintenance.

Nous vous recommandons de migrer vers la version [AWS SDK pour .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter notre [annonce relative au mode de maintenance](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fournisseur d'informations d'identification Amazon Cognito
<a name="cognito-creds-provider"></a>

**Note**  
Les informations contenues dans cette rubrique sont spécifiques aux projets basés sur .NET Framework et les AWS SDK pour .NET versions 3.3 et antérieures.

 `Amazon.CognitoIdentity.CognitoAWSCredentials`, que l'on trouve dans le [AWSSDK. CognitoIdentity](https://www.nuget.org/packages/AWSSDK.CognitoIdentity/) NuGetpackage, est un objet d'identification qui utilise Amazon Cognito et the AWS Security Token Service (AWS STS) pour récupérer les informations d'identification pour passer AWS des appels.

La première étape de configuration de `CognitoAWSCredentials` consiste à créer un « groupe d'identités ». Un groupe d'identités est un magasin d'informations relatives à l'identité de l'utilisateur qui est propre au compte. Les informations peuvent être récupérées quels que soient les plateformes client, appareils et systèmes d'exploitation. Autrement dit, si un utilisateur commence à utiliser votre application sur un téléphone, puis passe à une tablette, les informations de l'application restent disponibles pour cet utilisateur. Vous pouvez créer un nouveau pool d'identités depuis la console Amazon Cognito. Si vous utilisez la console, celle-ci vous fournira également les autres éléments d'information dont vous avez besoin :
+ Votre numéro de compte – Un numéro à 12 chiffres, comme 123456789012, qui est unique pour votre compte.
+ L'ARN du rôle non authentifié – Un rôle que les utilisateurs non authentifiés assumeront. Par exemple, ce rôle peut fournir des autorisations d'accès en lecture seule à vos données.
+ L'ARN du rôle authentifié – Un rôle que les utilisateurs authentifiés assumeront. Ce rôle peut fournir des autorisations plus étendues à vos données.

## Configurer Cognito AWSCredentials
<a name="set-up-cognitoawscredentials"></a>

L'exemple de code suivant montre comment procéder à la configuration`CognitoAWSCredentials`, que vous pouvez ensuite utiliser pour appeler Amazon S3 en tant qu'utilisateur non authentifié. Cela vous permet d'effectuer des appels avec seulement un volume minimum de données requises pour authentifier l'utilisateur. Les autorisations utilisateur sont contrôlées par le rôle. Vous pouvez donc configurer l'accès selon vos besoins.

```
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();
}
```

## Utiliser AWS en tant qu'utilisateur non authentifié
<a name="use-aws-as-an-unauthenticated-user"></a>

L'exemple de code suivant montre comment vous pouvez commencer à utiliser en AWS tant qu'utilisateur non authentifié, puis vous authentifier via Facebook et mettre à jour les informations d'identification pour utiliser les informations d'identification Facebook. En utilisant cette approche, vous pouvez accorder différentes capacités aux utilisateurs authentifiés via le rôle authentifié. Par exemple, votre application de téléphone peut autoriser des utilisateurs à afficher un contenu de manière anonyme, mais leur permet de publier s'ils sont connectés avec un ou plusieurs des fournisseurs configurés.

```
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'objet `CognitoAWSCredentials` fournit encore plus de fonctionnalités si vous l'utilisez avec l'objet `AmazonCognitoSyncClient` qui fait partie du kit AWS SDK pour .NET. Si vous utilisez les deux `AmazonCognitoSyncClient` et`CognitoAWSCredentials`, vous n'avez pas à spécifier les `IdentityId` propriétés `IdentityPoolId` et lorsque vous passez des appels avec le`AmazonCognitoSyncClient`. Ces propriétés sont automatiquement renseignées à partir de `CognitoAWSCredentials`. L'exemple de code suivant illustre ceci, ainsi qu'un événement qui vous informe chaque fois que `IdentityId` pour `CognitoAWSCredentials` est modifié. `IdentityId` peut changer dans certains cas, par exemple lors du passage d'un utilisateur non authentifié à un utilisateur authentifié.

```
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 = "..."        
    });
}
```