Verknüpfen von Verbundbenutzern mit einem vorhandenen Benutzerprofil - Amazon Cognito

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verknüpfen von Verbundbenutzern mit einem vorhandenen Benutzerprofil

Oft hat derselbe Benutzer ein Profil mit mehreren Identitätsanbietern (IdPs), die Sie mit Ihrem Benutzerpool verbunden haben. Amazon Cognito kann jedes Vorkommen eines Benutzers mit demselben Benutzerprofil in Ihrem Verzeichnis verknüpfen. Auf diese Weise kann eine Person mit mehreren IDP-Benutzern von einer konsistenten Erfahrung in Ihrer App profitieren. AdminLinkProviderForUserweist Amazon Cognito an, die eindeutige ID eines Benutzers in Ihrem Verbundverzeichnis als Benutzer im Benutzerpool zu erkennen. Ein Benutzer in Ihrem Benutzerpool gilt für Abrechnungszwecke als ein aktiver Benutzer pro Monat (MAU), wenn dem Benutzerprofil keine oder mehr föderierte Identitäten zugeordnet sind.

Wenn sich ein Verbundbenutzer zum ersten Mal an Ihrem Benutzerpool anmeldet, sucht Amazon Cognito nach einem lokalen Profil, das Sie mit seiner Identität verknüpft haben. Wenn kein verknüpftes Profil vorhanden ist, erstellt Ihr Benutzerpool ein neues Profil. Sie können jederzeit vor der ersten Anmeldung ein lokales Profil erstellen und es mit Ihrem Verbundbenutzer verknüpfen, und zwar in einer AdminLinkProviderForUser API Anfrage, entweder in einer geplanten Prestaging-Aufgabe oder in einer. Lambda-Auslöser für die Vorab-Registrierung Nachdem sich Ihr Benutzer angemeldet hat und Amazon Cognito ein verknüpftes lokales Profil findet, liest Ihr Benutzerpool die Ansprüche Ihres Benutzers und vergleicht sie mit den Zuordnungsregeln für den IdP. Ihr Benutzerpool aktualisiert dann das verknüpfte lokale Profil mit den Ansprüchen, die bei der Anmeldung zugeordnet wurden. Auf diese Weise können Sie das lokale Profil mit Zugriffsansprüchen konfigurieren und deren Identitätsansprüche bei Ihrem Anbieter behalten. up-to-date Nachdem Amazon Cognito Ihren Verbundbenutzer einem verknüpften Profil zugeordnet hat, meldet er sich immer bei diesem Profil an. Anschließend können Sie weitere Anbieteridentitäten Ihres Benutzers mit demselben Profil verknüpfen, um Kunden ein einheitliches Erlebnis in Ihrer App zu bieten. Um einen Verbundbenutzer zu verknüpfen, der sich zuvor angemeldet hat, müssen Sie zunächst das vorhandene Profil löschen. Sie können vorhandene Profile an ihrem Format erkennen: [Provider name]_identifier. Beispiel, LoginWithAmazon_amzn1.account.AFAEXAMPLE. Ein Benutzer, den Sie erstellt und dann mit einer Benutzeridentität eines Drittanbieters verknüpft haben, hat den Benutzernamen, mit dem er erstellt wurde, und ein identities Attribut, das die Details seiner verknüpften Identitäten enthält.

Wichtig

Da AdminLinkProviderForUser es einem Benutzer mit einer externen föderierten Identität ermöglicht wird, sich als vorhandener Benutzer im Benutzerpool anzumelden, ist es wichtig, dass er nur mit externen Attributen IdPs und Anbieterattributen verwendet wird, denen der Anwendungsbesitzer vertraut hat.

Zum Beispiel, wenn Sie ein Managed Service Provider (MSP) mit einer App sind, die Sie mit mehreren Kunden teilen. Jeder Kunde meldet sich über Active Directory Federation Services (ADFS) bei Ihrer App an. Ihr IT-Administrator, Carlos, verfügt in jeder Domäne Ihrer Kunden über ein Konto. Sie möchten, dass Carlos unabhängig vom IDP bei jeder Anmeldung als App-Administrator erkannt wird.

Ihre ADFS IdPs derzeitige E-Mail-Adresse von Carlos msp_carlos@example.com in der Beschwerde über die email SAML Behauptungen der Carlos gegenüber Amazon Cognito. Sie erstellen einen Benutzer in Ihrem Benutzerpool mit dem Benutzernamen Carlos. Die folgenden Befehle AWS Command Line Interface (AWS CLI) verknüpfen Carlos' Identitäten mit,, und. IdPs ADFS1 ADFS2 ADFS3

Anmerkung

Sie können einen Benutzer basierend auf bestimmten Attributansprüchen verknüpfen. Diese Fähigkeit gibt es nur bei und. OIDC SAML IdPs Für andere Anbietertypen müssen Sie eine Verknüpfung basierend auf einem festen Quellattribut herstellen. Weitere Informationen finden Sie unter AdminLinkProviderForUser. Sie müssen ProviderAttributeName auf Cognito_Subject festlegen, wenn Sie einen Social-Identity-IDP mit einem Benutzerprofil verknüpfen. ProviderAttributeValue muss die eindeutige Kennung des Benutzers bei Ihrem IDP sein.

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

Das Benutzerprofil Carlos in Ihrem Benutzerpool verfügt jetzt über das folgende identities-Attribut.

[{ "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 }]
Wissenswertes zur Verknüpfung von Verbundbenutzern
  • Sie können bis zu fünf Verbundbenutzer mit jedem Benutzerprofil verknüpfen.

  • Sie können Benutzer mit jedem IdP aus bis zu fünf IdP-Attributansprüchen verknüpfen, wie durch den ProviderAttributeName Parameter von SourceUser in einer AdminLinkProviderForUser API Anfrage definiert. Wenn Sie beispielsweise mindestens einen Benutzer mit den Quellattributenemail,,phone, und location verknüpft haben departmentgiven_name, können Sie weitere Benutzer nur mit einem dieser fünf Attribute verknüpfen.

  • Sie können Verbundbenutzer entweder mit einem vorhandenen Verbundbenutzerprofil oder mit einem lokalen Benutzer verknüpfen.

  • Sie können Anbieter nicht mit Benutzerprofilen in der verknüpfen AWS Management Console.

  • Das ID-Token Ihres Benutzers enthält alle zugehörigen Anbieter im identities-Anspruch.

  • Sie können in einer Anfrage ein Passwort für das automatisch erstellte Verbundbenutzerprofil festlegen. AdminSetUserPasswordAPI Der Status dieses Benutzers ändert sich dann von EXTERNAL_PROVIDER zu CONFIRMED. Ein Benutzer in diesem Status kann sich als Verbundbenutzer anmelden und Authentifizierungsabläufe wie ein verknüpfter lokaler Benutzer initiieren. API Sie können ihr Passwort und ihre Attribute auch in tokenauthentifizierten API Anfragen wie und ändern. ChangePasswordUpdateUserAttributes Als bewährte Sicherheitsmethode und zur Synchronisierung von Benutzern mit Ihrem externen IdP sollten Sie keine Passwörter für Verbundbenutzerprofile festlegen. Verknüpfen Sie Benutzer stattdessen mit lokalen Profilen mit AdminLinkProviderForUser.

  • Amazon Cognito füllt Benutzerattribute in ein verknüpftes lokales Benutzerprofil ein, wenn sich der Benutzer über seinen IdP anmeldet. Amazon Cognito verarbeitet Identitätsansprüche im ID-Token eines OIDC IdP und überprüft auch den userInfo Endpunkt von OAuth 2.0 und OIDC Anbietern. Amazon Cognito priorisiert Informationen in einem ID-Token gegenüber Informationen vonuserInfo.

Wenn Sie erkennen, dass Ihr Benutzer kein externes Benutzerkonto mehr verwendet, das Sie mit seinem Profil verknüpft haben, können Sie die Zuordnung dieses Benutzerkontos zu Ihrem Benutzerpool-Benutzer aufheben. Bei der Verknüpfung des Benutzers haben Sie in der Anfrage den Attributnamen, den Attributwert und den Anbieternamen des Benutzers angegeben. Um ein Profil zu entfernen, das Ihr Benutzer nicht mehr benötigt, stellen Sie eine AdminDisableProviderForUserAPIAnfrage mit entsprechenden Parametern.

AdminLinkProviderForUserWeitere Befehlssyntax und Beispiele finden Sie in der AWS SDKs.