Liaison d'utilisateurs fédérés à un profil utilisateur existant - Amazon Cognito

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

Liaison d'utilisateurs fédérés à un profil utilisateur existant

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. De cette façon, une personne ayant plusieurs utilisateurs de fournisseur d'identité peut vivre une expérience cohérente dans votre application. AdminLinkProviderForUserindique à 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 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'API AdminLinkProviderForUser ou dans un Déclencheur Lambda Avant l'inscription. 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 AWS Command Line Interface (AWS CLI) suivantes relient les identités de Carlos à celles d' IdPs ADFS1, ADFS2 et ADFS3.

Note

Vous pouvez lier un utilisateur en fonction de revendications d'attributs spécifiques. Cette capacité est propre à l'OIDC et au IdPs SAML. Pour les autres types de fournisseurs, vous devez créer une liaison basée sur un attribut source fixe. Pour plus d'informations, consultez AdminLinkProviderForUser. 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 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 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. ChangePasswordUpdateUserAttributes 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 champs standard d'identité contenus dans le jeton d'identification provenant d'un fournisseur d'identité OIDC, et vérifie également le point de terminaison userInfo des fournisseurs OAuth 2.0 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'AdminDisableProviderForUserAPI avec des paramètres équivalents.

AdminLinkProviderForUserReportez-vous à la section Syntaxe de commande et exemples supplémentaires dans les AWS SDK.