Zuordnung von IdP-Attributen zu Profilen und Tokens - 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.

Zuordnung von IdP-Attributen zu Profilen und Tokens

Identitätsanbieterdienste (IdP), einschließlich Amazon Cognito, können in der Regel mehr Informationen über einen Benutzer aufzeichnen. Möglicherweise möchten Sie wissen, für welches Unternehmen sie arbeiten, wie Sie sie kontaktieren können und welche anderen identifizierenden Informationen Sie benötigen. Das Format, das diese Attribute annehmen, ist jedoch von Anbieter zu Anbieter unterschiedlich. Richten Sie beispielsweise drei IdPs von drei verschiedenen Anbietern mit Ihrem Benutzerpool ein und untersuchen Sie jeweils ein Beispiel für eine SAML Assertion, ein ID-Token oder eine userInfo Payload. Einer stellt die E-Mail-Adresse des Benutzers alsemail, ein anderer als emailaddress und der dritte als dar. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

Ein großer Vorteil, der sich aus der Konsolidierung IdPs mit einem Benutzerpool ergibt, ist die Möglichkeit, die Vielzahl von Attributnamen in einem einzigen OIDC Token-Schema mit konsistenten, vorhersehbaren, gemeinsamen Attributnamen abzubilden. Auf diese Weise müssen Ihre Entwickler nicht die Logik für die Verarbeitung einer komplexen Vielzahl von Single Sign-On-Ereignissen beibehalten. Bei dieser Formatkonsolidierung handelt es sich um eine Attributzuordnung. Bei der Zuordnung von Benutzerpoolattributen werden IdP-Attributnamen den entsprechenden Benutzerpool-Attributnamen zugewiesen. Sie können Ihren Benutzerpool beispielsweise so konfigurieren, dass der Wert eines emailaddress Claims in das Standard-Benutzerpool-Attribut geschrieben wird. email

Jeder Benutzerpool-IdP hat ein separates Attributzuordnungsschema. Um Attributzuordnungen für Ihren IdP anzugeben, konfigurieren Sie einen Benutzerpool-Identitätsanbieter in der Amazon Cognito Cognito-Konsole AWS SDK, an oder die Benutzerpools. REST API

Wissenswertes über Mappings

Bevor Sie mit der Einrichtung der Zuordnung von Benutzerattributen beginnen, sollten Sie sich die folgenden wichtigen Details ansehen.

  • Bei der Anmeldung eines Verbundbenutzers bei Ihrer Anwendung muss ein Mapping für jedes Benutzerpool-Attribut vorhanden sein, das Ihr Benutzerpool verlangt. Beispiel: Wenn Ihr Benutzerpool ein email-Attribut für die Anmeldung erfordert, ordnen Sie dieses Attribut seiner Entsprechung vom IDP zu.

  • Standardmäßig werden zugeordnete E-Mail-Adressen nicht überprüft. Sie können eine zugeordnete E-Mail-Adresse nicht mit einem einmaligen Code verifizieren. Ordnen Sie stattdessen ein Attribut von Ihrem IdP zu, um den Überprüfungsstatus zu erhalten. Beispielsweise enthalten Google und die meisten OIDC Anbieter das email_verified Attribut.

  • So können in Ihrem Benutzerpool Identitätsanbieter(IDP)-Token benutzerdefinierten Attributen zuordnen. Soziale Anbieter präsentieren ein Zugriffstoken und OIDC Anbieter ein Zugriffs- und ID-Token. Um ein Token zuzuordnen, fügen Sie ein benutzerdefiniertes Attribut mit einer maximalen Länge von 2048 Zeichen hinzu, gewähren Sie Ihrem App-Client Schreibzugriff auf das Attribut und ordnen Sie dem benutzerdefinierten Attribut access_token oder id_token des IDP zu.

  • Für jedes zugeordnete Benutzerpool-Attribut muss die maximale Länge des Wertes (2048 Zeichen) für den Wert groß genug sein, den Amazon Cognito vom IDP abruft. Andernfalls meldet Amazon Cognito einen Fehler, wenn sich Benutzer bei Ihrer Anwendung anmelden. Amazon Cognito unterstützt die Zuordnung von IDP-Token zu benutzerdefinierten Attributen nicht, wenn die Token mehr als 2048 Zeichen lang sind.

  • Amazon Cognito leitet das username Attribut im Profil eines Verbundbenutzers von bestimmten Ansprüchen ab, die Ihr föderierter IdP erfüllt, wie in der folgenden Tabelle dargestellt. Amazon Cognito stellt diesem Attributwert beispielsweise den Namen Ihres IdP voran. MyOIDCIdP_[sub] Wenn Sie möchten, dass Ihre Verbundbenutzer ein Attribut haben, das genau mit einem Attribut in Ihrem externen Benutzerverzeichnis übereinstimmt, ordnen Sie dieses Attribut einem Amazon Cognito Cognito-Anmeldeattribut wie zu. preferred_username

    Identitätsanbieter Quellattribut username
    Facebook id
    Google sub
    Login with Amazon user_id
    Mit Apple anmelden sub
    SAMLAnbieter NameID
    OpenID Connect (OIDC) -Anbieter sub
  • Amazon Cognito muss Ihre zugeordneten Benutzerpool-Attribute aktualisieren können, wenn sich Benutzer bei Ihrer Anwendung anmelden. Wenn sich ein Benutzer über einen IdP anmeldet, aktualisiert Amazon Cognito die zugeordneten Attribute mit den neuesten Informationen vom IdP. Amazon Cognito aktualisiert die einzelnen zugeordneten Attribute. Dies gilt auch dann, wenn der aktuelle Wert bereits den neuesten Informationen entspricht. Um sicherzustellen, dass Amazon Cognito die Attribute aktualisieren kann, überprüfen Sie die folgenden Voraussetzungen:

    • Alle benutzerdefinierten Attribute des Benutzerpools, die Sie von Ihrem IDP aus zuordnen, müssen veränderbar sein. Sie können veränderbare benutzerdefinierte Attribute jederzeit aktualisieren. Im Gegensatz dazu können Sie nur einen Wert für das unveränderliche benutzerdefinierte Attribut festlegen, wenn Sie das Benutzerprofil erstellen. Wenn Sie ein veränderbares benutzerdefiniertes Attribut in der Amazon-Cognito-Konsole erstellen möchten, aktivieren Sie das Kontrollkästchen Mutable (Veränderbar) für das Attribut, das Sie beim Auswählen von Add custom attributes (Benutzerdefinierte Attribute hinzufügen) auf der Registerkarte Sign-up experience (Anmeldeerlebnis) hinzufügen. Oder, wenn Sie Ihren Benutzerpool mithilfe der CreateUserPoolAPIOperation erstellen, können Sie den Mutable Parameter für jedes dieser Attribute auf true setzen. Wenn Ihr IdP einen Wert für ein zugeordnetes unveränderliches Attribut sendet, gibt Amazon Cognito einen Fehler zurück und die Anmeldung schlägt fehl.

    • In den App-Client-Einstellungen für Ihre Anwendung müssen zugeordnete Attribute beschreibbar sein. Sie können festlegen, welche Attribute auf der Seite App-Clients in der Amazon-Cognito-Konsole beschreibbar sind. Oder, wenn Sie den App-Client mithilfe der CreateUserPoolClientAPIOperation erstellen, können Sie diese Attribute dem Array hinzufügen. WriteAttributes Wenn Ihr IdP einen Wert für ein zugeordnetes nicht beschreibbares Attribut sendet, legt Amazon Cognito den Attributwert nicht fest und fährt mit der Authentifizierung fort.

  • Wenn IdP-Attribute mehrere Werte enthalten, reduziert Amazon Cognito alle Werte zu einer einzigen kommagetrennten Zeichenfolge und URL codiert die Werte, die nicht-alphanumerische Zeichen enthalten (mit Ausnahme der Zeichen '', '', '' und '.'), formularcodiert. - * _ Sie müssen die einzelnen Werte vor der Verwendung in Ihrer App decodieren und analysieren.

Geben Sie die Identitätsanbieter-Attributzuordnungen für Ihren Benutzerpool an (AWS Management Console)

Sie können die verwenden AWS Management Console , um Attributzuordnungen für den IdP in Ihrem Benutzerpool anzugeben.

Anmerkung

Amazon Cognito ordnet eingehende Ansprüche nur dann Benutzerpoolattributen zu, wenn die Ansprüche im eingehenden Token vorhanden sind. Wenn ein zuvor zugeordneter Anspruch nicht mehr im eingehenden Token vorhanden ist, wird er nicht gelöscht oder geändert. Wenn Ihre Anwendung einen Abgleich von gelöschten Anforderungen erfordert, können Sie vor der Authentifizierung den Lambda-Auslöser verwenden, um das benutzerdefinierte Attribut während der Authentifizierung zu löschen und diesen Attributen das erneute Auffüllen aus dem eingehenden Token zu ermöglichen.

Geben Sie eine Attributzuordnung für einen Social-IDP wie folgt an
  1. Melden Sie sich bei der Amazon Cognito-Konsole an. Wenn Sie dazu aufgefordert werden, geben Sie Ihre Anmeldeinformationen ein. AWS

  2. Wählen Sie im Navigationsbereich erst User Pools (Benutzerpools) aus und anschließend den Benutzerpool, den Sie bearbeiten möchten.

  3. Wählen Sie die Registerkarte Sign-in experience (Anmeldeerlebnis) aus und suchen Sie nach Federated sign-in (Verbundanmeldung).

  4. Wählen Sie Add an identity provider (Identitätsanbieter hinzufügen) oder den Facebook-, Google-, Amazon- oder Apple-IdP aus, den Sie konfiguriert haben. Suchen Sie nach Attribute mapping (Attributzuordnung) und wählen Sie Edit (Bearbeiten) aus.

    Weitere Informationen zum Hinzufügen eines Social-IdP finden Sie unter Verwenden von Anbietern für soziale Identitäten mit einem Benutzerpool.

  5. Für jedes Attribut, das Sie zuordnen müssen, führen Sie die folgenden Schritte aus:

    1. Wählen Sie ein Attribut aus der Spalte User pool attribute (Benutzerpoolattribut) aus. Dies ist das Attribut, das dem Benutzerprofil in Ihrem Benutzerpool zugewiesen ist. Benutzerdefinierte Attribute werden nach Standardattributen aufgeführt.

    2. Wählen Sie ein Attribut aus der <provider> Attributspalte. Dies ist das Attribut, das aus dem Anbieterverzeichnis übergeben wird. Bekannte Attribute des Social-Identity-Anbieters werden in einer Dropdown-Liste bereitgestellt.

    3. Um zusätzliche Attribute zwischen Ihrem IdP und Amazon Cognito zuzuordnen, wählen Sie Add another attribute (Weiteres Attribut hinzufügen) aus.

  6. Wählen Sie Änderungen speichern.

Um eine Zuordnung von SAML Anbieterattributen anzugeben
  1. Melden Sie sich bei der Amazon Cognito-Konsole an. Wenn Sie dazu aufgefordert werden, geben Sie Ihre AWS Anmeldeinformationen ein.

  2. Wählen Sie im Navigationsbereich erst User Pools (Benutzerpools) aus und anschließend den Benutzerpool, den Sie bearbeiten möchten.

  3. Wählen Sie die Registerkarte Sign-in experience (Anmeldeerlebnis) aus und suchen Sie nach Federated sign-in (Verbundanmeldung).

  4. Wählen Sie Identitätsanbieter hinzufügen oder wählen Sie den von Ihnen konfigurierten SAML IdP aus. Suchen Sie nach Attribute mapping (Attributzuordnung) und wählen Sie Edit (Bearbeiten) aus. Weitere Informationen zum Hinzufügen eines SAML IdP finden Sie unterVerwenden von SAML Identitätsanbietern mit einem Benutzerpool.

  5. Für jedes Attribut, das Sie zuordnen müssen, führen Sie die folgenden Schritte aus:

    1. Wählen Sie ein Attribut aus der Spalte User pool attribute (Benutzerpoolattribut) aus. Dies ist das Attribut, das dem Benutzerprofil in Ihrem Benutzerpool zugewiesen ist. Benutzerdefinierte Attribute werden nach Standardattributen aufgeführt.

    2. Wählen Sie ein Attribut aus der SAMLAttributspalte aus. Dies ist das Attribut, das aus dem Anbieterverzeichnis übergeben wird.

      Ihr IdP bietet möglicherweise SAML Beispiel-Assertions als Referenz an. Einige IdPs verwenden einfache Namen, wie z. B.email, während andere Attributnamen im URL -Format verwenden, die den folgenden ähneln:

      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    3. Um zusätzliche Attribute zwischen Ihrem IdP und Amazon Cognito zuzuordnen, wählen Sie Add another attribute (Weiteres Attribut hinzufügen) aus.

  6. Wählen Sie Änderungen speichern.

Angeben von Zuordnungen von Identitätsanbieter-Attributen für Ihren Benutzerpool (und)AWS CLIAWS API

Im folgenden Anfragetext werden die UpdateIdentityProvider„MyIdP“ -Attribute des SAML Anbietersemailaddress,birthdate, und phone den Benutzerpool-Attributenemail, und birthdatephone_number, in dieser Reihenfolge zugeordnet CreateIdentityProvideroder zugeordnet. Dies ist ein vollständiger Anfragetext für einen SAML 2.0-Anbieter. Ihr Anfragetext variiert je nach IdP-Typ und spezifischen Details. Die Attributzuordnung ist im Parameter enthalten. AttributeMapping

{ "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" }

Verwenden Sie die folgenden Befehle für die Angabe von Attributzuordnungen für den IdP Ihres Benutzerpools

So geben Sie Attributzuordnungen auf Anbieter-Erstellungszeit an
  • AWS CLI: aws cognito-idp create-identity-provider

    Beispiel mit Metadaten-Dokument: : 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

    Wo details.json enthält:

    { "MetadataFile": "<SAML metadata XML>" }
    Anmerkung

    Wenn das Symbol <SAML metadata XML> enthält alle Anführungszeichen ("), sie müssen maskiert werden (\").

    Beispiel mit MetadatenURL:

    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

Geben Sie Attributzuordnungen für einen vorhandenen Identitätsanbieter wie folgt an
  • AWS CLI: aws cognito-idp update-identity-provider

    Beispiel: 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

Rufen Sie Informationen über das Attribut-Mapping für einen bestimmten IdP wie folgt auf
  • AWS CLI: aws cognito-idp describe-identity-provider

    Beispiel: aws cognito-idp describe-identity-provider --user-pool-id <user_pool_id> --provider-name <provider_name>

  • API/SDK: DescribeIdentityProvider