

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.

# Connexion au groupe d'utilisateurs avec des fournisseurs d'identité tiers
<a name="cognito-user-pools-identity-federation"></a>

Les utilisateurs de votre application peuvent soit se connecter directement via un groupe d'utilisateurs, soit fédérer via un fournisseur d'identité (IdP) tiers. Le groupe d'utilisateurs gère les frais généraux liés à la gestion des jetons renvoyés lors de la connexion aux réseaux sociaux via Facebook, Google, Amazon et Apple, et depuis OpenID Connect (OIDC) et SAML. IdPs Grâce à l'interface utilisateur Web hébergée intégrée, Amazon Cognito permet le traitement et la gestion des jetons pour tous les utilisateurs authentifiés. IdPs Ainsi, vos systèmes backend peuvent ainsi utiliser un ensemble de jetons de groupe d'utilisateurs standard.

## Fonctionnement de la connexion fédérée dans les groupes d'utilisateurs Amazon Cognito
<a name="cognito-user-pools-identity-federation-how-it-works"></a>

La connexion via un tiers (fédération) est disponible dans les groupes d'utilisateurs Amazon Cognito. Cette fonctionnalité est indépendante de la fédération via les groupes d'identités Amazon Cognito (identités fédérées).

![\[Présentation de l'authentification avec connexion par les réseaux sociaux\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/scenario-authentication-cup.png)


Amazon Cognito est un annuaire d'utilisateurs et un fournisseur d'identité OAuth (IdP) 2.0. Lorsque vous connectez des *utilisateurs locaux* dans l'annuaire Amazon Cognito, votre groupe d'utilisateurs est un fournisseur d'identité pour votre application. Un utilisateur local existe exclusivement dans l’annuaire de votre groupe d’utilisateurs sans fédération via un fournisseur d’identité externe.

Lorsque vous connectez Amazon Cognito à un réseau social, à SAML ou à OpenID Connect (OIDC IdPs), votre groupe d'utilisateurs fait office de pont entre plusieurs fournisseurs de services et votre application. Pour votre fournisseur d'identité, Amazon Cognito est un fournisseur de services. Vous IdPs transmettez un jeton d'identification OIDC ou une assertion SAML à Amazon Cognito. Amazon Cognito lit les revendications concernant votre utilisateur dans le jeton ou l'assertion et les associe à un nouveau profil d'utilisateur dans le répertoire de votre groupe d'utilisateurs.

Amazon Cognito crée ensuite un profil utilisateur pour votre utilisateur fédéré dans son propre répertoire. Amazon Cognito ajoute des attributs à votre utilisateur en fonction des revendications de votre fournisseur d'identité et, dans le cas des fournisseurs d'identité sociale ou basé sur OIDC, un point de terminaison `userinfo` public géré par un fournisseur d'identité. Les attributs de votre utilisateur changent dans votre groupe d'utilisateurs lorsqu'un attribut IdP mappé change. Vous pouvez également ajouter d'autres attributs indépendants de ceux du fournisseur d'identité.

Une fois qu'Amazon Cognito a créé un profil pour votre utilisateur fédéré, il change de fonction et se présente comme le fournisseur d'identité de votre application, qui est maintenant le fournisseur de services. Amazon Cognito est une combinaison d'OIDC et d'IdP 2.0 OAuth . Il génère des jetons d'accès, des jetons d'identification et des jetons d'actualisation. Pour plus d'informations sur les jetons, consultez [Comprendre les jetons Web JSON du pool d'utilisateurs (JWTs)](amazon-cognito-user-pools-using-tokens-with-identity-providers.md).

Vous devez concevoir une application qui s'intègre à Amazon Cognito pour authentifier et autoriser vos utilisateurs, qu'ils soient fédérés ou locaux.

## Responsabilités d'une application en tant que fournisseur de services Amazon Cognito
<a name="cognito-user-pools-identity-federation-how-it-works-app-responsibilities"></a><a name="cognito-user-pools-identity-federation-how-it-works-app-responsibilities"></a>

**Vérification et traitement des informations contenues dans les jetons**  
Dans la plupart des scénarios, Amazon Cognito redirige votre utilisateur authentifié vers une URL d'application à laquelle il ajoute un code d'autorisation. Votre application [échange ce code](https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html) pour obtenir les jetons d'accès, d'identification et d'actualisation. Ensuite, elle doit [vérifier la validité des jetons](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html) et fournir des informations à votre utilisateur en fonction des revendications contenues dans les jetons.

**Réponse aux événements d'authentification avec les demandes d'API Amazon Cognito**  
Votre application doit s'intégrer à l'[API des groupes d'utilisateurs Amazon Cognito](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html) et aux [points de terminaison de l'API d'authentification](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html). L'API d'authentification connecte et déconnecte votre utilisateur, et gère les jetons. L'API des groupes d'utilisateurs fournit diverses opérations qui gèrent votre groupe d'utilisateurs, vos utilisateurs et la sécurité de votre environnement d'authentification. Votre application doit savoir ce qu'il faut faire ensuite lorsqu'elle reçoit une réponse d'Amazon Cognito.

## Informations utiles concernant la connexion tierce aux groupes d'utilisateurs Amazon Cognito
<a name="cognito-user-pools-identity-federation-how-it-works-considerations"></a><a name="cognito-user-pools-identity-federation-how-it-works-considerations"></a>
+ Si vous souhaitez que vos utilisateurs se connectent avec des fournisseurs fédérés, vous devez choisir un domaine. Cela permet de configurer les pages de [connexion gérée](cognito-userpools-server-contract-reference.md). Pour de plus amples informations, veuillez consulter [Utiliser votre propre domaine pour la connexion gérée](cognito-user-pools-add-custom-domain.md).
+ Vous ne pouvez pas connecter des utilisateurs fédérés à l'aide d'opérations d'API telles que [ InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)et [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html). Les utilisateurs fédérés peuvent se connecter uniquement avec le [Point de terminaison de connexion](login-endpoint.md) ou le [Point de terminaison d’autorisation](authorization-endpoint.md).
+ Le [Point de terminaison d’autorisation](authorization-endpoint.md) est un point de terminaison de *redirection*. Si vous fournissez un `identity_provider` paramètre `idp_identifier` ou dans votre demande, il est redirigé silencieusement vers votre IdP, en contournant la connexion gérée. Dans le cas contraire, il est redirigé vers le login [Point de terminaison de connexion](login-endpoint.md) géré.
+ Lorsque la connexion gérée redirige une session vers un IdP fédéré, Amazon Cognito inclut l'en-tête dans la demande. `user-agent` `Amazon/Cognito`
+ Amazon Cognito dérive l'attribut `username` pour un profil d'utilisateur fédéré à partir d'une combinaison d'un identifiant fixe et du nom de votre fournisseur d'identité. Pour générer un nom d'utilisateur correspondant à vos exigences personnalisées, créez un mappage avec l'attribut `preferred_username`. Pour de plus amples informations, veuillez consulter [Choses à savoir sur les mappages](cognito-user-pools-specifying-attribute-mapping.md#cognito-user-pools-specifying-attribute-mapping-requirements).

  Exemple : `MyIDP_bob@example.com`
+ Amazon Cognito crée un [groupe d'utilisateurs](cognito-user-pools-user-groups.md) pour chaque IDC et chaque IdP social que vous ajoutez à votre groupe d'utilisateurs. SAMl Le nom du groupe est au format`[user pool ID]_[IdP name]`, par exemple `us-east-1_EXAMPLE_MYSSO` ou`us-east-1_EXAMPLE_Google`. Chaque profil utilisateur IdP unique généré automatiquement est automatiquement ajouté à ce groupe. [Les utilisateurs liés](cognito-user-pools-identity-federation-consolidate-users.md) ne sont pas automatiquement ajoutés à ce groupe, mais vous pouvez ajouter leurs profils au groupe dans le cadre d'un processus distinct.
+ Amazon Cognito enregistre les informations sur l'identité de votre utilisateur fédéré dans un attribut, et une revendication dans le jeton d'identification, appelée `identities`. Cette revendication contient le fournisseur de votre utilisateur et son identifiant unique provenant du fournisseur. Vous ne pouvez pas modifier l'attribut `identities` directement dans un profil utilisateur. Pour plus d'informations sur la liaison d'un utilisateur fédéré, consultez [Liaison d'utilisateurs fédérés à un profil utilisateur existant](cognito-user-pools-identity-federation-consolidate-users.md).
+ Lorsque vous mettez à jour votre IdP dans une demande d'[https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API, vos modifications peuvent prendre jusqu'à une minute pour apparaître dans la connexion gérée.
+ Amazon Cognito prend en charge jusqu'à 20 redirections HTTP entre lui-même et votre fournisseur d'identité.
+ Lorsque votre utilisateur se connecte avec une connexion gérée, son navigateur enregistre un cookie de session de connexion crypté qui enregistre le client et le fournisseur auprès desquels il s'est connecté. S'ils tentent de se reconnecter avec les mêmes paramètres, la connexion gérée réutilise toute session existante *non expirée*, et l'utilisateur s'authentifie sans fournir à nouveau ses informations d'identification. Si votre utilisateur se reconnecte à l'aide d'un autre fournisseur d'identité, notamment via un basculement vers ou depuis une connexion de groupe d'utilisateurs local, il doit fournir des informations d'identification et générer une nouvelle session de connexion.

  Vous pouvez attribuer n'importe quel groupe d'utilisateurs IdPs à n'importe quel client d'application, et les utilisateurs ne peuvent se connecter qu'avec un IdP que vous avez attribué à leur client d'application.

**Topics**
+ [Fonctionnement de la connexion fédérée dans les groupes d'utilisateurs Amazon Cognito](#cognito-user-pools-identity-federation-how-it-works)
+ [Responsabilités d'une application en tant que fournisseur de services Amazon Cognito](#cognito-user-pools-identity-federation-how-it-works-app-responsibilities)
+ [Informations utiles concernant la connexion tierce aux groupes d'utilisateurs Amazon Cognito](#cognito-user-pools-identity-federation-how-it-works-considerations)
+ [Configuration des fournisseurs d'identités pour votre groupe d'utilisateurs](cognito-user-pools-identity-provider.md)
+ [Utilisation de fournisseurs d'identité sociale avec un pool d'utilisateurs](cognito-user-pools-social-idp.md)
+ [Utilisation de fournisseurs d'identité SAML avec un groupe d'utilisateurs](cognito-user-pools-saml-idp.md)
+ [Utilisation de fournisseurs d'identité OIDC avec un pool d'utilisateurs](cognito-user-pools-oidc-idp.md)
+ [Mappage des attributs d'IdP aux profils et aux jetons](cognito-user-pools-specifying-attribute-mapping.md)
+ [Liaison d'utilisateurs fédérés à un profil utilisateur existant](cognito-user-pools-identity-federation-consolidate-users.md)

# Configuration des fournisseurs d'identités pour votre groupe d'utilisateurs
<a name="cognito-user-pools-identity-provider"></a>

Avec les groupes d'utilisateurs, vous pouvez implémenter la connexion par le biais de divers fournisseurs d'identité externes (IdPs). Cette section du guide contient des instructions pour configurer ces fournisseurs d'identité avec votre groupe d'utilisateurs dans la console Amazon Cognito. Vous pouvez également utiliser l'API des groupes d'utilisateurs et un AWS SDK pour ajouter par programmation des fournisseurs d'identité aux groupes d'utilisateurs. Pour de plus amples informations, veuillez consulter [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html).

Les options de fournisseur d'identité prises en charge incluent les fournisseurs de réseaux sociaux tels que Facebook, Google et Amazon, ainsi que les fournisseurs OpenID Connect (OIDC) et SAML 2.0. Avant de commencer, configurez-vous les informations d'identification administratives de votre IdP. Pour chaque type de fournisseur, vous devez enregistrer votre application, obtenir les informations d'identification nécessaires, puis configurer les détails du fournisseur dans votre groupe d'utilisateurs. Vos utilisateurs peuvent ensuite s'inscrire et se connecter à votre application avec leurs comptes existants auprès des fournisseurs d'identité connectés.

Le menu des **fournisseurs sociaux et externes** sous **Authentification** ajoute et met à jour le groupe d'utilisateurs IdPs. Pour de plus amples informations, veuillez consulter [Connexion au groupe d'utilisateurs avec des fournisseurs d'identité tiers](cognito-user-pools-identity-federation.md).

**Topics**
+ [Configuration d'une connexion utilisateur avec un fournisseur d'identité social](#cognito-user-pools-facebook-provider)
+ [Configuration d'une connexion utilisateur avec un fournisseur d'identité social OIDC](#cognito-user-pools-oidc-providers)
+ [Configuration d'une connexion utilisateur avec un fournisseur d'identité SAML](#cognito-user-pools-saml-providers)

## Configuration d'une connexion utilisateur avec un fournisseur d'identité social
<a name="cognito-user-pools-facebook-provider"></a>

Vous pouvez utiliser une fédération pour intégrer des groupes d'utilisateurs Amazon Cognito à des fournisseurs d'identité sociaux tels que Facebook, Google et Login with Amazon.

Pour ajouter un fournisseur d'identité social, vous devez d'abord créer un compte développeur à l'aide du fournisseur d'identité. Une fois que vous disposez de votre compte développeur, inscrivez votre application avec le fournisseur d'identité. Le fournisseur d'identité crée un ID d'application et une clé secrète d'application pour votre application, tandis que vous configurez ces valeurs dans vos groupes d'utilisateurs Amazon Cognito.
+ [Plateforme d'identité Google](https://developers.google.com/identity/)
+ [Facebook pour développeurs](https://developers.facebook.com/docs/facebook-login)
+ [Login with Amazon](https://developer.amazon.com/login-with-amazon)
+ [Se connecter avec Apple](https://developer.apple.com/sign-in-with-apple/)

**Pour intégrer la connexion utilisateur à un fournisseur d'identité social**

1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Dans le volet de navigation, choisissez **Groupes d’utilisateurs**, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.

1. Choisissez le menu **Fournisseurs sociaux et externes**.

1. Choisissez **Add an identity provider** (Ajouter un fournisseur d'identité) ou choisissez le fournisseur d'identité **Facebook**, **Google**, **Amazon** ou **Apple** que vous avez configuré, localisez **Identity provider information** (Informations sur le fournisseur d'identité) et choisissez **Edit** (Modifier). Pour plus d'informations sur l'ajout de fournisseurs d'identité sociaux, consultez [Utilisation de fournisseurs d'identité sociale avec un pool d'utilisateurs](cognito-user-pools-social-idp.md).

1. Saisissez les informations de votre fournisseur d'identité sociale en effectuant l'une des étapes suivantes, en fonction de votre choix d'IdP :  
**Facebook, Google et Login with Amazon**  
Saisissez l'ID d'application et le secret d'application que vous avez reçus lors de la création de votre application cliente.  
**Connexion avec Apple**  
Saisissez l'ID de service que vous avez fourni à Apple, ainsi que l'ID d'équipe, l'ID de clé et la clé privée que vous avez reçus lors de la création de votre client d'application.

1. Pour **Authorized scopes (Périmètres autorisés)**, saisissez les noms des périmètres de fournisseur d'identité social à mapper aux attributs de groupe d'utilisateurs. Les portées définissent les attributs d'utilisateur comme le nom et l'adresse e-mail auxquels vous souhaitez accéder avec votre application. Lorsque vous saisissez des portées, suivez les directives suivantes en fonction de votre choix de fournisseur d'identité :
   + **Facebook** : séparez les périmètre par des virgules. Par exemple :

     `public_profile, email`
   + **Google, Login with Amazon et Sign in with Apple** : séparez les périmètres par des espaces. Par exemple :
     + **Google :**`profile email openid`
     + **Login with Amazon :**`profile postal_code`
     + **Sign in with Apple :**`name email`
**Note**  
Pour Sign In with Apple (console), utilisez les cases à cocher pour les sélectionner.

1. Sélectionnez **Enregistrer les modifications**.

1. Dans le menu **Clients de l'application**, choisissez un client d'application dans la liste, puis sélectionnez **Modifier**. Ajoutez le nouveau fournisseur d'identité sociale au client d' l'application sous **Fournisseurs d'identité**.

1. Sélectionnez **Enregistrer les modifications**.

Pour plus d'informations sur les réseaux sociaux IdPs, consultez[Utilisation de fournisseurs d'identité sociale avec un pool d'utilisateurs](cognito-user-pools-social-idp.md).

## Configuration d'une connexion utilisateur avec un fournisseur d'identité social OIDC
<a name="cognito-user-pools-oidc-providers"></a>

Vous pouvez intégrer une connexion utilisateur à un fournisseur d'identité (IdP) OpenID Connect (OIDC) tel que Salesforce ou Ping Identity.

**Pour ajouter un fournisseur OIDC à un groupe d'utilisateurs**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs** dans le menu de navigation.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **Fournisseurs sociaux et externes**, puis sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisir un fournisseur d'identité **OpenID Connect**

1. Saisissez un nom unique dans le champ **Nom du fournisseur**.

1. Saisissez l'ID client que vous avez reçu de votre fournisseur dans **Client ID** (ID client).

1. Saisissez le secret client que vous avez reçu de votre fournisseur dans **Client secret** (Secret client).

1. Saisissez les **périmètres d'autorisation** pour ce fournisseur. Les périmètres définissent les groupes d'attributs utilisateur (tels que `name` et `email`) que votre demande demandera à votre fournisseur. Les étendues doivent être séparées par des espaces, conformément à la spécification [OAuth 2.0](https://tools.ietf.org/html/rfc6749#section-3.3).

   L'utilisateur doit accepter de fournir ces attributs à votre application.

1. Choisissez une méthode de demande d'attribut (**Attribute request method**) pour fournir à Amazon Cognito la méthode HTTP (GET ou POST) à utiliser pour récupérer les détails de l'utilisateur à partir du point de terminaison **userInfo** exploité par votre fournisseur.

1. Choisissez une **Méthode de configuration** pour récupérer les points de terminaison OpenID Connect soit par **Remplissage automatique via l'URL du diffuseur** soit par **Saisie manuel**. Utilisez **le remplissage automatique de l'URL de l'émetteur** lorsque votre fournisseur dispose d'un point de `.well-known/openid-configuration` terminaison public sur lequel Amazon Cognito peut récupérer URLs les points de `authorization` terminaison`token`,`userInfo`, `jwks_uri` et.

1. Entrez l'URL de l'émetteur ou`authorization`, `token``userInfo`, et le `jwks_uri` point URLs de terminaison de votre IdP.
**Note**  
Vous ne pouvez utiliser que les numéros de port 443 et 80 avec détection, remplis automatiquement et saisis URLs manuellement. Les connexions utilisateur échouent si votre fournisseur OIDC utilise des ports TCP non standard.  
L'URL de l'émetteur doit commencer par `https://` et ne doit pas se terminer par un caractère `/`. Par exemple, Salesforce utilise cette URL :  
`https://login.salesforce.com`   
Le `openid-configuration` document associé à l'URL de votre émetteur doit fournir le protocole HTTPS URLs pour les valeurs suivantes :`authorization_endpoint`, `token_endpoint``userinfo_endpoint`, et`jwks_uri`. De même, lorsque vous choisissez la **saisie manuelle**, vous ne pouvez saisir que le protocole HTTPS URLs.

1. Par défaut, la demande d'OIDC **sub** est mappée à l'attribut de groupe d'utilisateurs **Nom d'utilisateur**. Vous pouvez mapper d'autres [demandes](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) d'OIDC aux attributs de groupe d'utilisateurs. Saisissez la demande OIDC et choisissez l'attribut du groupe d'utilisateurs correspondant dans la liste déroulante. Par exemple, l'**e-mail** de demande est souvent mappé à l'**e-mail** de l'attribut de groupe d'utilisateurs.

1. Mappez d'autres attributs de votre fournisseur d'identité à votre groupe d'utilisateurs. Pour de plus amples informations, veuillez consulter [Spécification des mappages d'attribut du fournisseur d'identité pour votre groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html).

1. Choisissez **Créer**.

1. Dans le menu **App clients**, sélectionnez un client d'application dans la liste. Pour ajouter le nouveau fournisseur d'identité SAML au client de l'application, accédez à l'onglet **Pages de connexion** et sélectionnez **Modifier** dans la **configuration des pages de connexion gérées**.

1. Sélectionnez **Enregistrer les modifications**.

Pour plus d'informations sur l'OIDC IdPs, voir[Utilisation de fournisseurs d'identité OIDC avec un pool d'utilisateurs](cognito-user-pools-oidc-idp.md).

## Configuration d'une connexion utilisateur avec un fournisseur d'identité SAML
<a name="cognito-user-pools-saml-providers"></a>

Vous pouvez utiliser une fédération afin que les groupes d'utilisateurs Amazon Cognito s'intégrent avec un fournisseur d'identité (IdP) SAML. Vous fournissez un document de métadonnées, soit en téléchargeant le fichier ou en entrant l'URL de point de terminaison d'un document de métadonnées. Pour plus d'informations sur l'obtention de documents de métadonnées pour le protocole SAML tiers IdPs, consultez[Configuration de votre fournisseur d'identité SAML tiers](cognito-user-pools-integrating-3rd-party-saml-providers.md).

**Pour configurer un fournisseur d'identité SAML 2.0 dans votre groupe d'utilisateurs**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **Fournisseur social et externe**, puis sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez un fournisseur d'identité **SAML**.

1. Saisissez **Identifiants** séparés par des virgules. Un identifiant indique à Amazon Cognito qu'il doit vérifier l'adresse e-mail de connexion de l'utilisateur, puis rediriger l'utilisateur vers le fournisseur correspondant à son domaine.

1. Choisissez **Ajouter un flux de déconnexion** si vous souhaitez qu'Amazon Cognito envoie des demandes de déconnexion signées à votre fournisseur lorsqu'un utilisateur se déconnecte. Configurez votre fournisseur d'identité SAML 2.0 pour envoyer des réponses de déconnexion au point de `https://mydomain.auth.us-east-1.amazoncognito.com/saml2/logout` terminaison créé par Amazon Cognito lorsque vous configurez la connexion gérée. Ce point de terminaison `saml2/logout` utilise la liaison POST.
**Note**  
Si vous sélectionnez cette option et que votre fournisseur d'identité SAML attend une demande de déconnexion signée, vous devez également configurer le certificat de signature fourni par Amazon Cognito avec votre fournisseur d'identité SAML.   
l'IdP SAML traite la demande de déconnexion signée et déconnecte votre utilisateur de la session Amazon Cognito.

1. Choisissez une **Source du document de métadonnées**. Si votre fournisseur d'identité propose des métadonnées SAML à une URL publique, vous pouvez choisir **Metadata document URL** (URL du document de métadonnées) et saisir cette URL publique. Sinon, choisissez **Upload metadata documen (Charger un document de métadonnées)** et sélectionnez un fichier de métadonnées que vous avez téléchargé depuis votre fournisseur précédemment.
**Note**  
Si votre fournisseur dispose d'un point de terminaison public, nous vous recommandons de saisir une URL de document de métadonnées, au lieu de charger un fichier. Si vous utilisez l'URL, Amazon Cognito actualise automatiquement les métadonnées. En règle générale, l'actualisation des métadonnées a lieu toutes les 6 heures ou avant l'expiration des métadonnées, selon la première éventualité.

1. **Mappage des attributs entre votre fournisseur SAML et votre application** pour mapper les attributs du fournisseur SAML au profil utilisateur de votre groupe d'utilisateurs. Incluez les attributs requis de votre groupe d'utilisateurs dans votre carte attributaire. 

   Par exemple, lorsque vous choisissez **Groupe d'utilisateurs** `email`, saisissez le nom de l'attribut SAML tel qu'il apparaît dans l'assertion SAML de votre fournisseur d'identité. Votre fournisseur d'identité peut proposer des exemples d'assertions SAML à titre de référence. Certains fournisseurs d'identité utilisent des noms simples, par exemple `email`, tandis que d'autres utilisent des noms d'attributs au format URL, tels que :

   ```
   http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
   ```

1. Choisissez **Créer**.

**Note**  
Si vous voyez `InvalidParameterException` pendant la création d'un fournisseur d'identité SAML avec une URL de point de terminaison de métadonnées HTTPS, veillez à ce que SSL soit correctement configuré pour le point de terminaison de métadonnées et qu'un certificat SSL valide lui soit associé. Un exemple d'une telle exception serait « Erreur lors de la récupération des métadonnées depuis *<metadata endpoint>* ».

**Pour configurer le fournisseur d'identité SAML afin d'ajouter un certificat de signature**
+ Pour obtenir le certificat contenant la clé publique que l'IdP utilise pour vérifier la demande de déconnexion signée, procédez comme suit :

  1. Accédez au menu des **fournisseurs sociaux et externes** de votre groupe d'utilisateurs.

  1. Sélectionnez votre fournisseur SAML,

  1. Choisissez **Afficher le certificat de signature.**

Pour plus d'informations sur SAML, IdPs voir[Utilisation de fournisseurs d'identité SAML avec un groupe d'utilisateurs](cognito-user-pools-saml-idp.md).

# Utilisation de fournisseurs d'identité sociale avec un pool d'utilisateurs
<a name="cognito-user-pools-social-idp"></a>

Vos utilisateurs d'applications mobiles et Web peuvent se connecter via des fournisseurs d'identité sociaux (IdP) comme Facebook, Google, Amazon et Apple. Avec l'interface utilisateur web hébergée intégrée, Amazon Cognito permet de traiter et de gérer tous les utilisateurs authentifiés. Vos systèmes backend peuvent ainsi utiliser un ensemble de jetons de groupe d'utilisateurs standard. Vous devez activer la connexion gérée pour intégrer les fournisseurs d'identité sociale pris en charge. Lorsqu'Amazon Cognito crée vos pages de connexion gérées, il crée des points de terminaison OAuth 2.0 qu'Amazon Cognito, votre OIDC et les réseaux sociaux utilisent pour échanger des informations. IdPs Pour plus d'informations, consultez la [Référence d'API pour l'authentification des groupes d'utilisateurs Amazon Cognito.](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html)

Vous pouvez ajouter un IdP social dans le ou vous pouvez utiliser la AWS Management Console AWS CLI ou l'API Amazon Cognito. 

**Note**  
La connexion via un tiers (fédération) est disponible dans les groupes d'utilisateurs Amazon Cognito. Cette fonctionnalité est indépendante de la fédération via les groupes d'identités Amazon Cognito (identités fédérées).

**Topics**
+ [Configurer un compte de développeur et une application IdP sur les réseaux sociaux](#cognito-user-pools-social-idp-step-1)
+ [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2)
+ [Test de la configuration de votre fournisseur d'identité social](#cognito-user-pools-social-idp-step-3)

## Configurer un compte de développeur et une application IdP sur les réseaux sociaux
<a name="cognito-user-pools-social-idp-step-1"></a>

Avant de créer un fournisseur d'identité social avec Amazon Cognito, vous devez enregistrer votre application auprès du fournisseur d'identité social pour recevoir un ID client et une clé secrète de client.

------
#### [ Facebook ]

Pour obtenir les dernières informations sur la configuration des comptes de développeur Meta et l'authentification, consultez [Meta App Development](https://developers.facebook.com/docs/development).

**Comment enregistrer une application sur Facebook/Meta**

1. Créez un [compte développeur avec Facebook](https://developers.facebook.com/docs/facebook-login).

1. [Connectez-vous](https://developers.facebook.com/) avec vos informations d'identification Facebook.

1. Dans le menu **Mes applications**, choisissez **Créer une nouvelle application**.

1. Saisissez un nom pour votre application Facebook, puis choisissez **Créer un ID d'application**.

1. Dans la barre de navigation de gauche, sélectionnez **Paramètres**, puis **Basique**.

1. Notez l'**ID d'app** et la **Clé secrète d'application**. Vous les utiliserez dans la section suivante.

1. Au bas de la page, choisissez **\$1 Ajouter une plateforme**.

1. Choisissez **Site Web**.

1. Sous **Site Web**, Saisissez le chemin d'accès à la page de connexion de votre application dans **URL du site**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
   ```

1. Choisissez **Save changes** (Enregistrer les modifications).

1. Saisissez le chemin d'accès à la racine du domaine de votre groupe d'utilisateurs dans **App Domains (Domaines d'application)**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com
   ```

1. Sélectionnez **Enregistrer les modifications**.

1. Dans la barre de navigation, choisissez **Ajouter un produit**, puis **Configurer ** depuis le produit **Connexion avec Facebook**.

1. Dans la barre de navigation, choisissez **Connexion avec Facebook**, puis **Paramètres**.

   Entrez le chemin d'accès au `/oauth2/idpresponse` point de terminaison pour le domaine de votre groupe d'utilisateurs dans **Valid OAuth Redirect URIs**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Sélectionnez **Enregistrer les modifications**.

------
#### [ Login with Amazon ]

Pour obtenir les dernières informations concernant la configuration des comptes de développeur Login with Amazon et l'authentification, consultez la [documentation Login with Amazon](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html).

**Comment enregistrer une application avec Login with Amazon**

1. Créez un [compte développeur avec Amazon](https://developer.amazon.com/login-with-amazon).

1. [Connectez-vous](https://developer.amazon.com/lwa/sp/overview.html) avec vos informations d'identification Amazon.

1. Vous devez créer un profil de sécurité Amazon pour recevoir l'ID client et de la clé secrète de client Amazon.

   Choisissez **Apps and Services (Applications et services)** dans la barre de navigation en haut de la page, puis sélectionnez **Login with Amazon**.

1. Sélectionnez **Create a Security Profile (Créer un profil de sécurité)**.

1. Saisissez un **Nom du profil de sécurité**, une **Description du profil de sécurité** et une **URL de consentement à l'avis de confidentialité**.

1. Choisissez **Save** (Enregistrer).

1. Choisissez **Client ID (ID client)** et **Client Secret (Secret client)** pour afficher l'ID et le secret client. Vous les utiliserez dans la section suivante.

1. Passez le curseur sur l'engrenage et choisissez l'icône **Web Settings (Paramètres web)**, puis **Modifier**.

1. Saisissez le domaine de votre groupe d'utilisateurs dans le champ **Allowed Origins (Origines autorisées)**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com
   ```

1. Entrez le domaine de votre groupe d'utilisateurs avec le `/oauth2/idpresponse` point de terminaison dans **Allowed Return URLs**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Choisissez **Enregistrer**.

------
#### [ Google ]

Pour plus d'informations sur la OAuth version 2.0 de la plateforme Google Cloud, consultez la section [En savoir plus sur l'authentification et l'autorisation](https://developers.google.com/workspace/guides/auth-overview) dans la documentation de Google Workspace for Developers.

**Comment enregistrer une application auprès de Google**

1. Créez un [compte développeur avec Google](https://developers.google.com/identity).

1. Connectez-vous à la [console Google Cloud Platform](https://console.cloud.google.com/home/dashboard).

1. Dans la barre de navigation supérieure, choisissez **Select a project** (Sélectionner un projet). Si vous avez déjà un projet sur la plateforme Google, ce menu affiche votre projet par défaut.

1. Sélectionnez **NEW PROJECT** (NOUVEAU PROJET).

1. Saisissez le nom de votre produit, puis choisissez **CREATE** (CRÉER).

1. Dans la barre de navigation de gauche, choisissez **APIs Services**, puis écran de **consentement Oauth**.

1. Saisissez les informations sur l'application, avec **App domain** (Domaine d'application), **Authorized domains** (Domaines autorisés) et **Developer contact information** (Coordonnées du développeur). Vos **Authorized domains** (Domaines autorisés) doivent inclure `amazoncognito.com` et la racine de votre domaine personnalisé, par exemple `example.com`. Choisissez **SAVE AND CONTINUE** (ENREGISTRER ET CONTINUER).

1. 1. Sous **Étendue**, choisissez **Ajouter ou supprimer des étendues**, puis choisissez, au minimum, les étendues suivantes OAuth .

   1. `.../auth/userinfo.email`

   1. `.../auth/userinfo.profile`

   1. openid

1. Sous **Test users** (Utilisateurs test), choisissez **Add users** (Ajouter des utilisateurs). Saisissez votre adresse e-mail et tout autre utilisateur test autorisé, puis choisissez **SAVE AND CONTINUE** (ENREGISTRER ET CONTINUER).

1. Agrandissez à nouveau la barre de navigation de gauche, **APIs puis choisissez Services**, puis **Informations d'identification**. 

1. Choisissez **CREATE CREDENTIALS**, puis sur **ID OAuth client**.

1. Choisissez un **Application type** (Type d'application) et donnez à votre client un **Name** (Nom).

1. Sous ** JavaScript Origines autorisées**, choisissez **AJOUTER UN URI**. Saisissez le domaine de votre groupe d'utilisateurs.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com
   ```

1. Sous **Redirection autorisée URIs**, choisissez **AJOUTER UN URI**. Entrez le chemin d'accès au point de terminaison `/oauth2/idpresponse` de votre domaine de groupe d'utilisateurs.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Choisissez **CREATE** (CRÉER).

1. Stockez en toute sécurité les valeurs que Google affiche sous **Your client ID** (ID de votre client) et **Your client secret** (Secret de votre client). Fournissez ces valeurs à Amazon Cognito lorsque vous ajoutez un fournisseur d'identité Google.

------
#### [ Sign in with Apple ]

Pour en up-to-date savoir plus sur la configuration de Sign in with Apple, consultez la [section Configuration de votre environnement pour Sign in with Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) dans la documentation destinée aux développeurs Apple.

**Comment enregistrer une application avec Sign in with Apple (SIWA)**

1. Créez un [compte développeur Apple](https://developer.apple.com/programs/enroll/).

1. [Connectez-vous](https://developer.apple.com/account/#/welcome) avec vos informations d'identification Apple.

1. Dans la barre de navigation de gauche, choisissez **Certificates, Identifiers & Profiles** (Certificats, identifiants et profils).

1. Dans la barre de navigation de gauche, choisissez **Identifiers (Identifiants)**.

1. Dans la page **Identifiers (Identifiants)**, choisissez l'icône **\$1**.

1. Sur la page **Enregistrer un nouvel identifiant**, choisissez **App IDs**, puis choisissez **Continuer**.

1. Sur la page **Select a type** (Sélectionner un type), choisissez **App** (Application), puis **Continue** (Continuer).

1. Dans la page **Register an App ID (Enregistrer un ID d'application)**, procédez comme suit :

   1. Sous **Description**, entrez une description.

   1. Sous **App ID Prefix** (Préfixe d'ID d'application), saisissez un **Bundle ID** (ID de bundle). Notez la valeur sous **Make a note of the value under (Préfixe d'ID d'application)**. Vous utiliserez cette valeur après avoir choisi Apple comme fournisseur d'identité dans [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2).

   1. Sous **Capabilities (Capacités)**, choisissez **Sign In with Apple (Connexion avec Apple)**, puis **Edit (Modifier)**.

   1. Sur la page **Connexion avec Apple : configuration de l'identifiant de l'application**, choisissez de configurer l'application comme application principale ou de la regrouper avec une autre application IDs, puis sélectionnez **Enregistrer**.

   1. Sélectionnez **Continuer**.

1. Dans la page **Confirm your App ID (Confirmer votre ID d'application)**, choisissez **Register (Inscrire)**.

1. Dans la page **Identifiers (Identifiants)**, choisissez l'icône **\$1**.

1. Sur la page **Enregistrer un nouvel identifiant**, sélectionnez **Services IDs**, puis choisissez **Continuer**.

1. Dans la page **Register an App ID (Enregistrer un ID d'application)**, procédez comme suit :

   1. Dans **Description**, saisissez une description.

   1. Sous **Identifier (Identifiant)**, saisissez un identifiant. Notez les ID de ces services, car vous en aurez besoin après avoir choisi Apple comme fournisseur d'identité dans [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2).

   1. Choisissez **Continue** (Continuer), puis **Register** (Enregistrer).

1. Choisissez l'ID de services que vous venez de créer à partir de la page Identifiants.

   1. Sélectionnez **Sign In with Apple (Connexion avec Apple)**, puis choisissez **Configure (Configurer)**.

   1. Sur la page **Web Authentication Configuration** (Configuration de l'authentification web), sélectionnez l'ID d'application que vous avez créé précédemment comme **Primary App ID** (ID d'application principale). 

   1. Cliquez sur l'icône **\$1** à côté de **Site Web URLs**. 

   1. Sous **Domains and subdomains** (Domaines et sous-domaines), entrez le domaine de votre groupe d'utilisateurs sans utiliser de préfixe `https://`.

      ```
      mydomain.auth.us-east-1.amazoncognito.com
      ```

   1. Sous **Retour URLs**, entrez le chemin d'accès au `/oauth2/idpresponse` point de terminaison du domaine de votre groupe d'utilisateurs.

      ```
      https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
      ```

   1. Choisissez **Next** (Suivant), puis **Done** (Terminé). Vous n'avez pas besoin de vérifier le domaine.

   1. Choisissez **Continue** (Continuer), puis **Save** (Enregistrer).

1. Dans la barre de navigation de gauche, choisissez **Keys (Clés)**.

1. Dans la page **Keys (Clés)**, choisissez l'icône **\$1**.

1. Dans la page **Register a New Key (Enregistrer une nouvelle clé)**, procédez comme suit :

   1. Sous **Key Name (Nom de clé)**, saisissez un nom de clé. 

   1. Sélectionnez **Sign In with Apple (Connexion avec Apple)**, puis choisissez **Configure (Configurer)**.

   1. Sur la page **Configure Key** (Configurer la clé), sélectionnez l'ID d'application que vous avez créé précédemment comme **Primary App ID** (ID d'application principale). Choisissez **Enregistrer**.

   1. Choisissez **Continue (Continuer)**, puis **Register (Enregistrer)**.

1. Dans la page **Télécharger votre clé**, choisissez **Télécharger** pour télécharger la **clé privée**, puis choisissez **Terminé**. Vous aurez besoin de cette clé privée et de la valeur **Key ID (ID de clé)** affichées sur cette page après avoir choisi Apple comme fournisseur d'identité dans [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2).

------

## Configurez votre groupe d'utilisateurs avec un IdP social
<a name="cognito-user-pools-social-idp-step-2"></a>

**Pour configurer un IdP social de groupe d'utilisateurs avec AWS Management Console**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d'utilisateurs existant dans la liste ou créez-en un.

1. Choisissez le menu **Fournisseurs sociaux et externes**, puis sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez un fournisseur d'identité social : **Facebook**, **Google**, **Login with Amazon** ou **Connexion avec Apple**.

1. Exécutez l'une des étapes suivantes en fonction du fournisseur d'identité social que vous choisissez :
   + **Google** et **Login with Amazon** : Saisissez le l'**ID du client d'application** et la **clé secrète du client** générés dans la section précédente.
   + **Facebook** : Saisissez l'**ID du client d'application** et la **clé secrète du client** générés dans la section précédente, puis choisissez une version d'API (par exemple, la version 2.12). Nous recommandons de choisir la dernière version possible, car chaque API Facebook a un cycle de vie et une date d'arrêt de prise en charge. Les périmètres et attributs Facebook peuvent varier d'une version d'API à l'autre. Nous vous recommandons de tester votre connexion d'identité sociale avec Facebook pour vous assurer que la fédération fonctionne comme prévu.
   + **Se connecter avec Apple** : Saisissez l'**ID de service**, l'**ID d'équipe**, l'**ID de clé**, et la **clé privée** générés dans la section précédente.

1. Saisissez les noms des **périmètres autorisés** que vous voulez utiliser. Les périmètres définissent les attributs d'utilisateur (tels que `name` et `email`) auxquels vous souhaitez accéder avec votre application. Pour Facebook, ils doivent être séparés par des virgules. Pour Google et Login with Amazon, ils doivent être séparés par des espaces. Pour Sign in with Apple (Connexion avec Apple), activez les cases des périmètres auxquelles vous souhaitez accéder.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/cognito-user-pools-social-idp.html)

   L'utilisateur de l'application est invité à accepter de fournir ces attributs à votre application. Pour plus d'informations sur les périmètres d'application des fournisseurs sociaux, consultez la documentation de Google, Facebook, Login with Amazon et Login with Apple. 

   Dans le cas de Sign in with Apple, les scénarios d'utilisation où les périmètres ne peuvent pas être renvoyés sont les suivants :
   + Un utilisateur final rencontre une erreur après avoir quitté la page Apple de connexion (erreur interne au sein d'Amazon Cognito ou toute autre erreur écrite par le développeur).
   + L'identifiant de service est utilisé dans les groupes d'utilisateurs ( and/or autres services d'authentification).
   + Un développeur ajoute des périmètres supplémentaires après que l'utilisateur s'est connecté (aucune nouvelle information n'est extraite).
   + Un développeur supprime l'utilisateur et l'utilisateur se connecte à nouveau sans supprimer l'application de son profil Apple

1. Mappez les attributs de votre fournisseur d'identité dans votre groupe d'utilisateurs. Pour de plus amples informations, veuillez consulter [Spécification des mappages d'attribut du fournisseur d'identité pour votre groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html).

1. Choisissez **Créer**.

1. Dans le menu **App clients**, sélectionnez un client d'application dans la liste. Pour ajouter le nouveau fournisseur d'identité sociale au client de l'application, accédez à l'onglet **Pages de connexion** et sélectionnez **Modifier** dans la **configuration des pages de connexion gérées**.

1. Sélectionnez **Enregistrer les modifications**.

## Test de la configuration de votre fournisseur d'identité social
<a name="cognito-user-pools-social-idp-step-3"></a>

Dans votre application, vous devez appeler un navigateur dans le client de l'utilisateur afin qu'il puisse se connecter auprès de son fournisseur de réseau social. Testez la connexion auprès de votre fournisseur de réseau social après avoir terminé les procédures de configuration décrites dans les sections précédentes. L'exemple d'URL suivant charge la page de connexion de votre groupe d'utilisateurs avec un domaine préfixé.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

Ce lien est la page vers laquelle Amazon Cognito vous dirige lorsque vous accédez au menu des **clients de l'application**, que vous sélectionnez un client d'application, que vous accédez à l'onglet **Pages de connexion**, puis que vous sélectionnez **Afficher la page de connexion**. Pour plus d'informations sur les domaines du groupe d'utilisateurs, consultez[Configuration d'un domaine de groupe d'utilisateurs](cognito-user-pools-assign-domain.md). Pour plus d'informations sur les clients de l'application, y compris le client IDs et le rappel URLs, consultez[Paramètres spécifiques à l'application avec les clients d'applications](user-pool-settings-client-apps.md).

L'exemple de lien suivant permet de configurer une redirection silencieuse vers un fournisseur social à partir du [Point de terminaison d’autorisation](authorization-endpoint.md) paramètre de `identity_provider` requête. Cette URL contourne la connexion interactive au groupe d'utilisateurs par une connexion gérée et permet d'accéder directement à la page de connexion de l'IdP.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=Facebook|Google|LoginWithAmazon|SignInWithApple&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

# Utilisation de fournisseurs d'identité SAML avec un groupe d'utilisateurs
<a name="cognito-user-pools-saml-idp"></a>

[Vous pouvez choisir de faire en sorte que les utilisateurs de vos applications Web et mobiles se connectent via un fournisseur d'identité SAML (IdP) tel que [Microsoft Active Directory Federation Services (ADFS](https://msdn.microsoft.com/en-us/library/bb897402.aspx)) ou Shibboleth.](http://www.shibboleth.net/) Vous devez choisir un fournisseur d'identité SAML qui prend en charge la [norme SAML 2.0](http://saml.xml.org/saml-specifications).

Avec la connexion gérée, Amazon Cognito authentifie les utilisateurs IdP locaux et tiers et émet des jetons Web JSON (). JWTs Avec les jetons émis par Amazon Cognito, vous pouvez consolider plusieurs sources d'identité dans une norme universelle OpenID Connect (OIDC) pour toutes vos applications. Amazon Cognito peut traiter les assertions SAML de vos fournisseurs tiers conformément à cette norme SSO. Vous pouvez créer et gérer un IdP SAML dans, via ou avec AWS Management Console l'API AWS CLI des groupes d'utilisateurs Amazon Cognito. Pour créer votre premier IdP SAML dans AWS Management Console le, voir. [Ajouter et gérer des fournisseurs d'identité SAML dans un groupe d'utilisateurs](cognito-user-pools-managing-saml-idp.md)

![\[Vue d'ensemble de l'authentification avec connexion SAML\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/scenario-authentication-saml.png)


**Note**  
La fédération avec connexion via un IdP tiers est une fonctionnalité des groupes d'utilisateurs Amazon Cognito. Les groupes d'identités Amazon Cognito, parfois appelés identités fédérées Amazon Cognito, sont une implémentation de fédération que vous devez configurer séparément dans chaque pool d'identités. Un groupe d'utilisateurs peut être un IdP tiers d'un pool d'identités. Pour de plus amples informations, veuillez consulter [Groupes d’identités Amazon Cognito](cognito-identity.md).

## Référence rapide pour la configuration de l'IdP
<a name="cognito-user-pools-saml-idp-reference"></a>

Vous devez configurer votre IdP SAML pour accepter les demandes et envoyer des réponses à votre groupe d'utilisateurs. La documentation de votre IdP SAML contiendra des informations sur la façon d'ajouter votre groupe d'utilisateurs en tant que partie utilisatrice ou application pour votre IdP SAML 2.0. La documentation suivante fournit les valeurs que vous devez fournir pour l'ID d'entité SP et l'URL du service client d'assertion (ACS).Référence rapide des valeurs SAML du pool d'utilisateurs

**ID de l'entité SP**  

```
urn:amazon:cognito:sp:us-east-1_EXAMPLE
```

**URL DE L'ACS**  

```
https://Your user pool domain/saml2/idpresponse
```

Vous devez configurer votre groupe d'utilisateurs pour qu'il prenne en charge votre fournisseur d'identité. Les étapes de haut niveau pour ajouter un IdP SAML externe sont les suivantes.

1. Téléchargez les métadonnées SAML depuis votre IdP ou récupérez l'URL de votre point de terminaison de métadonnées. Consultez [Configuration de votre fournisseur d'identité SAML tiers](cognito-user-pools-integrating-3rd-party-saml-providers.md).

1. Ajoutez un nouvel IdP à votre groupe d'utilisateurs. Téléchargez les métadonnées SAML ou fournissez l'URL des métadonnées. Consultez [Ajouter et gérer des fournisseurs d'identité SAML dans un groupe d'utilisateurs](cognito-user-pools-managing-saml-idp.md).

1. Assignez l'IdP aux clients de votre application. Consultez [Paramètres spécifiques à l'application avec les clients d'applications](user-pool-settings-client-apps.md).

**Topics**
+ [Référence rapide pour la configuration de l'IdP](#cognito-user-pools-saml-idp-reference)
+ [Ce qu'il faut savoir sur le protocole SAML IdPs dans les groupes d'utilisateurs Amazon Cognito](cognito-user-pools-saml-idp-things-to-know.md)
+ [Sensibilité à la casse des noms d'utilisateur SAML](#saml-nameid-case-sensitivity)
+ [Configuration de votre fournisseur d'identité SAML tiers](cognito-user-pools-integrating-3rd-party-saml-providers.md)
+ [Ajouter et gérer des fournisseurs d'identité SAML dans un groupe d'utilisateurs](cognito-user-pools-managing-saml-idp.md)
+ [Lancement de séance SAML dans les groupes d'utilisateurs Amazon Cognito](cognito-user-pools-SAML-session-initiation.md)
+ [Déconnexion des utilisateurs SAML à l'aide de la déconnexion unique](cognito-user-pools-saml-idp-sign-out.md)
+ [Signature et chiffrement SAML](cognito-user-pools-SAML-signing-encryption.md)
+ [Noms et identifiants des fournisseurs d'identité SAML](cognito-user-pools-managing-saml-idp-naming.md)

# Ce qu'il faut savoir sur le protocole SAML IdPs dans les groupes d'utilisateurs Amazon Cognito
<a name="cognito-user-pools-saml-idp-things-to-know"></a>

La mise en œuvre d'un IdP SAML 2.0 s'accompagne de certaines exigences et restrictions. Reportez-vous à cette section lorsque vous implémentez votre IdP. Vous trouverez également des informations utiles pour résoudre les erreurs lors de la fédération SAML avec un groupe d'utilisateurs.

**Amazon Cognito traite les assertions SAML pour vous**  
Les groupes d'utilisateurs Amazon Cognito prennent en charge la fédération SAML 2.0 avec points de terminaison de liaison postérieure. Ainsi, votre application n'a plus besoin d'analyser ni de récupérer les réponses d'assertion SAML, étant donné que le groupe d'utilisateurs reçoit directement la réponse SAML de votre fournisseur d'identité via un agent utilisateur. Votre groupe d'utilisateurs agit en tant que fournisseur de services pour le compte de votre application. [Amazon Cognito prend en charge l'authentification unique (SSO) initiée par le SP et l'IDP, comme décrit dans les sections 5.1.2 et 5.1.4 de la présentation technique de SAML V2.0.](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html)

**Fournir un certificat de signature IdP valide**  
Le certificat de signature figurant dans les métadonnées de votre fournisseur SAML ne doit pas être expiré lorsque vous configurez l'IdP SAML dans votre groupe d'utilisateurs.

**Les groupes d'utilisateurs prennent en charge plusieurs certificats de signature**  
Lorsque votre fournisseur d'identités SAML inclut plusieurs certificats de signature dans les métadonnées SAML, lors de la connexion, votre groupe d'utilisateurs détermine que l'assertion SAML est valide si elle correspond à un certificat figurant dans les métadonnées SAML. Chaque certificat de signature ne doit pas comporter plus de 4 096 caractères.

**Maintenir le paramètre d'état du relais**  
Amazon Cognito et votre IdP SAML gèrent les informations de session à l'aide d'un paramètre `relayState`.  

1. Amazon Cognito prend en charge `relayState` les valeurs supérieures à 80 octets. Alors que les spécifications SAML stipulent que la valeur `relayState` « ne doit pas dépasser 80 octets de longueur », les pratiques actuelles du secteur s'écartent souvent de ce comportement. En conséquence, le rejet des valeurs `relayState` de plus de 80 octets rend de nombreuses intégrations de fournisseurs SAML standard inutilisables.

1. Le `relayState` jeton est une référence opaque aux informations d'état gérées par Amazon Cognito. Amazon Cognito ne garantit pas le contenu du paramètre `relayState`. N'analysez pas son contenu de telle sorte que votre application dépende du résultat. Pour plus d'informations, consultez la page [Spécification SAML 2.0](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).

**Identifiez le point de terminaison ACS**  
Votre fournisseur d'identité SAML exige que vous définissiez un point de terminaison consommateur d'assertion. Votre fournisseur d'identité redirige vos utilisateurs vers ce point de terminaison avec leur assertion SAML. Configurez le point de terminaison suivant dans le domaine de votre groupe d'utilisateurs pour la liaison POST SAML 2.0 dans votre fournisseur d'identité SAML.  

```
https://Your user pool domain/saml2/idpresponse
With an Amazon Cognito domain:
https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse
With a custom domain:
https://auth.example.com/saml2/idpresponse
```
Pour plus d'informations sur les domaines de groupes d’utilisateurs, consultez [Configuration d'un domaine de groupe d'utilisateurs](cognito-user-pools-assign-domain.md).

**Aucune assertion rejouée**  
Vous ne pouvez pas répéter ni *réutiliser* une assertion SAML sur votre point de terminaison `saml2/idpresponse` Amazon Cognito. Une assertion SAML réutilisée possède un ID d'assertion qui duplique l'ID d'une demande d'API précédente.

**L'ID du groupe d'utilisateurs est l'ID de l'entité SP**  
Vous devez fournir à votre IdP l'ID de votre groupe d'utilisateurs dans le fournisseur de services (SP)`urn`, également appelé *URI d'audience* ou ID d'*entité SP*. L'URI du public pour votre groupe d'utilisateurs a le format suivant.  

```
urn:amazon:cognito:sp:us-east-1_EXAMPLE
```
Vous trouverez l'ID de votre groupe d'utilisateurs dans la section **Vue d'ensemble du groupe d'utilisateurs** dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home).

**Cartographier tous les attributs requis**  
Configurez votre fournisseur d'identité SAML pour fournir des valeurs d'attributs que vous définissez pour tous les attributs requis dans votre groupe d'utilisateurs. Par exemple, `email` est un attribut courant requis pour les groupes d'utilisateurs. Avant que vos utilisateurs puissent se connecter, vos assertions de fournisseur d'identité SAML doivent inclure une demande que vous mappez à l'**Attribut du groupe d'utilisateurs** `email`. Pour plus d'informations sur le mappage d'attributs, consultez [Mappage des attributs d'IdP aux profils et aux jetons](cognito-user-pools-specifying-attribute-mapping.md).

**Le format d'assertion a des exigences spécifiques**  
Votre IdP SAML doit inclure les revendications suivantes dans l'assertion SAML.  
+ Une `NameID` réclamation. Amazon Cognito associe une assertion SAML à l'utilisateur de destination par. `NameID` En cas de `NameID` modification, Amazon Cognito considère que l'assertion concerne un nouvel utilisateur. L'attribut que vous avez défini `NameID` dans votre configuration IdP doit avoir une valeur persistante. Pour attribuer aux utilisateurs SAML un profil utilisateur cohérent dans votre groupe d'utilisateurs, attribuez votre `NameID` réclamation à partir d'un attribut dont la valeur ne change pas.

  ```
  <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:persistent">
    carlos
  </saml2:NameID>
  ```

  Un `Format` dans votre `NameID` réclamation IdP de `urn:oasis:names:tc:SAML:1.1:nameid-format:persistent` indique que votre IdP transmet une valeur immuable. Amazon Cognito n'exige pas cette déclaration de format et attribue un format de si `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` votre IdP ne spécifie pas de format pour la réclamation. `NameID` Ce comportement est conforme à la section 2.2.2 *Nom IDType de type complexe* de [la spécification SAML 2.0.](https://groups.oasis-open.org/higherlogic/ws/public/download/35711/sstc-saml-core-errata-2.0-wd-06-diff.pdf/latest)
+ Un champ standard `AudienceRestriction` avec une valeur `Audience` qui définit l'ID d'entité SP de votre groupe d'utilisateurs comme cible de la réponse.

  ```
  <saml:AudienceRestriction>
    <saml:Audience> urn:amazon:cognito:sp:us-east-1_EXAMPLE
  </saml:AudienceRestriction>
  ```
+ Pour l'authentification unique initiée par le SP, `Response` élément dont `InResponseTo` la valeur est l'ID de demande SAML d'origine.

  ```
  <saml2p:Response Destination="https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse" ID="id123" InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" IssueInstant="Date-time stamp" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  ```
**Note**  
Les assertions SAML initiées par l'IdP *ne doivent pas* contenir de valeur. `InResponseTo`
+ `SubjectConfirmationData`Élément dont `Recipient` la valeur correspond au point de `saml2/idpresponse` terminaison de votre groupe d'utilisateurs et, pour le protocole SAML initié par SP, une `InResponseTo` valeur correspondant à l'ID de demande SAML d'origine.

  ```
  <saml2:SubjectConfirmationData InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" NotOnOrAfter="Date-time stamp" Recipient="https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse"/>
  ```

**Demandes de connexion initiées par le SP**  
Lorsque le [Point de terminaison d’autorisation](authorization-endpoint.md) redirige votre utilisateur vers la page de connexion de votre fournisseur d'identité, Amazon Cognito inclut une *demande SAML* dans un paramètre d'URL de la demande `HTTP GET`. Une demande SAML contient des informations sur votre groupe d'utilisateurs, y compris votre point de terminaison ACS. Vous pouvez éventuellement appliquer une signature cryptographique à ces demandes.

**Signer les demandes et chiffrer les réponses**  
Chaque groupe d'utilisateurs disposant d'un fournisseur SAML génère une paire de clés asymétriques et un *certificat de signature* pour une signature numérique qu'Amazon Cognito attribue aux demandes SAML. Chaque IdP SAML externe que vous configurez pour prendre en charge une réponse SAML chiffrée amène Amazon Cognito à générer une nouvelle paire de clés *et* un nouveau certificat de chiffrement pour ce fournisseur. Pour consulter et télécharger les certificats avec la clé publique, choisissez votre IdP dans le menu Réseaux **sociaux et fournisseurs externes** de la console Amazon Cognito.  
Pour établir la confiance avec les demandes SAML provenant de votre groupe d'utilisateurs, fournissez à votre IdP une copie du certificat de signature SAML 2.0 de votre groupe d'utilisateurs. Votre IdP peut ignorer les demandes SAML signées par votre groupe d'utilisateurs si vous ne configurez pas l'IdP pour qu'il accepte les demandes signées.  

1. Amazon Cognito applique une signature numérique aux demandes SAML que votre utilisateur transmet à votre IdP. Votre groupe d'utilisateurs signe toutes les demandes de déconnexion unique (SLO), et vous pouvez configurer votre groupe d'utilisateurs pour signer les demandes d'authentification unique (SSO) pour n'importe quel IdP externe SAML. Lorsque vous fournissez une copie du certificat, votre IdP peut vérifier l'intégrité des demandes SAML de vos utilisateurs. 

1. Votre IdP SAML peut chiffrer les réponses SAML à l'aide du certificat de chiffrement. Lorsque vous configurez un IdP avec le chiffrement SAML, votre IdP ne doit envoyer que des réponses chiffrées.

**Coder des caractères non alphanumériques**  
Amazon Cognito n'accepte pas les caractères UTF-8 de 4 octets tels que ceux transmis par 𠮷 votre IdP en tant 😐 que valeur d'attribut. Vous pouvez coder le caractère en Base64, le transmettre sous forme de texte, puis le décoder dans votre application.  
Dans l'exemple suivant, la revendication d'attribut ne sera pas acceptée :  

```
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
  <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">😐</saml2:AttributeValue>
</saml2:Attribute>
```
Contrairement à l'exemple précédent, la revendication d'attribut suivante sera acceptée :  

```
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
  <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">8J+YkA==</saml2:AttributeValue>
</saml2:Attribute>
```

**Le point de terminaison des métadonnées doit disposer d'une sécurité de couche de transport valide**  
Si, `InvalidParameterException` lors de la création d'un IdP SAML avec une URL de point de terminaison de métadonnées HTTPS, vous voyez par exemple « Erreur lors *<metadata endpoint>* de la récupération des métadonnées », assurez-vous que le protocole SSL est correctement configuré sur le point de terminaison de métadonnées et qu'un certificat SSL valide lui est associé. Pour plus d'informations sur la validation des certificats, voir [Qu'est-ce qu'un SSL/TLS certificat ?](https://aws.amazon.com/what-is/ssl-certificate/) .

**Le point de terminaison des métadonnées doit se trouver sur le port TCP standard pour HTTP ou HTTPS**  
Amazon Cognito accepte uniquement les métadonnées URLs des fournisseurs SAML sur les ports TCP standard 80 pour HTTP et 443 pour HTTPS. Pour des raisons de sécurité, hébergez les métadonnées SAML sur une URL cryptée TLS avec le préfixe. `https://` Entrez les métadonnées URLs au format *`http://www.example.com/saml2/metadata.xml`* ou*`https://www.example.com/saml2/metadata.xml`*. La console Amazon Cognito accepte les métadonnées URLs uniquement avec le `https://` préfixe. Vous pouvez également configurer les métadonnées de l'IdP avec et [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html). [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)

**Les clients d'applications utilisant le protocole SAML initié par l'IdP ne peuvent se connecter qu'avec le protocole SAML**  
Lorsque vous activez la prise en charge d'un IdP SAML 2.0 qui prend en charge la connexion initiée par l'IdP dans un client d'application, vous ne pouvez ajouter qu'un autre protocole SAML IdPs 2.0 à ce client d'application. Il vous est interdit d'ajouter l'annuaire des utilisateurs dans le groupe d'utilisateurs *et* tous les fournisseurs d'identité externes non SAML à un client d'application configuré de cette manière.

**Les réponses de déconnexion doivent utiliser la liaison POST**  
Le `/saml2/logout` point de terminaison accepte les `HTTP POST` demandes `LogoutResponse` en tant que telles. Les groupes d'utilisateurs n'acceptent pas les réponses de déconnexion `HTTP GET` contraignantes.

**Rotation des certificats de signature de métadonnées**  
Amazon Cognito met en cache les métadonnées SAML pendant six heures maximum lorsque vous fournissez des métadonnées avec une URL. Lorsque vous effectuez une rotation de certificats de signature de métadonnées, configurez votre source de métadonnées pour publier à la *fois* le certificat original et le nouveau certificat pendant au moins six heures. Lorsqu'Amazon Cognito actualise le cache à partir de l'URL des métadonnées, il considère chaque certificat comme valide et votre IdP SAML peut commencer à signer des assertions SAML avec le nouveau certificat. Une fois cette période écoulée, vous pouvez supprimer le certificat d'origine des métadonnées publiées.

## Sensibilité à la casse des noms d'utilisateur SAML
<a name="saml-nameid-case-sensitivity"></a>

Lorsqu'un utilisateur fédéré tente de se connecter, le fournisseur d'identité SAML (IdP) transmet un code unique à Amazon `NameId` Cognito dans l'assertion SAML de l'utilisateur. Amazon Cognito identifie un utilisateur fédéré SAML par sa demande `NameId`. Quels que soient les paramètres de distinction majuscules/minuscules de votre groupe d'utilisateurs, Amazon Cognito reconnaît un utilisateur fédéré qui revient d'un IdP SAML lorsqu'il transmet sa demande unique et différenciée par majuscules et minuscules. `NameId` Si vous mappez un attribut comme `email` à `NameId`, et que votre utilisateur change d'adresse e-mail, il ne peut pas se connecter à votre application.

Mappez `NameId` dans vos assertions SAML à partir d'un attribut de fournisseur d'identité dont les valeurs ne changent pas.

Par exemple, Carlos possède un profil utilisateur dans votre groupe d'utilisateurs insensible à la casse provenant d'une assertion SAML ADFS (Active Directory Federation Services) qui a transmis une valeur `NameId` de `Carlos@example.com`. La prochaine fois que Carlos tente de se connecter, votre fournisseur d'identité ADFS transmet une valeur `NameId` de `carlos@example.com`. Comme `NameId` doit être une correspondance exacte qui respecte la casse, la connexion ne réussit pas.

Si vos utilisateurs ne peuvent pas se connecter après le changement de `NameID`, supprimez leurs profils utilisateur de votre groupe d'utilisateurs. Amazon Cognito créera de nouveaux profils utilisateur la prochaine fois qu'ils se connecteront.

**Topics**
+ [Référence rapide pour la configuration de l'IdP](#cognito-user-pools-saml-idp-reference)
+ [Ce qu'il faut savoir sur le protocole SAML IdPs dans les groupes d'utilisateurs Amazon Cognito](cognito-user-pools-saml-idp-things-to-know.md)
+ [Sensibilité à la casse des noms d'utilisateur SAML](#saml-nameid-case-sensitivity)
+ [Configuration de votre fournisseur d'identité SAML tiers](cognito-user-pools-integrating-3rd-party-saml-providers.md)
+ [Ajouter et gérer des fournisseurs d'identité SAML dans un groupe d'utilisateurs](cognito-user-pools-managing-saml-idp.md)
+ [Lancement de séance SAML dans les groupes d'utilisateurs Amazon Cognito](cognito-user-pools-SAML-session-initiation.md)
+ [Déconnexion des utilisateurs SAML à l'aide de la déconnexion unique](cognito-user-pools-saml-idp-sign-out.md)
+ [Signature et chiffrement SAML](cognito-user-pools-SAML-signing-encryption.md)
+ [Noms et identifiants des fournisseurs d'identité SAML](cognito-user-pools-managing-saml-idp-naming.md)

# Configuration de votre fournisseur d'identité SAML tiers
<a name="cognito-user-pools-integrating-3rd-party-saml-providers"></a>

Lorsque vous souhaitez ajouter un fournisseur d'identité (IdP) SAML à votre groupe d'utilisateurs, vous devez effectuer des mises à jour de configuration dans l'interface de gestion de votre IdP. Cette section explique comment formater les valeurs que vous devez fournir à votre IdP. Vous pouvez également découvrir comment récupérer le document de métadonnées statique ou à URL active identifiant l'IdP et ses revendications SAML auprès de votre groupe d'utilisateurs.

Pour configurer des solutions de fournisseur d'identité (IdP) SAML 2.0 tiers afin qu'elles fonctionnent avec la fédération pour les groupes d'utilisateurs Amazon Cognito, vous devez configurer votre IdP SAML pour qu'il soit redirigé vers l'URL Assertion Consumer Service (ACS) suivante :. `https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse` Si votre groupe d'utilisateurs possède un domaine Amazon Cognito, vous pouvez trouver le chemin du domaine de votre groupe d'utilisateurs dans le menu **Domaine** de votre groupe d'utilisateurs de la console [Amazon Cognito](https://console.aws.amazon.com/cognito/home).

Certains protocoles SAML IdPs exigent que vous fournissiez le`urn`, également appelé URI d'audience ou ID d'entité SP, dans le formulaire`urn:amazon:cognito:sp:us-east-1_EXAMPLE`. Vous trouverez l'ID de votre groupe d'utilisateurs dans la section **Vue d'ensemble du groupe d'utilisateurs** dans la console Amazon Cognito.

Vous devez également configurer votre IdP SAML pour fournir des valeurs pour tous les attributs que vous avez désignés *comme étant obligatoires* dans votre groupe d'utilisateurs. Généralement, `email` il s'agit d'un attribut obligatoire pour les groupes d'utilisateurs, auquel cas l'IdP SAML doit fournir `email` une forme de réclamation dans son assertion SAML, et vous devez associer la réclamation à l'attribut de ce fournisseur.

Les informations de configuration suivantes pour les solutions IdP SAML 2.0 tierces constituent un bon point de départ pour configurer la fédération avec les groupes d'utilisateurs Amazon Cognito. Pour obtenir les informations les plus récentes, consultez directement la documentation de votre fournisseur.

Pour signer des demandes SAML, vous devez configurer votre IdP pour qu'il approuve les demandes signées par le certificat de signature de votre groupe d'utilisateurs. Pour accepter les réponses SAML chiffrées, vous devez configurer votre IdP pour *chiffrer* toutes les réponses SAML envoyées à votre groupe d'utilisateurs. Votre fournisseur disposera de la documentation sur la configuration de ces fonctionnalités. Pour un exemple fourni par Microsoft, voir [Configurer le chiffrement par jeton Microsoft Entra SAML](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/howto-saml-token-encryption).

**Note**  
Amazon Cognito a uniquement besoin du document de métadonnées de votre fournisseur d'identité. Votre fournisseur peut également proposer des informations de configuration personnalisées pour la fédération SAML 2.0 avec IAM ou. AWS IAM Identity Center Pour savoir comment configurer l'intégration d'Amazon Cognito, consultez les instructions générales pour récupérer le document de métadonnées et gérer le reste de la configuration dans votre groupe d'utilisateurs.


| Solution | En savoir plus | 
| --- | --- | 
| Identifiant Microsoft Entra | [Métadonnées de fédération](https://learn.microsoft.com/en-us/entra/identity-platform/federation-metadata) | 
| Okta | [Comment télécharger les métadonnées IdP et les certificats de signature SAML pour l'intégration d'une application SAML](https://support.okta.com/help/s/article/Location-to-download-Okta-IDP-XML-metadata-for-a-SAML-app-in-the-new-Admin-User-Interface) | 
| Auth0 | [Configurer Auth0 en tant que fournisseur d'identité SAML](https://auth0.com/docs/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-identity-provider) | 
| Identité Ping (PingFederate) | [Exportation de métadonnées SAML depuis PingFederate](https://docs.pingidentity.com/integrations/contentful/configuring_single_sign-on/pf_contentful_integration_exporting_saml_metadata_from_pf.html) | 
| JumpCloud | [Remarques de configuration SAML](https://jumpcloud.com/support/saml-configuration-notes) | 
| SecureAuth | [Intégration des applications SAML](https://docs.secureauth.com/2104/en/saml-application-integration.html) | 

# Ajouter et gérer des fournisseurs d'identité SAML dans un groupe d'utilisateurs
<a name="cognito-user-pools-managing-saml-idp"></a>

Après avoir configuré votre fournisseur d'identité pour qu'il fonctionne avec Amazon Cognito, vous pouvez l'ajouter à vos groupes d'utilisateurs et à vos clients d'applications. Les procédures suivantes montrent comment créer, modifier et supprimer des fournisseurs SAML dans un groupe d'utilisateurs Amazon Cognito.

------
#### [ AWS Management Console ]

Vous pouvez utiliser le AWS Management Console pour créer et supprimer des fournisseurs d'identité SAML (IdPs).

Avant de créer un IdP SAML, vous devez disposer du document de métadonnées SAML obtenu auprès de l'IdP tiers. Pour obtenir des instructions sur l'obtention ou la génération du document de métadonnées SAML requis, consultez [Configuration de votre fournisseur d'identité SAML tiers](cognito-user-pools-integrating-3rd-party-saml-providers.md).

**Pour configurer un fournisseur d'identité SAML 2.0 dans votre groupe d'utilisateurs**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, saisissez vos informations d’identification AWS .

1. Choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **Fournisseurs sociaux et externes**, puis sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez un fournisseur d'identité **SAML**.

1. Entrez le **nom du fournisseur**. Vous pouvez transmettre ce nom convivial dans un paramètre de `identity_provider` requête au[Point de terminaison d’autorisation](authorization-endpoint.md).

1. Saisissez **Identifiants** séparés par des virgules. Un identifiant indique à Amazon Cognito qu'il doit vérifier l'adresse électronique qu'un utilisateur saisit lorsqu'il se connecte, puis le redirige vers le fournisseur correspondant à son domaine.

1. Choisissez **Ajouter un flux de déconnexion** si vous souhaitez qu'Amazon Cognito envoie des demandes de déconnexion signées à votre fournisseur lorsqu'un utilisateur se déconnecte. Vous devez configurer votre idP SAML 2.0 pour envoyer des réponses de déconnexion au point de terminaison créé lorsque vous configurez `https://mydomain.auth.us-east-1.amazoncognito.com/saml2/logout` la connexion gérée. Ce point de terminaison `saml2/logout` utilise la liaison POST.
**Note**  
Si cette option est sélectionnée et que votre IdP SAML attend une demande de déconnexion signée, vous devez également fournir à votre IdP SAML le certificat de signature de votre groupe d'utilisateurs.  
l'IdP SAML traite la demande de déconnexion signée et déconnecte votre utilisateur de la session Amazon Cognito.

1. Choisissez la configuration de connexion **SAML initiée par l'IdP**. Pour des raisons de sécurité, choisissez **Accepter uniquement les assertions SAML initiées par le SP**. Si vous avez préparé votre environnement pour accepter en toute sécurité les sessions de connexion SAML non sollicitées, choisissez **Accepter les assertions SAML initiées par le SP** et par l'IdP. Pour de plus amples informations, veuillez consulter [Lancement de séance SAML dans les groupes d'utilisateurs Amazon Cognito](cognito-user-pools-SAML-session-initiation.md).

1. Choisissez une **Source du document de métadonnées**. Si votre fournisseur d'identité propose des métadonnées SAML à une URL publique, vous pouvez choisir **Metadata document URL** (URL du document de métadonnées) et saisir cette URL publique. Sinon, choisissez **Upload metadata documen (Charger un document de métadonnées)** et sélectionnez un fichier de métadonnées que vous avez téléchargé depuis votre fournisseur précédemment.
**Note**  
Nous vous recommandons de saisir l'URL d'un document de métadonnées si votre fournisseur dispose d'un point de terminaison public au lieu de télécharger un fichier. Amazon Cognito actualise automatiquement les métadonnées à partir de l'URL des métadonnées. En règle générale, l'actualisation des métadonnées a lieu toutes les 6 heures ou avant l'expiration des métadonnées, selon la première éventualité.

1. **Mappez les attributs entre votre fournisseur SAML et votre groupe d'utilisateurs** pour mapper les attributs du fournisseur SAML au profil utilisateur de votre groupe d'utilisateurs. Incluez les attributs requis de votre groupe d'utilisateurs dans votre carte attributaire. 

   Par exemple, lorsque vous choisissez l'**attribut de groupe d'utilisateurs** `email`, saisissez le nom de l'attribut SAML tel qu'il apparaît dans l'assertion SAML de votre fournisseur d'identité. Si votre fournisseur d'identité propose des exemples d'assertions SAML, vous pouvez les utiliser pour identifier le nom. Certains IdPs utilisent des noms simples, tels que`email`, tandis que d'autres utilisent des noms tels que les suivants.

   ```
   http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
   ```

1. Choisissez **Créer**.

------
#### [ API/CLI ]

Utilisez les commandes suivantes pour créer et gérer un fournisseur d'identité SAML.

**Pour créer un fournisseur d'identité et charger un document de métadonnées**
+ AWS CLI: `aws cognito-idp create-identity-provider`

  Exemple avec fichier de métadonnées : `aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`

  Où `details.json` contient :

  ```
  "ProviderDetails": { 
        "MetadataFile": "<SAML metadata XML>",
        "IDPSignout" : "true",
        "RequestSigningAlgorithm" : "rsa-sha256",
        "EncryptedResponses" : "true",
        "IDPInit" : "true"
  }
  ```
**Note**  
S'il *<SAML metadata XML>* contient des instances du personnage`"`, vous devez ajouter `\` en tant que caractère d'échappement :`\"`.

  Exemple avec URL de métadonnées : `aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
+ AWS API : [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Pour charger un nouveau document de métadonnées pour un fournisseur d'identité**
+ AWS CLI: `aws cognito-idp update-identity-provider`

  Exemple avec fichier de métadonnées : `aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`

  Où `details.json` contient :

  ```
  "ProviderDetails": { 
        "MetadataFile": "<SAML metadata XML>",
        "IDPSignout" : "true",
        "RequestSigningAlgorithm" : "rsa-sha256",
        "EncryptedResponses" : "true",
        "IDPInit" : "true"
  }
  ```
**Note**  
S'il *<SAML metadata XML>* contient des instances du personnage`"`, vous devez ajouter `\` en tant que caractère d'échappement :`\"`.

  Exemple avec URL de métadonnées : `aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
+ AWS API : [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)

**Pour obtenir des informations sur un fournisseur d'identité spécifique**
+ AWS CLI: `aws cognito-idp describe-identity-provider`

  `aws cognito-idp describe-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1`
+ AWS API : [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)

**Pour répertorier les informations concernant tous IdPs**
+ AWS CLI: `aws cognito-idp list-identity-providers`

  Exemple : `aws cognito-idp list-identity-providers --user-pool-id us-east-1_EXAMPLE --max-results 3`
+ AWS API : [ListIdentityProviders](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListIdentityProviders.html)

**Pour supprimer un IdP**
+ AWS CLI: `aws cognito-idp delete-identity-provider`

  `aws cognito-idp delete-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1`
+ AWS API : [DeleteIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteIdentityProvider.html)

------

**Pour configurer le fournisseur d'identité SAML afin d'ajouter un groupe d'utilisateurs en tant que partie fiable**
+ L'URN du fournisseur de services du groupe d'utilisateurs est : `urn:amazon:cognito:sp:us-east-1_EXAMPLE`. Amazon Cognito requiert une valeur de restriction d'audience correspondant à cet URN dans la réponse SAML. Configurez votre IdP pour utiliser le point de terminaison de liaison POST suivant pour le message de IdP-to-SP réponse.

  ```
  https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse
  ```
+ Votre IdP SAML doit `NameID` renseigner tous les attributs requis pour votre groupe d'utilisateurs dans l'assertion SAML. `NameID`est utilisé pour identifier de manière unique votre utilisateur fédéré SAML dans le groupe d'utilisateurs. Votre IdP doit transmettre l'ID de nom SAML de chaque utilisateur dans un format cohérent et en distinguant majuscules et minuscules. Toute variation de la valeur du nom ID d'un utilisateur crée un nouveau profil utilisateur.

**Pour fournir un certificat de signature à votre IDP SAML 2.0**
+ **Pour télécharger une copie de la clé publique depuis Amazon Cognito que votre IdP peut utiliser pour valider les demandes de déconnexion SAML, choisissez le menu Réseaux **sociaux et fournisseurs externes** de votre groupe d'utilisateurs, sélectionnez votre IdP, puis sous **Afficher** le certificat de signature, sélectionnez Télécharger au format .crt.**

Vous pouvez supprimer n'importe quel fournisseur SAML que vous avez configuré dans votre groupe d'utilisateurs avec la console Amazon Cognito.

**Pour supprimer un fournisseur SAML**

1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Dans le volet de navigation, choisissez **Groupes d'utilisateurs**, puis choisissez le groupe d'utilisateurs que vous souhaitez modifier.

1. Choisissez le menu **Fournisseurs sociaux et externes**.

1. Sélectionnez le bouton radio situé à côté du fichier SAML IdPs que vous souhaitez supprimer.

1. Lorsque vous êtes invité à **Supprimer un fournisseur d'identité**, saisissez le nom du fournisseur SAML pour confirmer la suppression, puis choisissez **Delete (Supprimer)**.

# Lancement de séance SAML dans les groupes d'utilisateurs Amazon Cognito
<a name="cognito-user-pools-SAML-session-initiation"></a>

Amazon Cognito prend en charge l'authentification unique (SSO) initiée par le fournisseur de services (initiée par le fournisseur de services) et l'authentification unique initiée par l'IdP. En tant que meilleure pratique de sécurité, implémentez le SSO initié par le SP dans votre groupe d'utilisateurs. La section 5.1.2 de la [Présentation technique de SAML V2.0](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html#5.1.2.SP-Initiated%20SSO:%20%20Redirect/POST%20Bindings|outline) décrit l'authentification unique initiée par le fournisseur de services. Amazon Cognito est le fournisseur d'identité de votre application. L'application est le fournisseur de services qui récupère les jetons pour les utilisateurs authentifiés. Toutefois, quand vous utilisez un fournisseur d'identité tiers pour authentifier les utilisateurs, Amazon Cognito est le fournisseur de services. Lorsque vos utilisateurs SAML 2.0 s'authentifient via un flux initié par le SP, ils doivent toujours d'abord envoyer une demande à Amazon Cognito et être redirigés vers l'IdP pour s'authentifier.

Pour certains cas d'utilisation d'entreprise, l'accès aux applications internes commence à un marque-page sur un tableau de bord hébergé par le fournisseur d'identité de l'entreprise. Lorsqu'un utilisateur sélectionne un marque-page, le fournisseur d'identité génère une réponse SAML et l'envoie au fournisseur de services pour authentifier l'utilisateur auprès de l'application.

Vous pouvez configurer un IdP SAML dans votre groupe d'utilisateurs pour prendre en charge le SSO initié par l'IdP. Lorsque vous prenez en charge l'authentification initiée par l'IdP, Amazon Cognito ne peut pas vérifier qu'il a sollicité la réponse SAML qu'il reçoit, car Amazon Cognito n'initie pas l'authentification par le biais d'une demande SAML. Dans le SSO initié par SP, Amazon Cognito définit des paramètres d'état qui valident une réponse SAML par rapport à la demande d'origine. Avec la connexion initiée par le SP, vous pouvez également vous prémunir contre la falsification de requêtes intersites (CSRF).

**Topics**
+ [Implémenter la connexion SAML initiée par le SP](#cognito-user-pools-saml-idp-authentication)
+ [Mettre en œuvre la connexion SAML initiée par l'IdP](#cognito-user-pools-SAML-session-initiation-idp-initiation)

## Implémenter la connexion SAML initiée par le SP
<a name="cognito-user-pools-saml-idp-authentication"></a>

La meilleure pratique consiste à implémenter une connexion service-provider-initiated (initiée par le SP) à votre groupe d'utilisateurs. Amazon Cognito lance la session de votre utilisateur et le redirige vers votre IdP. Avec cette méthode, vous avez le meilleur contrôle sur les personnes qui présentent les demandes de connexion. Vous pouvez également autoriser la connexion initiée par l'IdP sous certaines conditions.

Le processus suivant montre comment les utilisateurs effectuent une connexion initiée par le SP à votre groupe d'utilisateurs via un fournisseur SAML.

![\[Schéma du flux d'authentification de la connexion SAML initiée par Amazon Cognito SP.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/scenario-authentication-saml-stepbystep.png)


1. Votre utilisateur saisit son adresse e-mail sur une page de connexion. Pour déterminer la redirection de votre utilisateur vers son IdP, vous pouvez collecter son adresse e-mail dans une application personnalisée ou appeler une connexion gérée en mode Web.

   Vous pouvez configurer vos pages de connexion gérées pour afficher une liste d'adresses e-mail IdPs ou pour demander une adresse e-mail et la faire correspondre à l'identifiant de votre IdP SAML. Pour demander une adresse e-mail, modifiez le style de marque de votre connexion gérée. Dans **Foundation**, recherchez le **comportement d'authentification** et, sous **Affichage du fournisseur**, définissez le **style d'affichage** sur **Entrée de recherche par domaine**.

1. Votre application appelle le point de terminaison de redirection de votre groupe d'utilisateurs et demande une session avec l'ID client correspondant à l'application et l'identifiant IdP correspondant à l'utilisateur.

1. Amazon Cognito redirige votre utilisateur vers l'IdP avec une demande SAML, [éventuellement](cognito-user-pools-SAML-signing-encryption.md#cognito-user-pools-SAML-signing.title) signée, dans un élément. `AuthnRequest`

1. L'IdP authentifie l'utilisateur de manière interactive ou à l'aide d'une session mémorisée dans un cookie de navigateur.

1. L'IdP redirige votre utilisateur vers le point de terminaison de réponse SAML de votre groupe d'utilisateurs avec l'assertion SAML [éventuellement cryptée dans sa](cognito-user-pools-SAML-signing-encryption.md#cognito-user-pools-SAML-signing-encryption.title) charge utile POST.
**Note**  
Amazon Cognito annule les sessions qui ne reçoivent pas de réponse dans les 5 minutes et redirige l'utilisateur vers une connexion gérée. Lorsque votre utilisateur rencontre ce résultat, il reçoit un message `Something went wrong` d'erreur.

1. Après avoir vérifié l'assertion SAML et [mappé les attributs utilisateur](cognito-user-pools-specifying-attribute-mapping.md#cognito-user-pools-specifying-attribute-mapping.title) à partir des demandes figurant dans la réponse, Amazon Cognito crée ou met à jour en interne le profil de l'utilisateur dans le groupe d'utilisateurs. Généralement, votre groupe d'utilisateurs renvoie un code d'autorisation à la session de navigation de l'utilisateur.

1. Votre utilisateur présente son code d'autorisation à votre application, qui échange le code contre des jetons Web JSON (JWTs).

1. Votre application accepte et traite le jeton d'identification de votre utilisateur comme authentification, génère des demandes autorisées aux ressources avec leur jeton d'accès et stocke leur jeton d'actualisation.

Lorsqu'un utilisateur s'authentifie et reçoit un code d'autorisation octroyé, le groupe d'utilisateurs renvoie des jetons d'identification, d'accès et d'actualisation. Le jeton d'identification est un objet d'authentification pour la gestion des identités basée sur l'OIDC. Le jeton d'accès est un objet d'autorisation de portée [OAuth 2.0](https://oauth.net/2/). Le jeton d'actualisation est un objet qui génère un nouvel identifiant et des jetons d'accès lorsque les jetons actuels de votre utilisateur ont expiré. Vous pouvez configurer la durée des jetons des utilisateurs dans le client d'application de votre groupe d'utilisateurs.

Vous pouvez également choisir la durée des jetons d'actualisation. Une fois le jeton d'actualisation d'un utilisateur expiré, celui-ci doit se reconnecter. S'ils se sont authentifiés via un IdP SAML, la durée de session de vos utilisateurs est définie par l'expiration de leurs jetons, et non par l'expiration de leur session avec leur IdP. Votre application doit stocker le jeton d'actualisation de chaque utilisateur et renouveler sa session à son expiration. La connexion gérée conserve les sessions utilisateur dans un cookie de navigateur valide pendant 1 heure.

## Mettre en œuvre la connexion SAML initiée par l'IdP
<a name="cognito-user-pools-SAML-session-initiation-idp-initiation"></a>

Lorsque vous configurez votre fournisseur d'identité pour la connexion SAML 2.0 initiée par l'IDP, vous pouvez présenter des assertions SAML au point de `saml2/idpresponse` terminaison du domaine de votre groupe d'utilisateurs sans avoir à lancer la session au. [Point de terminaison d’autorisation](authorization-endpoint.md) Un groupe d'utilisateurs doté de cette configuration accepte les assertions SAML initiées par l'IdP provenant d'un fournisseur d'identité externe du groupe d'utilisateurs pris en charge par le client d'application demandé.

![\[Schéma du flux d'authentification de la connexion SAML initiée par Amazon Cognito IDP.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/scenario-authentication-saml-idpinit.png)


1. Un utilisateur demande une connexion SAML avec votre application.

1. Votre application appelle un navigateur ou redirige l'utilisateur vers la page de connexion de son fournisseur SAML.

1. L'IdP authentifie l'utilisateur de manière interactive ou à l'aide d'une session mémorisée dans un cookie de navigateur.

1. L'IdP redirige votre utilisateur vers votre application avec l'assertion SAML, ou réponse, dans le corps du message POST.

1. Votre application ajoute l'assertion SAML au corps POST d'une demande envoyée au point de `saml2/idpresponse` terminaison de votre groupe d'utilisateurs.

1. Amazon Cognito envoie un code d'autorisation à votre utilisateur.

1. Votre utilisateur présente son code d'autorisation à votre application, qui échange le code contre des jetons Web JSON (JWTs).

1. Votre application accepte et traite le jeton d'identification de votre utilisateur comme authentification, génère des demandes autorisées aux ressources avec leur jeton d'accès et stocke leur jeton d'actualisation.

Les étapes suivantes décrivent le processus global de configuration et de connexion à un fournisseur SAML 2.0 initié par un IdP.

1. Créez ou désignez un groupe d'utilisateurs et un client d'application.

1. Créez un IdP SAML 2.0 dans votre groupe d'utilisateurs.

1. Configurez votre IdP pour prendre en charge l'initiation de l'IdP. Le protocole SAML initié par l'IDP introduit des considérations de sécurité auxquelles les autres fournisseurs de SSO ne sont pas soumis. Pour cette raison, vous ne pouvez pas ajouter de contenu non SAML IdPs, y compris le groupe d'utilisateurs lui-même, à un client d'application qui utilise un fournisseur SAML avec une connexion initiée par l'IdP.

1. Associez votre fournisseur SAML initié par l'IdP à un client d'application de votre groupe d'utilisateurs.

1. Dirigez votre utilisateur vers la page de connexion de votre IdP SAML et récupérez une assertion SAML.

1. Dirigez votre utilisateur vers le point de `saml2/idpresponse` terminaison de votre groupe d'utilisateurs avec son assertion SAML.

1. Recevez des jetons Web JSON (JWTs).

Pour accepter des assertions SAML non sollicitées dans votre groupe d'utilisateurs, vous devez tenir compte de leur effet sur la sécurité de votre application. L'usurpation de demande et les tentatives de CSRF sont probables lorsque vous acceptez des demandes initiées par l'IdP. Bien que votre groupe d'utilisateurs ne puisse pas vérifier une session de connexion initiée par un IdP, Amazon Cognito valide les paramètres de votre demande et vos assertions SAML.

De plus, votre assertion SAML ne doit pas contenir de `InResponseTo` réclamation et doit avoir été émise dans les 6 minutes précédentes.

Vous devez envoyer des demandes avec le protocole SAML initié par l'IdP à votre. `/saml2/idpresponse` Pour les demandes d'autorisation de connexion initiées et gérées par le SP, vous devez fournir des paramètres identifiant le client d'application demandé, les champs d'application, l'URI de redirection et d'autres informations sous forme de paramètres de chaîne de requête dans `HTTP GET` les demandes. Toutefois, pour les assertions SAML initiées par l'IdP, les détails de votre demande doivent être formatés en tant que `RelayState` paramètre dans le corps de la demande. `HTTP POST` Le corps de la demande doit également contenir votre assertion SAML en tant que `SAMLResponse` paramètre.

Voici un exemple de demande et de réponse pour un fournisseur SAML initié par un IdP.

```
POST /saml2/idpresponse HTTP/1.1
User-Agent: USER_AGENT
Accept: */*
Host: example.auth.us-east-1.amazoncognito.com
Content-Type: application/x-www-form-urlencoded

SAMLResponse=[Base64-encoded SAML assertion]&RelayState=identity_provider%3DMySAMLIdP%26client_id%3D1example23456789%26redirect_uri%3Dhttps%3A%2F%2Fwww.example.com%26response_type%3Dcode%26scope%3Demail%2Bopenid%2Bphone

HTTP/1.1 302 Found
Date: Wed, 06 Dec 2023 00:15:29 GMT
Content-Length: 0
x-amz-cognito-request-id: 8aba6eb5-fb54-4bc6-9368-c3878434f0fb
Location: https://www.example.com?code=[Authorization code]
```

------
#### [ AWS Management Console ]

**Pour configurer un IdP pour le SAML initié par l'IdP**

1. Créez un [groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), un [client d'application](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html) et un fournisseur d'identité SAML.

1. Dissociez tous les fournisseurs d'identité sociaux et OIDC de votre client d'application, le cas échéant.

1. Accédez au menu des **fournisseurs sociaux et externes** de votre groupe d'utilisateurs.

1. Modifiez ou ajoutez un fournisseur SAML.

1. Sous **Connexion SAML initiée par l'IdP, choisissez Accepter les assertions SAML** **initiées par le SP et initiées par** l'IdP.

1. Sélectionnez **Enregistrer les modifications**.

------
#### [ API/CLI ]

**Pour configurer un IdP pour le SAML initié par l'IdP**

Configurez le SAML initié par l'IdP avec le `IDPInit` paramètre dans une demande d'API [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)d'API. Voici un exemple d'IdP qui prend `ProviderDetails` en charge le SAML initié par l'IdP.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

------

# Déconnexion des utilisateurs SAML à l'aide de la déconnexion unique
<a name="cognito-user-pools-saml-idp-sign-out"></a>

Amazon Cognito prend en charge la [déconnexion unique](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html#5.3.Single%20Logout%20Profile|outline) (SLO) SAML 2.0. Avec SLO, votre application peut déconnecter les utilisateurs de leurs fournisseurs d'identité SAML (IdPs) lorsqu'ils se déconnectent de votre groupe d'utilisateurs. Ainsi, lorsque les utilisateurs souhaitent se reconnecter à votre application, ils doivent s'authentifier auprès de leur IdP SAML. Dans le cas contraire, ils peuvent avoir des cookies de navigateur IdP ou de groupe d'utilisateurs en place qui les transmettent à votre application sans qu'il soit nécessaire qu'ils fournissent des informations d'identification.

Lorsque vous configurez votre IdP SAML pour prendre en **charge le flux de déconnexion, Amazon** Cognito redirige votre utilisateur avec une demande de déconnexion SAML signée vers votre IdP. Amazon Cognito détermine l'emplacement de la redirection à partir de l'`SingleLogoutService`URL figurant dans les métadonnées de votre IdP. Amazon Cognito signe la demande de déconnexion avec le certificat de signature de votre groupe d'utilisateurs.

![\[Schéma du flux d'authentification lors de la déconnexion SAML d'Amazon Cognito. L'utilisateur demande la déconnexion et Amazon Cognito le redirige vers son fournisseur avec une demande de déconnexion SAML.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/scenario-authentication-saml-sign-out.png)


Lorsque vous dirigez un utilisateur disposant d'une session SAML vers le point de `/logout` terminaison de votre groupe d'utilisateurs, Amazon Cognito redirige votre utilisateur SAML avec la demande suivante vers le point de terminaison SLO spécifié dans les métadonnées de l'IdP.

```
https://[SingleLogoutService endpoint]?
SAMLRequest=[encoded SAML request]&
RelayState=[RelayState]&
SigAlg=http://www.w3.org/2001/04/xmldsig-more#rsa-sha256&
Signature=[User pool RSA signature]
```

Votre utilisateur retourne ensuite sur votre `saml2/logout` terminal avec un identifiant `LogoutResponse` provenant de son IdP. Votre IdP doit envoyer une `LogoutResponse` `HTTP POST` demande. Amazon Cognito les redirige ensuite vers la destination de redirection depuis leur demande de déconnexion initiale.

Votre fournisseur SAML peut envoyer un fichier `LogoutResponse` contenant plusieurs `AuthnStatement` fichiers. Le `sessionIndex` premier `AuthnStatement` élément d'une réponse de ce type doit correspondre `sessionIndex` à celui de la réponse SAML qui a initialement authentifié l'utilisateur. S'il se `sessionIndex` trouve dans une autre session`AuthnStatement`, Amazon Cognito ne reconnaîtra pas la session et votre utilisateur ne sera pas déconnecté.

------
#### [ AWS Management Console ]

**Pour configurer la déconnexion SAML**

1. Créez un [groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), un [client d'application](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html) et un IdP SAML.

1. Lorsque vous créez ou modifiez votre fournisseur d'identité SAML, sous **Informations sur le fournisseur d'identité**, cochez la case intitulée **Ajouter un flux de déconnexion.**

1. Dans le menu **Réseaux sociaux et fournisseurs externes** de votre groupe d'utilisateurs, choisissez votre IdP et recherchez le certificat de **signature**.

1. Choisissez **Télécharger au format .crt.**

1. Configurez votre fournisseur SAML pour qu'il prenne en charge la déconnexion unique et la signature des demandes SAML, et téléchargez le certificat de signature du groupe d'utilisateurs. Votre IdP doit être redirigé vers le domaine `/saml2/logout` de votre groupe d'utilisateurs.

------
#### [ API/CLI ]

**Pour configurer la déconnexion SAML**

Configurez une déconnexion unique avec le `IDPSignout` paramètre d'une requête [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou d'une demande d'[UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Voici un exemple `ProviderDetails` d'IdP qui prend en charge la déconnexion unique SAML.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",,
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

------

# Signature et chiffrement SAML
<a name="cognito-user-pools-SAML-signing-encryption"></a>

La connexion SAML 2.0 est construite autour de l'utilisateur d'une application en tant que porteur de demandes et de réponses dans son flux d'authentification. Vous voudrez peut-être vous assurer que les utilisateurs ne lisent ou ne modifient pas ces documents SAML en transit. Pour ce faire, ajoutez la signature et le chiffrement SAML aux fournisseurs d'identité SAML (IdPs) de votre groupe d'utilisateurs. Avec la signature SAML, vos groupes d'utilisateurs ajoutent une signature aux demandes de connexion et de déconnexion SAML. Avec la clé publique de votre groupe d'utilisateurs, votre IdP peut vérifier qu'il reçoit des demandes SAML non modifiées. Ensuite, lorsque votre IdP répond et transmet des assertions SAML aux sessions de navigation des utilisateurs, l'IdP peut chiffrer cette réponse afin que l'utilisateur ne puisse pas inspecter ses propres attributs et droits.

Avec la signature et le chiffrement SAML, toutes les opérations cryptographiques effectuées pendant les opérations SAML du pool d'utilisateurs doivent générer des signatures et du texte chiffré à l'aide des clés générées par user-pool-provided Amazon Cognito. Actuellement, vous ne pouvez pas configurer un groupe d'utilisateurs pour signer des demandes ou accepter des assertions chiffrées avec une clé externe.

**Note**  
Les certificats de votre groupe d'utilisateurs sont valides pendant 10 ans. Une fois par an, Amazon Cognito génère de nouveaux certificats de signature et de chiffrement pour votre groupe d'utilisateurs. Amazon Cognito renvoie le certificat le plus récent lorsque vous demandez le certificat de signature, et signe les demandes avec le certificat de signature le plus récent. Votre IdP peut chiffrer les assertions SAML avec n'importe quel certificat de chiffrement de groupe d'utilisateurs qui n'est pas expiré. Vos anciens certificats restent valides pendant toute leur durée et la clé publique ne change pas d'un certificat à l'autre. Il est recommandé de mettre à jour le certificat dans la configuration de votre fournisseur chaque année.

**Topics**
+ [Accepter les réponses SAML cryptées de votre IdP](#cognito-user-pools-SAML-encryption)
+ [Signature de requêtes SAML](#cognito-user-pools-SAML-signing)

## Accepter les réponses SAML cryptées de votre IdP
<a name="cognito-user-pools-SAML-encryption"></a>

Amazon Cognito et votre IdP peuvent garantir la confidentialité des réponses SAML lorsque les utilisateurs se connectent et se déconnectent. Amazon Cognito attribue une paire de clés RSA publique-privée et un certificat à chaque fournisseur SAML externe que vous configurez dans votre groupe d'utilisateurs. Lorsque vous activez le chiffrement des réponses pour le fournisseur SAML de votre groupe d'utilisateurs, vous devez télécharger votre certificat sur un IdP qui prend en charge les réponses SAML chiffrées. La connexion de votre groupe d'utilisateurs à votre IdP SAML ne fonctionne pas avant que celui-ci ne commence à chiffrer toutes les assertions SAML avec la clé fournie.

Vous trouverez ci-dessous un aperçu du flux d'une connexion SAML cryptée.

1. Votre utilisateur commence à se connecter et choisit son IdP SAML.

1. Votre groupe d'utilisateurs [Point de terminaison d’autorisation](authorization-endpoint.md) redirige votre utilisateur vers son IdP SAML avec une demande de connexion SAML. Votre groupe d'utilisateurs peut éventuellement accompagner cette demande d'une signature permettant la vérification de l'intégrité par l'IdP. Lorsque vous souhaitez signer des demandes SAML, vous devez configurer votre IdP pour accepter les demandes que votre groupe d'utilisateurs a signées avec la clé publique figurant dans le certificat de signature.

1. L'IdP SAML connecte votre utilisateur et génère une réponse SAML. L'IdP chiffre la réponse avec la clé publique et redirige votre utilisateur vers le point de terminaison de votre groupe d'utilisateurs. `/saml2/idpresponse` L'IdP doit chiffrer la réponse conformément à la spécification SAML 2.0. Pour plus d'informations, consultez `Element <EncryptedAssertion>` la section [Assertions et protocoles pour le langage de balisage d'assertions de sécurité (SAML) OASIS](https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf) V2.0.

1. Votre groupe d'utilisateurs déchiffre le texte chiffré dans la réponse SAML à l'aide de la clé privée et signe votre utilisateur.

**Important**  
Lorsque vous activez le chiffrement des réponses pour un IdP SAML dans votre groupe d'utilisateurs, celui-ci doit chiffrer toutes les réponses avec une clé publique spécifique au fournisseur. Amazon Cognito n'accepte pas les réponses SAML non chiffrées provenant d'un IdP externe SAML que vous configurez pour prendre en charge le chiffrement. 

Tout IdP SAML externe de votre groupe d'utilisateurs peut prendre en charge le chiffrement des réponses, et chaque IdP reçoit sa propre paire de clés.

------
#### [ AWS Management Console ]

**Pour configurer le chiffrement des réponses SAML**

1. Créez un [groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), un [client d'application](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html) et un IdP SAML.

1. Lorsque vous créez ou modifiez votre fournisseur d'identité SAML, sous **Signer les demandes et chiffrer les réponses**, cochez la case intitulée **Exiger des assertions SAML chiffrées** de la part de ce fournisseur.

1. Dans le menu **Réseaux sociaux et fournisseurs externes** de votre groupe d'utilisateurs, sélectionnez votre idP SAML et **choisissez Afficher** le certificat de chiffrement.

1. Choisissez **Télécharger au format .crt** et fournissez le fichier téléchargé à votre IdP SAML. Configurez votre IdP SAML pour chiffrer les réponses SAML avec la clé du certificat.

------
#### [ API/CLI ]

**Pour configurer le chiffrement des réponses SAML**

Configurez le chiffrement des réponses avec le `EncryptedResponses` paramètre d'une requête [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou d'une demande d'[UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Voici un exemple `ProviderDetails` d'IdP qui prend en charge la signature des demandes.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

Pour obtenir le certificat de chiffrement auprès de votre groupe d'utilisateurs, effectuez une demande d'[DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)API et récupérez la valeur de `ActiveEncryptionCertificate` dans le paramètre de réponse`ProviderDetails`. Enregistrez ce certificat et fournissez-le à votre IdP en tant que certificat de chiffrement pour les demandes de connexion de votre groupe d'utilisateurs.

------

## Signature de requêtes SAML
<a name="cognito-user-pools-SAML-signing"></a>

La capacité à prouver l'intégrité des requêtes SAML 2.0 adressées à votre IdP constitue un avantage de sécurité de la connexion SAML initiée par Amazon Cognito SP. Chaque groupe d'utilisateurs doté d'un domaine reçoit un certificat de signature X.509 du groupe d'utilisateurs. Avec la clé publique contenue dans ce certificat, les groupes d'utilisateurs appliquent une signature cryptographique aux *demandes de déconnexion* que votre groupe d'utilisateurs génère lorsque vos utilisateurs sélectionnent un IdP SAML. Vous pouvez éventuellement configurer votre client d'application pour signer les demandes de *connexion* SAML. Lorsque vous signez vos demandes SAML, votre IdP peut vérifier que la signature figurant dans les métadonnées XML de vos demandes correspond à la clé publique figurant dans le certificat de groupe d'utilisateurs que vous fournissez.

------
#### [ AWS Management Console ]

**Pour configurer la signature des demandes SAML**

1. Créez un [groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), un [client d'application](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html) et un IdP SAML.

1. Lorsque vous créez ou modifiez votre fournisseur d'identité SAML, sous **Signer les demandes et chiffrer les réponses**, cochez la case intitulée **Signer les demandes SAML à ce** fournisseur.

1. Dans le menu **Réseaux sociaux et fournisseurs externes** de votre groupe d'utilisateurs, choisissez **Afficher le certificat de signature**.

1. Choisissez **Télécharger au format .crt** et fournissez le fichier téléchargé à votre IdP SAML. Configurez votre IdP SAML pour vérifier la signature des demandes SAML entrantes.

------
#### [ API/CLI ]

**Pour configurer la signature des demandes SAML**

Configurez la signature des demandes avec le `RequestSigningAlgorithm` paramètre d'une demande [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou d'une demande d'[UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Voici un exemple `ProviderDetails` d'IdP qui prend en charge la signature des demandes.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

------

# Noms et identifiants des fournisseurs d'identité SAML
<a name="cognito-user-pools-managing-saml-idp-naming"></a>

Lorsque vous nommez vos fournisseurs d'identité SAML (IdPs) et que vous attribuez des identifiants IdP, vous pouvez automatiser le flux des demandes de connexion et de déconnexion initiées par le SP à ce fournisseur. Pour plus d'informations sur les contraintes de chaîne appliquées au nom du fournisseur, consultez la `ProviderName` propriété de [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#CognitoUserPools-CreateIdentityProvider-request-ProviderName).

![\[Schéma du flux d'authentification de la connexion SAML initiée par Amazon Cognito SP avec un identifiant IdP et une connexion gérée. L'utilisateur fournit une adresse e-mail pour gérer la connexion et Amazon Cognito le redirige automatiquement vers son fournisseur.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/scenario-authentication-saml-identifier.png)


Vous pouvez également choisir jusqu'à 50 identifiants pour vos fournisseurs SAML. Un identifiant est un nom convivial pour un IdP de votre groupe d'utilisateurs. Il doit être unique au sein de ce groupe d'utilisateurs. Si vos identifiants SAML correspondent aux domaines de messagerie de vos utilisateurs, la connexion gérée demande l'adresse e-mail de chaque utilisateur, évalue le domaine indiqué dans son adresse e-mail et les redirige vers l'IdP correspondant à leur domaine. Étant donné qu'une même organisation peut posséder plusieurs domaines, un même IdP peut avoir plusieurs identifiants.

Que vous utilisiez ou non des identifiants de domaine de messagerie, vous pouvez utiliser des identifiants dans une application mutualisée pour rediriger les utilisateurs vers le bon IdP. Lorsque vous souhaitez contourner complètement la connexion gérée, vous pouvez personnaliser les liens que vous présentez aux utilisateurs afin qu'ils les redirigent [Point de terminaison d’autorisation](authorization-endpoint.md) directement vers leur IdP. Pour connecter vos utilisateurs à l'aide d'un identifiant et les rediriger vers leur IdP, incluez l'identifiant dans le format indiqué `idp_identifier=myidp.example.com` dans les paramètres de demande de leur demande d'autorisation initiale.

Une autre méthode pour transmettre un utilisateur à votre IdP consiste à renseigner le paramètre `identity_provider` avec le nom de votre IdP au format d'URL suivant.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?
response_type=code&
identity_provider=MySAMLIdP&
client_id=1example23456789&
redirect_uri=https://www.example.com
```

Une fois qu'un utilisateur s'est connecté avec votre IdP SAML, celui-ci le redirige avec une réponse SAML dans le corps vers votre point de terminaison. `HTTP POST` `/saml2/idpresponse` Amazon Cognito traite l'assertion SAML et, si les affirmations contenues dans la réponse répondent aux attentes, redirige vers l'URL de rappel du client de votre application. Une fois que votre utilisateur s'est authentifié de cette manière, il n'a interagi qu'avec les pages Web de votre IdP et de votre application.

Avec les identifiants IdP au format de domaine, la connexion gérée demande des adresses e-mail lors de la connexion, puis, lorsque le domaine de messagerie correspond à un identifiant IdP, redirige les utilisateurs vers la page de connexion de leur IdP. Par exemple, vous créez une application qui nécessite la connexion des employés de deux entreprises différentes. La première société, AnyCompany A, possède `exampleA.com` et`exampleA.co.uk`. La deuxième société, AnyCompany B, est propriétaire`exampleB.com`. Pour cet exemple, vous en avez configuré deux IdPs, un pour chaque entreprise, comme suit : 
+ Pour le fournisseur d'identité A, vous définissez les identifiants `exampleA.com` et `exampleA.co.uk`.
+ Pour le fournisseur d'identité B, vous définissez l'identifiant `exampleB.com`.

Dans votre application, appelez la connexion gérée pour le client de votre application afin d'inviter chaque utilisateur à saisir son adresse e-mail. Amazon Cognito déduit le domaine à partir de l'adresse e-mail, met en corrélation le domaine avec un IdP avec un identifiant de domaine et redirige votre utilisateur vers le bon IdP en envoyant une demande à celui qui contient un paramètre de demande. [Point de terminaison d’autorisation](authorization-endpoint.md) `idp_identifier` Par exemple, si un utilisateur entre`bob@exampleA.co.uk`, la page suivante avec laquelle il interagit est la page de connexion à l'IdP à l'adresse. `https://auth.exampleA.co.uk/sso/saml`

Vous pouvez également implémenter la même logique indépendamment. Dans votre application, vous pouvez créer un formulaire personnalisé qui collecte les informations des utilisateurs et les met en corrélation avec l'IdP approprié selon votre propre logique. Vous pouvez générer des portails personnalisés pour chacun des locataires de votre application, chacun étant lié au point de terminaison autorisé avec l'identifiant du locataire dans les paramètres de demande.

Pour collecter une adresse e-mail et analyser le domaine dans la connexion gérée, attribuez au moins un identifiant à chaque IdP SAML que vous avez attribué à votre client d'application. Par défaut, l'écran de connexion gérée affiche un bouton pour chacune des connexions IdPs que vous avez attribuées à votre client d'application. Toutefois, si vous avez attribué des identifiants avec succès, votre page de connexion à l'interface utilisateur hébergée classique ressemble à l'image suivante.

![\[Une page de connexion gérée par Amazon Cognito affichant la connexion d'un utilisateur local et invitant un utilisateur fédéré à saisir une adresse e-mail.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/cup-saml-identifiers.png)


**Note**  
Dans l'interface utilisateur hébergée classique, la page de connexion de votre client d'application vous invite automatiquement à saisir une adresse e-mail lorsque vous attribuez des identifiants à votre. IdPs Dans l'expérience de connexion gérée, vous devez activer ce comportement dans l'éditeur de marque. Dans la catégorie Paramètres du **comportement d'authentification**, sélectionnez l'**entrée de recherche par domaine** sous la rubrique **Affichage du fournisseur**.

L'analyse des domaines dans le cadre d'une connexion gérée nécessite que vous utilisiez des domaines comme identifiants d'IdP. Si vous attribuez un identifiant quelconque à chaque SAML d'un client d'application, la connexion gérée IdPs pour cette application n'affiche plus les boutons de sélection de l'IDP. Ajoutez des identifiants IdP pour SAML lorsque vous avez l'intention d'utiliser l'analyse des e-mails ou une logique personnalisée pour générer des redirections. Lorsque vous souhaitez générer des redirections silencieuses et que vous souhaitez également que vos pages de connexion gérées affichent une liste de IdPs, n'attribuez pas d'identifiants et utilisez le paramètre de `identity_provider` demande dans vos demandes d'autorisation.
+ Si vous n'attribuez qu'un seul IdP SAML à votre client d'application, la page de connexion gérée affiche un bouton permettant de se connecter avec cet IdP.
+ Si vous attribuez un identifiant à chaque IdP SAML que vous activez pour le client de votre application, une demande de saisie d'adresse e-mail apparaît sur la page de connexion gérée.
+ Si vous en avez plusieurs IdPs et que vous ne leur attribuez pas d'identifiant, la page de connexion gérée affiche un bouton permettant de se connecter à chaque IdP attribué.
+ Si vous avez attribué des identifiants à vos pages de connexion gérées IdPs et que vous souhaitez qu'elles affichent une sélection de boutons IdP, ajoutez un nouvel IdP sans identifiant à votre client d'application ou créez un nouveau client d'application. Vous pouvez également supprimer un IdP existant et l'ajouter à nouveau sans identifiant. Si vous créez un nouvel IdP, vos utilisateurs SAML créeront de nouveaux profils utilisateur. Cette duplication d'utilisateurs actifs peut avoir un impact sur la facturation le mois au cours duquel vous modifiez la configuration de votre IdP.

Pour plus d'informations sur la configuration du fournisseur d'identité, consultez [Configuration des fournisseurs d'identités pour votre groupe d'utilisateurs](cognito-user-pools-identity-provider.md).

# Utilisation de fournisseurs d'identité OIDC avec un pool d'utilisateurs
<a name="cognito-user-pools-oidc-idp"></a>

Les utilisateurs peuvent se connecter à votre application à l'aide de leurs comptes existants auprès des fournisseurs d'identité OpenID Connect (OIDC) (). IdPs Avec les fournisseurs OIDC, les utilisateurs de systèmes d'authentification unique indépendants peuvent fournir des informations d'identification existantes tandis que votre application reçoit des jetons OIDC au format partagé de groupes d'utilisateurs. Pour configurer un IdP OIDC, configurez votre IdP pour gérer votre groupe d'utilisateurs en tant que RP et configurez votre application pour gérer votre groupe d'utilisateurs en tant qu'IdP. Amazon Cognito sert d'étape intermédiaire entre plusieurs OIDC IdPs et vos applications. Votre groupe d'utilisateurs applique des règles de mappage d'attributs aux demandes contenues dans les identifiants et les jetons d'accès que votre fournisseur transmet directement à votre groupe d'utilisateurs. [Amazon Cognito émet ensuite de nouveaux jetons en fonction des attributs utilisateur mappés et de tout ajustement supplémentaire que vous avez apporté au flux d'authentification avec les déclencheurs Lambda.](cognito-user-pools-working-with-lambda-triggers.md#lambda-triggers-for-federated-users)

Les utilisateurs qui se connectent avec un IdP OIDC ne sont pas tenus de fournir de nouveaux identifiants ou informations pour accéder à votre application de pool d'utilisateurs. Votre application peut les rediriger silencieusement vers leur IdP pour se connecter, avec un pool d'utilisateurs comme outil en arrière-plan qui normalise le format du jeton pour votre application. Pour en savoir plus sur la redirection IdP, consultez. [Point de terminaison d’autorisation](authorization-endpoint.md)

Comme pour les autres fournisseurs d'identité tiers, vous devez enregistrer votre application auprès du fournisseur OIDC et obtenir des informations sur l'application IdP que vous souhaitez connecter à votre groupe d'utilisateurs. L'IdP OIDC d'un groupe d'utilisateurs nécessite un identifiant client, un secret client, les étendues que vous souhaitez demander et des informations sur les points de terminaison des services du fournisseur. Votre groupe d'utilisateurs peut découvrir les points de terminaison OIDC du fournisseur à partir d'un point de terminaison de découverte ou vous pouvez les saisir manuellement. Vous devez également examiner les jetons d'identification du fournisseur et créer des mappages d'attributs entre l'IdP et les attributs de votre groupe d'utilisateurs.

![\[Flux d'authentification du fournisseur d'identité OIDC pour le groupe d'utilisateurs\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


Consultez [Flux d'authentification du fournisseur d'identité de groupe d'utilisateurs OIDC](cognito-user-pools-oidc-flow.md) pour plus de détails sur ce flux d'authentification.

**Note**  
La connexion via un tiers (fédération) est disponible dans les groupes d'utilisateurs Amazon Cognito. Cette fonctionnalité est indépendante de la fédération OIDC avec les groupes d'identités Amazon Cognito.

Vous pouvez ajouter un IdP OIDC à votre groupe d'utilisateurs selon la méthode API AWS Management Console du groupe d'utilisateurs, par AWS CLI le biais de ou avec celle-ci. [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Topics**
+ [Conditions préalables](#cognito-user-pools-oidc-idp-prerequisites)
+ [Enregistrer une application auprès d'un IdP OIDC](#cognito-user-pools-oidc-idp-step-1)
+ [Ajout d'un fournisseur d'identité OIDC à votre groupe d'utilisateurs​](#cognito-user-pools-oidc-idp-step-2)
+ [Test de la configuration de votre IdP OIDC](#cognito-user-pools-oidc-idp-step-3)
+ [Flux d'authentification du fournisseur d'identité de groupe d'utilisateurs OIDC](cognito-user-pools-oidc-flow.md)

## Conditions préalables
<a name="cognito-user-pools-oidc-idp-prerequisites"></a>

Avant de commencer, vous avez besoin de ce qui suit :
+ Un groupe d'utilisateurs avec une application client et un domaine de groupe d'utilisateurs. Pour plus d'informations, consultez [Créer un groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).
+ Un fournisseur d'identité (IdP) OIDC avec la configuration suivante : 
  + Prend en charge l'authentification client `client_secret_post`. Amazon Cognito ne vérifie pas la revendication `token_endpoint_auth_methods_supported` au point de terminaison de découverte OIDC pour votre fournisseur d'identité. Amazon Cognito ne prend pas en charge l'authentification client `client_secret_basic`. Pour plus d'informations sur l'authentification client, consultez [Client Authentication](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication) dans la documentation sur OpenID Connect.
  + Utilise uniquement HTTPS pour les points de terminaison OIDC tels que `openid_configuration`, `userInfo` et `jwks_uri`.
  + Utilise uniquement les ports TCP 80 et 443 pour les points de terminaison OIDC.
  + Ne signe les jetons d'identification qu'avec les algorithmes HMAC-SHA, ECDSA ou RSA.
  + Publie un champ standard `kid` d'identifiant de clé dans son `jwks_uri` et inclut un champ standard `kid` dans ses jetons.
  + Présente une clé publique non expirée avec une chaîne de confiance de l'autorité de certification racine valide.

## Enregistrer une application auprès d'un IdP OIDC
<a name="cognito-user-pools-oidc-idp-step-1"></a>

Avant d'ajouter un IdP OIDC à la configuration de votre groupe d'utilisateurs et de l'attribuer à des clients d'applications, vous devez configurer une application cliente OIDC dans votre IdP. Votre groupe d'utilisateurs est l'application tierce qui gérera l'authentification auprès de votre IdP.

**Pour vous inscrire avec un fournisseur d'identité OIDC**

1. Créez un compte développeur avec le fournisseur d'identité OIDC.  
**Liens vers l'OIDC IdPs**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/cognito-user-pools-oidc-idp.html)

1. Enregistrez l'URL du domaine de votre groupe d'utilisateurs avec le point de terminaison `/oauth2/idpresponse` auprès de votre fournisseur d'identité (IdP) OIDC Cela garantit que l'IdP OIDC l'acceptera d'Amazon Cognito lors de l'authentification des utilisateurs.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Sélectionnez les [étendues](cognito-user-pools-define-resource-servers.md#cognito-user-pools-define-resource-servers-about-scopes) que vous souhaitez que votre annuaire d'utilisateurs partage avec votre groupe d'utilisateurs. Le scope **openid** est requis pour que l'OIDC puisse fournir IdPs des informations aux utilisateurs. Le `email` champ d'application est nécessaire pour autoriser l'accès aux `email_verified` [réclamations `email`](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) et. Les champs d'application supplémentaires de la spécification OIDC concernent `profile` tous les attributs utilisateur et `phone` pour `phone_number` et. `phone_number_verified`

1. L'IdP OIDC vous fournit un ID client et un clé secrète de client. Notez ces valeurs et ajoutez-les à la configuration de l'IdP OIDC que vous ajouterez ultérieurement à votre groupe d'utilisateurs.

**Exemple : Utilisation de Salesforce en tant qu'IdP OIDC avec votre groupe d'utilisateurs**

 Vous utilisez un fournisseur d'identité OIDC lorsque vous souhaitez établir une approbation entre un fournisseur d'identité compatible OIDC, tel que Salesforce, et votre groupe d'utilisateurs.

1. [Créez un compte](https://developer.salesforce.com/signup) sur le site web Salesforce Developers.

1. [Connectez-vous](https://developer.salesforce.com) avec le compte développeur que vous avez créé à l'étape précédente.

1. Dans votre page Salesforce, procédez de l'une des manières suivantes :
   +  Si vous utilisez Lightning Experience, choisissez l'icône d'engrenage de configuration, puis choisissez **Setup Home** (Page d'accueil de configuration).
   +  Si vous utilisez Salesforce et que vous voyez **Setup (Configurer)** dans l'en-tête de l'interface utilisateur, choisissez cette option.
   +  Si vous utilisez Salesforce Classic et que vous ne voyez pas **Setup (Configurer)** dans l'en-tête, choisissez votre nom dans la barre de navigation supérieure, puis choisissez **Setup (Configurer)** dans la liste déroulante.

1. Dans la barre de navigation de gauche, sélectionnez **Company Settings (Paramètres de l'entreprise)**. 

1. Dans la barre de navigation, choisissez **Domaine**, saisissez un domaine, puis choisissez **Créer**. 

1. Dans la barre de navigation de gauche, sous **Outils de plateforme** puis choisissez **Applications**. 

1. Choisissez **App Manager (Gestionnaire d'applications)**.

1. 

   1. Choisissez **Nouvelle application connectée**.

   1. Renseignez les champs obligatoires.

      Sous **Start URL** (URL de lancement), saisissez une URL au niveau du point de terminaison `/authorize` pour le domaine de groupe d'utilisateurs qui se connecte avec votre fournisseur d'identité Salesforce. Quand vos utilisateurs accèdent à votre application connectée, Salesforce les dirige vers cette URL pour terminer la connexion. Salesforce redirige ensuite les utilisateurs vers l'URL de rappel que vous avez associée à votre client d'application.

      ```
      https://mydomain.auth.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
      ```

   1. Activez **OAuth les paramètres** et entrez l'URL du point de `/oauth2/idpresponse` terminaison pour le domaine de votre groupe d'utilisateurs dans **Callback URL**. Il s'agit de l'URL à laquelle Salesforce émet le code d'autorisation qu'Amazon Cognito échange contre un OAuth jeton.

      ```
      https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
      ```

1. Sélectionnez vos [règles](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes). Vous devez inclure l'étendue **openid**. Pour accorder l'accès aux [demandes](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) **email** et **email\$1verified**, ajoutez l'étendue **email**. Séparez les étendues par des espaces.

1. Choisissez **Créer**.

   Dans Salesforce, l'ID client est appelé **Consumer Key (Clé consommateur)**et la clé secrète du client est appelée **Consumer Secret (Clé secrète du consommateur)**. Notez l'ID client et la clé secrète du client. Vous les utiliserez dans la section suivante.

## Ajout d'un fournisseur d'identité OIDC à votre groupe d'utilisateurs​
<a name="cognito-user-pools-oidc-idp-step-2"></a>

Après avoir configuré votre IdP, vous pouvez configurer votre groupe d'utilisateurs pour gérer les demandes d'authentification avec un IdP OIDC.

------
#### [ Amazon Cognito console ]

**Ajouter un IdP OIDC dans la console**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, saisissez vos informations d'identification AWS .

1. Choisissez **Groupes d'utilisateurs** dans le menu de navigation.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **Fournisseurs sociaux et externes**, puis sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez un fournisseur d'identité **OpenID Connect**.

1. Entrez un **nom de fournisseur** unique.

1. Entrez l'ID du **client** IdP. Il s'agit de l'ID du client d'application que vous créez dans votre IdP OIDC. L'ID client que vous fournissez doit être un fournisseur OIDC que vous avez configuré avec une URL de rappel de. `https://[your user pool domain]/oauth2/idpresponse`

1. Entrez le secret du **client** IdP. Il doit s'agir du secret client pour le même client d'application que celui de l'étape précédente.

1. <a name="cognito-user-pools-oidc-step-2-substep-9"></a>Saisissez les **périmètres d'autorisation** pour ce fournisseur. Les périmètres définissent les groupes d'attributs utilisateur (tels que `name` et `email`) que votre demande demandera à votre fournisseur. Les étendues doivent être séparées par des espaces, conformément à la spécification [OAuth2.0](https://tools.ietf.org/html/rfc6749#section-3.3).

   Votre IdP peut inviter les utilisateurs à consentir à fournir ces attributs à votre application lorsqu'ils se connectent.

1. Choisissez une **méthode de demande d'attribut**. IdPspeuvent nécessiter que les demandes adressées à leurs `userInfo` points de terminaison soient formatées comme suit : ou`GET`. `POST` Le point de `userInfo` terminaison Amazon Cognito nécessite des `HTTP GET` demandes, par exemple.

1. Choisissez une **méthode de configuration selon** laquelle vous souhaitez que votre groupe d'utilisateurs détermine le chemin d'accès aux principaux points de terminaison de la fédération OIDC sur votre IdP. En général, IdPs hébergez un `/well-known/openid-configuration` point de terminaison sur une URL de base de l'émetteur. Si tel est le cas pour votre fournisseur, l'option de **remplissage automatique de l'URL de l'émetteur** vous invite à saisir cette URL de base, tente d'accéder au `/well-known/openid-configuration` chemin à partir de là et lit les points de terminaison qui y sont répertoriés. Il se peut que vous ayez des chemins de terminaison atypiques ou que vous souhaitiez transmettre des demandes à un ou plusieurs points de terminaison via un autre proxy. Dans ce cas, sélectionnez **Saisie manuelle** et spécifiez les chemins pour les `jwks_uri` points de terminaison `authorization` `token``userInfo`,, et.
**Note**  
L'URL doit commencer par `https://` et ne doit pas se terminer par une barre oblique `/`. Seuls les numéros de port 443 et 80 peuvent être utilisés avec cette URL. Par exemple, Salesforce utilise cette URL :  
`https://login.salesforce.com`   
Si vous choisissez le remplissage automatique, le document de découverte doit utiliser HTTPS pour les valeurs suivantes :`authorization_endpoint`, `token_endpoint`, `userinfo_endpoint`, et `jwks_uri`. Sinon, la connexion échoue.

1. Configurez vos règles de mappage d'attributs sous **Mapper les attributs entre votre fournisseur OpenID Connect et** votre groupe d'utilisateurs. L'**attribut du groupe d'utilisateurs** est l'attribut de *destination* du profil utilisateur Amazon Cognito et l'attribut OpenID **Connect est l'attribut** *source* que vous souhaitez qu'Amazon Cognito trouve dans une demande ou une réponse portant un jeton d'identification. `userInfo` Amazon Cognito associe automatiquement la **sous-réclamation** OIDC au profil de l'`username`utilisateur de destination.

   Pour de plus amples informations, veuillez consulter [Mappage des attributs d'IdP aux profils et aux jetons](cognito-user-pools-specifying-attribute-mapping.md).

1. Sélectionnez **Ajouter un fournisseur d’identité**.

1. Dans le menu **App clients**, sélectionnez un client d'application dans la liste. Accédez à l'onglet **Pages de connexion** et sous **Configuration des pages de connexion gérées**, sélectionnez **Modifier**. Localisez **les fournisseurs d'identité** et ajoutez votre nouvel IdP OIDC.

1. Sélectionnez **Enregistrer les modifications**.

------
#### [ API/CLI ]

Consultez la configuration OIDC dans le deuxième exemple à [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#API_CreateIdentityProvider_Example_2)l'adresse. Vous pouvez modifier cette syntaxe et l'utiliser comme corps de requête de`CreateIdentityProvider`,`UpdateIdentityProvider`, ou comme fichier `--cli-input-json` d'entrée pour [create-identity-provider](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-identity-provider.html).

------

## Test de la configuration de votre IdP OIDC
<a name="cognito-user-pools-oidc-idp-step-3"></a>

Dans votre application, vous devez appeler un navigateur dans le client de l'utilisateur afin qu'il puisse se connecter auprès de son fournisseur OIDC. Testez la connexion auprès de votre fournisseur après avoir terminé les procédures de configuration décrites dans les sections précédentes. L'exemple d'URL suivant charge la page de connexion de votre groupe d'utilisateurs avec un domaine préfixé.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

Ce lien est la page vers laquelle Amazon Cognito vous dirige lorsque vous accédez au menu des **clients de l'application**, que vous sélectionnez un client d'application, que vous accédez à l'onglet **Pages de connexion**, puis que vous sélectionnez **Afficher la page de connexion**. Pour plus d'informations sur les domaines du groupe d'utilisateurs, consultez[Configuration d'un domaine de groupe d'utilisateurs](cognito-user-pools-assign-domain.md). Pour plus d'informations sur les clients de l'application, y compris le client IDs et le rappel URLs, consultez[Paramètres spécifiques à l'application avec les clients d'applications](user-pool-settings-client-apps.md).

L'exemple de lien suivant configure une redirection silencieuse vers le `MyOIDCIdP` fournisseur à partir du [Point de terminaison d’autorisation](authorization-endpoint.md) avec un paramètre de `identity_provider` requête. Cette URL contourne la connexion interactive au groupe d'utilisateurs par une connexion gérée et permet d'accéder directement à la page de connexion de l'IdP.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=MyOIDCIdP&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

# Flux d'authentification du fournisseur d'identité de groupe d'utilisateurs OIDC
<a name="cognito-user-pools-oidc-flow"></a>

Avec la connexion OpenID Connect (OIDC), votre groupe d'utilisateurs automatise un flux de connexion par code d'autorisation avec votre fournisseur d'identité (IdP). Une fois que votre utilisateur s'est connecté avec son IdP, Amazon Cognito collecte son code sur le point de terminaison `oauth2/idpresponse` du fournisseur externe. Avec le jeton d'accès obtenu, votre groupe d'utilisateurs interroge le point de `userInfo` terminaison IdP pour récupérer les attributs utilisateur. Votre groupe d'utilisateurs compare ensuite les attributs reçus aux règles de mappage d'attributs que vous avez définies et remplit le profil de l'utilisateur et le jeton d'identification en conséquence.

Les étendues OAuth 2.0 que vous demandez dans la configuration de votre fournisseur OIDC définissent les attributs utilisateur que l'IdP fournit à Amazon Cognito. Pour des raisons de sécurité, demandez uniquement les étendues correspondant aux attributs que vous souhaitez associer à votre groupe d'utilisateurs. Par exemple, si votre groupe d'utilisateurs le demande`openid profile`, vous obtiendrez tous les attributs possibles, mais si vous le demandez, `openid email phone_number` vous n'obtiendrez que l'adresse e-mail et le numéro de téléphone de l'utilisateur. Vous pouvez configurer les étendues que vous [demandez à OIDC de](cognito-user-pools-oidc-idp.md#cognito-user-pools-oidc-step-2-substep-9) manière IdPs à ce qu'elles soient différentes de celles que vous autorisez et demandez dans la demande d'authentification du [client de l'application](user-pool-settings-client-apps.md#user-pool-settings-client-apps-scopes) et du groupe d'utilisateurs.

Lorsque votre utilisateur se connecte à votre application à l'aide d'un IdP OIDC, votre groupe d'utilisateurs exécute le flux d'authentification suivant.

1. Un utilisateur accède à votre page de connexion gérée et choisit de se connecter avec son IdP OIDC.

1. Votre application dirige le navigateur de l'utilisateur vers le point de terminaison d'autorisation de votre groupe d'utilisateurs.

1. Votre groupe d'utilisateurs redirige la demande vers le point de terminaison d'autorisation de l'IdP OIDC.

1. Votre IdP affiche une invite de connexion.

1. Dans votre application, la session de votre utilisateur affiche une invite de connexion pour l'IdP OIDC.

1. L'utilisateur saisit ses informations d'identification pour l'IdP ou présente un cookie pour une session déjà authentifiée.

1. Une fois que votre utilisateur s'est authentifié, l'IdP OIDC est redirigé vers Amazon Cognito avec un code d'autorisation.

1. Votre groupe d'utilisateurs échange le code d'autorisation contre des identifiants et des jetons d'accès. Amazon Cognito reçoit des jetons d'accès lorsque vous configurez votre IdP avec les scopes. `openid` Les revendications contenues dans le jeton d'identification et dans la `userInfo` réponse sont déterminées par des étendues supplémentaires issues de la configuration de votre IdP, par exemple `profile` et. `email`

1. Votre IdP émet les jetons demandés.

1. Votre groupe d'utilisateurs détermine le chemin d'accès au point de `jwks_uri` terminaison IdP à partir de l'émetteur dans URLs votre configuration IdP et demande les clés de signature des jetons au point de terminaison du jeu de clés Web JSON (JWKS).

1. L'IdP renvoie les clés de signature depuis le point de terminaison JWKS.

1. Votre groupe d'utilisateurs valide les jetons IdP à partir des données de signature et d'expiration contenues dans les jetons.

1. Votre groupe d'utilisateurs autorise une demande adressée au point de terminaison `userInfo` IdP avec le jeton d'accès. L'IdP répond en fournissant des données utilisateur en fonction de l'étendue des jetons d'accès.

1. Votre groupe d'utilisateurs compare le jeton d'identification et la `userInfo` réponse de l'IdP aux règles de mappage d'attributs de votre groupe d'utilisateurs. Il écrit les attributs IdP mappés dans les attributs de profil du groupe d'utilisateurs.

1. Amazon Cognito émet les jetons de porteur à votre application, lesquels peuvent inclure des jetons d'identité, d'accès et d'actualisation.

1. Votre application traite les jetons du groupe d'utilisateurs et connecte l'utilisateur.

![\[Flux d'authentification du fournisseur d'identité OIDC pour le groupe d'utilisateurs\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


**Note**  
Amazon Cognito annule les demandes d'authentification qui ne sont pas traitées dans les 5 minutes et redirige l'utilisateur vers une connexion gérée. La page affiche un message d'erreur `Something went wrong`.

L'OIDC est une couche d'identité supérieure à la OAuth version 2.0, qui spécifie les jetons d'identité au format JSON (JWT) émis par les applications clientes OIDC ( IdPs parties utilisatrices). Consultez la documentation de votre IdP OIDC pour plus d'informations sur l'ajout d'Amazon Cognito en tant que partie utilisatrice d'OIDC.

Lorsqu'un utilisateur s'authentifie avec un octroi de code d'autorisation, le groupe d'utilisateurs retourne les jetons d'identification, d'accès et d'actualisation. Le jeton d'identification est un jeton [OIDC](http://openid.net/specs/openid-connect-core-1_0.html) standard pour la gestion des identités, et le jeton d'accès est un jeton [OAuth 2.0](https://oauth.net/2/) standard. Pour plus d'informations sur les types d'octroi que le client de votre application de groupe d'utilisateurs peut prendre en charge, consultez [Point de terminaison d’autorisation](authorization-endpoint.md).

## Comment un groupe d'utilisateurs traite les demandes d'un fournisseur OIDC
<a name="how-a-cognito-user-pool-processes-claims-from-an-oidc-provider"></a>

Lorsque votre utilisateur termine sa connexion auprès d'un fournisseur OIDC tiers, la connexion gérée récupère un code d'autorisation auprès de l'IdP. Votre groupe d'utilisateurs échange le code d'autorisation contre des jetons d'accès et d'identification avec le point de terminaison `token` de votre IdP. Votre groupe d'utilisateurs ne transmet pas ces jetons à votre utilisateur ou application, mais s'en sert pour créer un profil utilisateur avec les données qu'il présente dans les demandes de ses propres jetons.

 Amazon Cognito ne valide pas le jeton d'accès de manière indépendante. En effet, il demande des informations d'attribut utilisateur au point de terminaison `userInfo` du fournisseur et s'attend à ce que la demande soit refusée si le jeton n'est pas valide.

Amazon Cognito valide le jeton d'identification du fournisseur en effectuant les vérifications suivantes :

1. Vérifie que le fournisseur a signé le jeton avec un algorithme issu de l'ensemble suivant : RSA, HMAC, Elliptic Curve.

1. Si le fournisseur a signé le jeton avec un algorithme de signature asymétrique, vérifie que l'ID de la clé de signature figurant dans la demande `kid` du jeton est répertorié sur le point de terminaison `jwks_uri` du fournisseur. Amazon Cognito actualise la clé de signature depuis le point de terminaison JWKS dans votre configuration IdP pour chaque jeton d'identification IdP traité.

1. Compare la signature du jeton d'identification à la signature qu'il attend en fonction des métadonnées du fournisseur.

1. Compare la demande `iss` à l'émetteur OIDC configuré pour l'IdP.

1. Vérifie que la demande `aud` correspond à l'ID client configuré sur l'IdP ou qu'elle contient l'ID client configuré si la demande `aud` contient plusieurs valeurs.

1. Vérifie que l'horodatage figurant dans la demande `exp` n'est pas antérieur à l'heure actuelle.

Votre groupe d'utilisateurs valide le jeton d'identification, puis tente d'envoyer une demande au point de terminaison `userInfo` du fournisseur avec le jeton d'accès du fournisseur. Il récupère les informations de profil utilisateur que les portées du jeton d'accès l'autorisent à lire. Votre groupe d'utilisateurs recherche ensuite les attributs utilisateur obligatoires que vous avez définis dans votre groupe d'utilisateurs. Vous devez créer des mappages d'attributs dans la configuration de votre fournisseur pour les attributs obligatoires. Votre groupe d'utilisateurs vérifie le jeton d'identification du fournisseur et la réponse `userInfo`. Votre groupe d'utilisateurs écrit toutes les demandes qui correspondent aux règles de mappage dans les attributs utilisateur du profil utilisateur du groupe d'utilisateurs. Votre groupe d'utilisateurs ignore les attributs qui correspondent à une règle de mappage, mais qui ne sont pas obligatoires et qui ne se trouvent pas dans les demandes du fournisseur.

# Mappage des attributs d'IdP aux profils et aux jetons
<a name="cognito-user-pools-specifying-attribute-mapping"></a>

Les services de fournisseur d'identité (IdP), notamment Amazon Cognito, peuvent généralement enregistrer davantage d'informations sur un utilisateur. Vous voudrez peut-être savoir pour quelle entreprise ils travaillent, comment les contacter et obtenir d'autres informations d'identification. Mais le format de ces attributs varie d'un fournisseur à l'autre. Par exemple, configurez trois IdPs fournisseurs différents avec votre groupe d'utilisateurs et examinez un exemple d'assertion SAML, de jeton d'identification ou de `userInfo` charge utile pour chacun d'eux. L'un représentera l'adresse e-mail de l'utilisateur sous la forme`email`, l'autre sous la forme`emailaddress`, et le troisième sous la forme`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`.

L'un des principaux avantages de la consolidation IdPs avec un pool d'utilisateurs est la possibilité de mapper la variété des noms d'attributs dans un schéma de jeton OIDC unique avec des noms d'attributs cohérents, prévisibles et partagés. Ainsi, vos développeurs ne sont pas tenus de maintenir la logique du traitement d'une variété complexe d'événements d'authentification unique. Cette consolidation de format est un mappage d'attributs. Le mappage des attributs du groupe d'utilisateurs attribue des noms d'attributs IdP aux noms d'attributs du groupe d'utilisateurs correspondants. Par exemple, vous pouvez configurer votre groupe d'utilisateurs pour écrire la valeur d'une `emailaddress` réclamation dans l'attribut standard du groupe d'utilisateurs`email`.

Chaque IdP du groupe d'utilisateurs possède un schéma de mappage d'attributs distinct. Pour spécifier les mappages d'attributs pour votre IdP, configurez un fournisseur d'identité du groupe d'utilisateurs dans la console Amazon Cognito, AWS un SDK ou l'API REST du groupe d'utilisateurs.

## Choses à savoir sur les mappages
<a name="cognito-user-pools-specifying-attribute-mapping-requirements"></a>

Avant de commencer à configurer le mappage des attributs utilisateur, passez en revue les informations importantes suivantes.
+ Quand un utilisateur fédéré se connecte à votre application, un mappage doit être présent pour chaque attribut de groupe d'utilisateurs requis par votre groupe d'utilisateurs. Par exemple, si votre groupe d'utilisateurs nécessite un attribut `email` pour l'inscription, mappez cet attribut à son équivalent à partir du fournisseur d'identité.
+ Par défaut, les adresses e-mail mappées ne sont pas vérifiées. Vous ne pouvez pas vérifier une adresse e-mail mappée à l'aide d'un code à usage unique. Au lieu de cela, mappez un attribut de votre fournisseur d'identité pour obtenir l'état de vérification. Par exemple, Google et la plupart des fournisseurs OIDC incluent l'attribut `email_verified`.
+ Vous pouvez mapper les jetons du fournisseur d'identité (IdP) à des attributs personnalisés de votre groupe d'utilisateurs. Les fournisseurs sociaux présentent un jeton d'accès, et les fournisseurs OIDC présentent un jeton d'accès et d'identification. Pour mapper un jeton, ajoutez un attribut personnalisé d'une longueur maximale de 2 048 caractères, accordez à votre client d'application un accès en écriture à l'attribut, puis mappez `access_token` ou `id_token` de l'IdP à l'attribut personnalisé.
+ Pour chaque attribut du groupe d'utilisateurs mappé, la longueur de valeur maximale de 2 048 caractères doit être suffisamment grande pour la valeur qu'Amazon Cognito obtient du fournisseur d'identité. Sinon, Amazon Cognito signale une erreur lorsque les utilisateurs se connectent à votre application. Amazon Cognito ne prend pas en charge le mappage des jetons IdP à des attributs personnalisés lorsque la longueur des jetons est supérieure à 2 048 caractères.
+ Amazon Cognito calcule l'`username`attribut du profil d'un utilisateur fédéré à partir de demandes spécifiques transmises par votre IdP fédéré, comme indiqué dans le tableau suivant. Amazon Cognito ajoute à cette valeur d'attribut le nom de votre IdP, par exemple. `MyOIDCIdP_[sub]` Si vous souhaitez que vos utilisateurs fédérés aient un attribut correspondant exactement à un attribut de votre répertoire d'utilisateurs externe, associez cet attribut à un attribut de connexion Amazon Cognito tel que. `preferred_username`    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)
+ Lorsqu'un groupe d'utilisateurs ne distingue pas les [majuscules et minuscules](user-pool-case-sensitivity.md), Amazon Cognito convertit l'attribut source du nom d'utilisateur en minuscules dans les noms d'utilisateur générés automatiquement par les utilisateurs fédérés. Voici un exemple de nom d'utilisateur pour un groupe d'utilisateurs distinguant les majuscules et minuscules :`MySAML_TestUser@example.com`. Le nom d'utilisateur suivant est le même pour un groupe d'utilisateurs ne distinguant pas *les majuscules* et minuscules :`MySAML_testuser@example.com`.

  Dans les groupes d'utilisateurs qui ne font pas la distinction majuscules/majuscules, vos déclencheurs Lambda qui traitent le nom d'utilisateur doivent tenir compte de cette modification de toute réclamation mixte concernant les attributs de source du nom d'utilisateur. Pour associer votre IdP à un groupe d'utilisateurs dont le paramètre de distinction majuscules/minuscules est différent de celui de votre groupe d'utilisateurs actuel, créez un nouveau groupe d'utilisateurs.
+ Amazon Cognito doit être en mesure de mettre à jour vos attributs mappés de groupe d'utilisateurs lorsque les utilisateurs se connectent à votre application. Quand un utilisateur se connecte via un fournisseur d'identité, Amazon Cognito met à jour les attributs mappés avec les informations les plus récentes du fournisseur d'identité. Amazon Cognito met à jour les attributs mappés uniquement lorsque leurs valeurs changent. Pour vous assurer qu'Amazon Cognito peut mettre à jour les attributs, vérifiez les exigences suivantes :
  + Tous les attributs personnalisés du groupe d'utilisateurs que vous mappez à partir de votre fournisseur d'identité doivent être *mutables*. Vous pouvez mettre à jour à tout moment des attributs personnalisés mutables. En revanche, pour un attribut personnalisé *immuable*, vous pouvez définir une valeur uniquement la première fois que vous créez le profil utilisateur. **Pour créer un attribut personnalisé mutable dans la console Amazon Cognito, cochez la case Mutable pour **l'**attribut que vous ajoutez lorsque vous **sélectionnez Ajouter des attributs personnalisés** dans le menu d'inscription.** Ou, si vous créez votre groupe d'utilisateurs à l'aide de l'opération [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API, vous pouvez définir le `Mutable` paramètre de chacun de ces attributs sur`true`. Si votre IdP envoie une valeur pour un attribut immuable mappé, Amazon Cognito renvoie une erreur et la connexion échoue.
  + Dans les paramètres du client d'application pour votre application, les attributs mappés doivent être *accessibles en écriture*. Vous pouvez définir des attributs accessibles en écriture dans la page **Clients d'application** de la console Amazon Cognito. Si vous créez le client d'application au moyen de l'opération d'API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html), vous pouvez également ajouter ces attributs à la grappe `WriteAttributes`. Si votre IdP envoie une valeur pour un attribut mappé non inscriptible, Amazon Cognito ne définit pas la valeur de l'attribut et procède à l'authentification.
+ Lorsque les attributs IdP contiennent plusieurs valeurs, Amazon Cognito ajuste toutes les valeurs en une seule chaîne séparée par des virgules entre crochets et. `[` `]` Le formulaire d'URL Amazon Cognito code les valeurs contenant des caractères non alphanumériques, à l'exception de,, et. `.` `-` `*` `_` Vous devez décoder et analyser ces valeurs individuelles avant de les utiliser dans votre application.
+ L'attribut de destination conserve toute valeur que vos règles de mappage d'attributs lui attribuent, sauf si une connexion ou une action administrative la modifie. Amazon Cognito ne supprime pas les attributs des utilisateurs lorsque l'attribut source n'est plus envoyé dans le jeton du fournisseur ou dans l'assertion SAML. Les actions suivantes suppriment la valeur d'un attribut d'un profil de groupe d'utilisateurs pour un utilisateur fédéré :

  1. L'IdP envoie une valeur vide pour l'attribut source et une règle de mappage applique la valeur vide à l'attribut de destination.

  1. Vous effacez la valeur de l'attribut mappé à l'aide d'une [AdminDeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUserAttributes.html)demande [DeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserAttributes.html)or.

## Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs (AWS Management Console)
<a name="cognito-user-pools-specifying-attribute-mapping-console"></a>

Vous pouvez utiliser le AWS Management Console pour spécifier des mappages d'attributs pour l'IdP de votre groupe d'utilisateurs.

**Note**  
Amazon Cognito mappera les revendications entrantes aux attributs de groupe d'utilisateurs uniquement si ces revendications existent dans le jeton entrant. Si une demande précédemment mappée n'existe plus dans le jeton entrant, elle ne sera ni supprimée ni modifiée. Si votre application nécessite le mappage de champs standard supprimés, vous pouvez utiliser le déclencheur Lambda de pré-authentification pour supprimer l'attribut personnalisé pendant l'authentification et permettre à ces attributs de se remplir à nouveau à partir du jeton entrant.

**Pour spécifier un mappage d'attributs de fournisseur d'identité social**

1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Dans le volet de navigation, choisissez **Groupes d’utilisateurs**, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.

1. Choisissez le menu **Fournisseurs sociaux et externes**.

1. Choisissez **Add an identity provider** (Ajouter un fournisseur d'identité) ou choisissez le fournisseur d'identité **Facebook**, **Google**, **Amazon** ou **Apple** que vous avez configuré. Localisez **Mappage d'attribut** et choisissez **Modifier**. 

   Pour plus d'informations sur l'ajout d'un fournisseur d'identité social, consultez [Utilisation de fournisseurs d'identité sociale avec un pool d'utilisateurs](cognito-user-pools-social-idp.md).

1. Pour chaque attribut que vous devez mapper, effectuez les étapes suivantes :

   1. Sélectionnez un attribut dans la colonne **Attribut du groupe d'utilisateurs** Il s'agit de l'attribut affecté au profil utilisateur dans votre groupe d'utilisateurs. Les attributs personnalisés sont répertoriés après les attributs standard.

   1. Sélectionnez un attribut dans la colonne des ***<provider>*attributs**. Il s'agit de l'attribut transmis à partir du répertoire du fournisseur. Les attributs connus du fournisseur social sont fournis dans une liste déroulante.

   1. Pour mapper des attributs supplémentaires entre votre IdP et Amazon Cognito, choisissez **Ajout d'un autre attribut**.

1. Sélectionnez **Enregistrer les modifications**.

**Pour spécifier un mappage d'attribut de fournisseur SAML**

1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Dans le volet de navigation, choisissez **Groupes d’utilisateurs**, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.

1. Choisissez le menu **Fournisseurs sociaux et externes**.

1. Choisissez **Add an identity provider** (Ajouter un fournisseur d'identité) ou choisissez le fournisseur d'identité SAML que vous avez configuré. Localisez **Mappage d'attribut**, et choisissez **Modifier**. Pour plus d'informations sur l'ajout d'un fournisseur d'identité SAML, consultez [Utilisation de fournisseurs d'identité SAML avec un groupe d'utilisateurs](cognito-user-pools-saml-idp.md).

1. Pour chaque attribut que vous devez mapper, effectuez les étapes suivantes :

   1. Sélectionnez un attribut dans la colonne **Attribut du groupe d'utilisateurs** Il s'agit de l'attribut affecté au profil utilisateur dans votre groupe d'utilisateurs. Les attributs personnalisés sont répertoriés après les attributs standard.

   1. Sélectionnez un attribut dans la colonne **Attribut SAML**. Il s'agit de l'attribut transmis à partir du répertoire du fournisseur.

      Votre fournisseur d'identité peut proposer des exemples d'assertions SAML à titre de référence. Certains IdPs utilisent des noms simples, tels que`email`, tandis que d'autres utilisent des noms d'attributs au format URL similaires à :

      ```
      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
      ```

   1. Pour mapper des attributs supplémentaires entre votre IdP et Amazon Cognito, choisissez **Ajout d'un autre attribut**.

1. Sélectionnez **Enregistrer les modifications**.

## Spécifier les mappages d'attributs des fournisseurs d'identité pour votre groupe d'utilisateurs (AWS CLI et votre AWS API)
<a name="cognito-user-pools-specifying-attribute-mapping-cli-api"></a>

Le corps de demande suivant pour [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)mappe les attributs `emailaddress` « MyId P » du fournisseur SAML et `phone` les attributs du groupe d'utilisateurs `email``birthdate`, et`phone_number`, dans cet ordre. `birthdate` Il s'agit d'un corps de demande complet pour un fournisseur SAML 2.0. Le corps de votre demande varie en fonction du type d'IdP et des détails spécifiques. Le mappage des attributs se trouve dans le `AttributeMapping` paramètre.

```
{
   "AttributeMapping": { 
      "email" : "emailaddress",
      "birthdate" : "birthdate",
      "phone_number" : "phone"
   },
   "IdpIdentifiers": [ 
      "IdP1",
      "pdxsaml"
   ],
   "ProviderDetails": { 
      "IDPInit": "true", 
      "IDPSignout": "true", 
      "EncryptedResponses" : "true", 
      "MetadataURL": "https://auth.example.com/sso/saml/metadata", 
      "RequestSigningAlgorithm": "rsa-sha256"
   },
   "ProviderName": "MyIdP",
   "ProviderType": "SAML",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

Utilisez les commandes suivantes pour spécifier les mappages d'attributs de fournisseur d'identité pour votre groupe d'utilisateurs.

**Pour spécifier des mappages d'attributs au moment de la création du fournisseur**
+ AWS CLI: `aws cognito-idp create-identity-provider`

  Exemple avec fichier de métadonnées : `aws cognito-idp create-identity-provider --user-pool-id <user_pool_id> --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`

  Où `details.json` contient :

  ```
  { 
      "MetadataFile": "<SAML metadata XML>"
  }
  ```
**Note**  
S'il *<SAML metadata XML>* contient des guillemets (`"`), ils doivent être échappés (`\"`).

  Exemple avec URL de métadonnées :

  ```
  aws cognito-idp create-identity-provider \
  --user-pool-id us-east-1_EXAMPLE \
  --provider-name=SAML_provider_1 \
  --provider-type SAML \
  --provider-details MetadataURL=https://myidp.example.com/saml/metadata \
  --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  ```
+ API/SDK : [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Pour spécifier des mappages d'attributs pour un fournisseur d'identité existant**
+ AWS CLI: `aws cognito-idp update-identity-provider`

  Exemple : `aws cognito-idp update-identity-provider --user-pool-id <user_pool_id> --provider-name <provider_name> --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
+ API/SDK : [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)

**Pour obtenir des informations sur le mappage d'attributs pour un fournisseur d'identité spécifique**
+ AWS CLI: `aws cognito-idp describe-identity-provider`

  Exemple : `aws cognito-idp describe-identity-provider --user-pool-id <user_pool_id> --provider-name <provider_name>`
+ API/SDK : [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)

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