

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.

# Liaison d'utilisateurs fédérés à un profil utilisateur existant
<a name="cognito-user-pools-identity-federation-consolidate-users"></a>

Souvent, le même utilisateur possède un profil auprès de plusieurs fournisseurs d'identité (IdPs) que vous avez connectés à votre groupe d'utilisateurs. Amazon Cognito peut lier chaque occurrence d'un utilisateur au même profil utilisateur dans votre répertoire. Ainsi, une personne ayant plusieurs utilisateurs d'IdP peut bénéficier d'une expérience cohérente dans votre application. [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)indique à Amazon Cognito de reconnaître l'identifiant unique d'un utilisateur dans votre annuaire fédéré en tant qu'utilisateur du groupe d'utilisateurs. Un utilisateur de votre groupe d'utilisateurs compte comme un utilisateur actif mensuel dans le cadre de la [facturation](https://aws.amazon.com/cognito/pricing/) lorsque vous avez zéro, une ou plusieurs identités fédérées associées au profil utilisateur.

Lorsqu'un utilisateur fédéré se connecte à votre groupe d'utilisateurs pour la première fois, Amazon Cognito recherche un profil local que vous avez associé à son identité. S'il n'existe aucun profil lié, votre groupe d'utilisateurs crée un nouveau profil. Vous pouvez créer un profil local et le lier à votre utilisateur fédéré à tout moment avant sa première connexion, dans une demande d'`AdminLinkProviderForUser`API, soit dans le cadre d'une tâche de prépréparation planifiée, soit dans un. [Déclencheur Lambda Avant l'inscription](user-pool-lambda-pre-sign-up.md) Une fois que votre utilisateur s'est connecté et qu'Amazon Cognito a détecté un profil local associé, votre groupe d'utilisateurs lit les enregistrements de vos utilisateurs et les compare aux règles de mappage pour l'IdP. Votre groupe d'utilisateurs met ensuite à jour le profil local associé avec les enregistrements mappés à partir de leur connexion. De cette façon, vous pouvez configurer le profil local avec les demandes d'accès et conserver leurs demandes d'identité up-to-date auprès de votre fournisseur. Une fois qu'Amazon Cognito a associé votre utilisateur fédéré à un profil associé, il se connecte toujours à ce profil. Vous pouvez ensuite associer plusieurs identités de fournisseurs de vos utilisateurs au même profil, afin d'offrir à un client une expérience cohérente dans votre application. Pour associer un utilisateur fédéré qui s'est déjà connecté, vous devez d'abord supprimer son profil existant. Vous pouvez identifier les profils existants par leur format : `[Provider name]_identifier`. Par exemple, `LoginWithAmazon_amzn1.account.AFAEXAMPLE`. Un utilisateur que vous avez créé puis associé à une identité d'utilisateur tiers possède le nom d'utilisateur avec lequel il a été créé et un `identities` attribut contenant les détails de ses identités associées.

**Important**  
Étant donné qu'il `AdminLinkProviderForUser` permet à un utilisateur doté d'une identité fédérée externe de se connecter en tant qu'utilisateur existant dans le groupe d'utilisateurs, il est essentiel de ne l'utiliser qu'avec des attributs externes IdPs et de fournisseur approuvés par le propriétaire de l'application.

Par exemple, si vous êtes un fournisseur de services gérés (MSP) avec une application que vous partagez avec plusieurs clients. Chacun des clients se connecte à votre application via Active Directory Federation Services (ADFS). Votre administrateur informatique, Carlos, possède un compte dans chaque domaine de vos clients. Vous voulez que Carlos soit reconnu comme administrateur d'application chaque fois qu'il se connecte, quel que soit le fournisseur d'identité.

Votre ADFS IdPs présente l'adresse e-mail de Carlos `msp_carlos@example.com` dans la `email` réclamation des assertions SAML de Carlos auprès d'Amazon Cognito. Vous créez un utilisateur dans votre groupe d'utilisateurs avec le nom d'utilisateur `Carlos`. Les commandes suivantes AWS Command Line Interface (AWS CLI) relient les identités de Carlos à partir de IdPs ADFS1 ADFS2, et. ADFS3

**Note**  
Vous pouvez lier un utilisateur en fonction de revendications d'attributs spécifiques. Cette capacité est propre à OIDC et IdPs SAML. Pour les autres types de fournisseurs, vous devez créer une liaison basée sur un attribut source fixe. Pour de plus amples informations, veuillez consulter [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html). Vous devez définir `ProviderAttributeName` sur `Cognito_Subject` lorsque vous liez un fournisseur d'identité social à un profil utilisateur. `ProviderAttributeValue` doit être l'identifiant unique de l'utilisateur avec votre fournisseur d'identité.

```
aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS1,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS2,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS3,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com
```

Le profil utilisateur `Carlos` dans votre groupe d'utilisateurs possède désormais l'attribut `identities` suivant.

```
[{
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS1",
    "providerType": "SAML",
    "issuer": "http://auth.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}, {
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS2",
    "providerType": "SAML",
    "issuer": "http://auth2.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}, {
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS3",
    "providerType": "SAML",
    "issuer": "http://auth3.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}]
```

**Points à savoir sur la liaison d'utilisateurs fédérés**
+ Vous pouvez lier jusqu'à cinq utilisateurs fédérés à chaque profil utilisateur.
+ Vous pouvez lier des utilisateurs à chaque IdP à partir d'un maximum de cinq revendications d'attribut IdP, comme défini par le `ProviderAttributeName` paramètre d'une demande d'API`SourceUser`. `AdminLinkProviderForUser` Par exemple, si vous avez lié au moins un utilisateur aux attributs source`email`,,`phone`, et `department` `given_name``location`, vous ne pouvez lier des utilisateurs supplémentaires qu'à l'un de ces cinq attributs.
+ Vous pouvez lier des utilisateurs fédérés à un profil utilisateur fédéré existant ou à un utilisateur local.
+ Vous ne pouvez pas associer des fournisseurs à des profils d'utilisateurs dans le AWS Management Console.
+ Le jeton d'identification de votre utilisateur contient tous les fournisseurs associés dans la revendication `identities`.
+ Vous pouvez définir un mot de passe pour le profil utilisateur fédéré créé automatiquement dans une demande d'API. [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) Le statut de cet utilisateur passe alors de `EXTERNAL_PROVIDER` à `CONFIRMED`. Un utilisateur dans cet état peut se connecter en tant qu'utilisateur fédéré et lancer des flux d'authentification dans l'API comme un utilisateur local lié. Ils peuvent également modifier leur mot de passe et leurs attributs dans des requêtes d'API authentifiées par jeton, telles que et. [ChangePassword[UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ChangePassword.html) En tant que bonne pratique de sécurité et pour que les utilisateurs restent synchronisés avec votre fournisseur d'identité externe, ne définissez pas de mots de passe sur les profils utilisateur fédérés. Liez plutôt les utilisateurs à des profils locaux avec `AdminLinkProviderForUser`.
+ Amazon Cognito renseigne les attributs utilisateur dans un profil utilisateur local lié lorsque l'utilisateur se connecte via son fournisseur d'identité. Amazon Cognito traite les demandes d'identité contenues dans le jeton d'identification d'un IdP OIDC et vérifie également le point de terminaison `userInfo` des fournisseurs 2.0 OAuth et OIDC. Amazon Cognito donne la priorité aux informations contenues dans un jeton d'identification par rapport aux informations provenant de `userInfo`.

Lorsque vous apprenez que votre utilisateur n'utilise plus un compte utilisateur externe que vous avez associé à son profil, vous pouvez dissocier ce compte utilisateur de l'utilisateur de votre groupe d'utilisateurs. Lorsque vous avez associé votre utilisateur, vous avez fourni le nom de l'attribut, la valeur de l'attribut et le nom du fournisseur de l'utilisateur dans la demande. Pour supprimer un profil dont votre utilisateur n'a plus besoin, envoyez une demande d'[AdminDisableProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableProviderForUser.html)API avec des paramètres équivalents.

[AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)Pour obtenir d'autres syntaxes de commande et des exemples, reportez-vous au AWS SDKs.