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 est considéré comme un utilisateur actif par mois (MAU) aux fins de facturation lorsque vous n'avez aucune 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 le cadre d'une AdminLinkProviderForUser API demande, soit dans le cadre d'une tâche de pré-préparation planifiée, soit 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 adresse e-mail ADFS IdPs actuelle de Carlos msp_carlos@example.com dans la email réclamation concernant les assertions de Carlos auprès d'Amazon CognitoSAML. 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 ADFS1ADFS2, et. ADFS3

Note

Vous pouvez lier un utilisateur en fonction de revendications d'attributs spécifiques. Cette capacité est unique à OIDC et SAML IdPs. 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 à chaque IdP à partir d'un maximum de cinq revendications d'attribut IdP, comme défini par le ProviderAttributeName paramètre d'SourceUserune demande. AdminLinkProviderForUser API Par exemple, si vous avez lié au moins un utilisateur aux attributs sourceemail,,phone, et department given_namelocation, 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. AdminSetUserPasswordAPI 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 initier des flux d'authentification API comme s'il s'agissait d'un utilisateur local lié. Ils peuvent également modifier leur mot de passe et leurs attributs dans des API demandes 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 demandes d'identité contenues dans le jeton d'identification d'un OIDC IdP et vérifie également le point de userInfo terminaison de la version 2.0 et OAuth des fournisseurs. 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, faites une AdminDisableProviderForUserAPIdemande avec des paramètres équivalents.

AdminLinkProviderForUserPour obtenir d'autres syntaxes de commande et des exemples, reportez-vous au AWS SDKs.