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
Dienste von Identitätsanbietern (IdP), einschließlich Amazon Cognito, können in der Regel mehr Informationen über einen Benutzer aufzeichnen. Vielleicht möchten Sie wissen, für welches Unternehmen sie arbeiten, wie Sie sie kontaktieren können und andere identifizierende Informationen. 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. Eine stellt die E-Mail-Adresse des Benutzers als daremail, eine andere als und die emailaddress dritte als. 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 verschiedenen Attributnamen in einem einzigen OIDC-Tokenschema mit konsistenten, vorhersehbaren, gemeinsamen Attributnamen abzubilden. Auf diese Weise müssen Ihre Entwickler nicht die Logik für die Verarbeitung einer Vielzahl komplexer Single-Sign-On-Ereignisse beibehalten. Bei dieser Formatkonsolidierung handelt es sich um eine Attributzuordnung. Bei der Benutzerpool-Attributzuordnung werden IdP-Attributnamen den entsprechenden Benutzerpool-Attributnamen zugewiesen. Sie können Ihren Benutzerpool beispielsweise so konfigurieren, dass der Wert eines emailaddress Anspruchs in das Standard-Benutzerpoolattribut geschrieben wird. email
Jeder Benutzerpool-IdP hat ein eigenes Attributzuordnungsschema. Um Attributzuordnungen für Ihren IdP anzugeben, konfigurieren Sie einen Identitätsanbieter für den Benutzerpool in der Amazon Cognito-Konsole, einem AWS SDK oder der REST-API für Benutzerpools.
Wissenswertes über Mappings
Bevor Sie mit der Einrichtung der Benutzerattributzuordnung beginnen, überprüfen Sie die folgenden wichtigen Details.
-
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. Google und die meisten OIDC-Anbieter enthalten beispielsweise das
email_verified-Attribut. -
So können in Ihrem Benutzerpool Identitätsanbieter(IDP)-Token benutzerdefinierten Attributen zuordnen. Anbieter sozialer Netzwerke präsentieren ein Zugriffstoken, und OIDC-Anbieter präsentieren ein Zugriffs- und ein 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_tokenoderid_tokendes 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
usernameAttribut im Profil eines Verbundbenutzers von bestimmten Ansprüchen ab, die Ihr verbundener IdP bestanden hat, 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-Anmeldeattribut wie.preferred_usernameIdentitätsanbieter Quellattribut usernameFacebook idGoogle subLogin with Amazon user_idMit Apple anmelden subSAML-Anbieter NameIDOpen ID Connect (OIDC)-Anbieter sub -
Wenn ein Benutzerpool nicht zwischen Groß- und Kleinschreibung unterscheidet, wandelt Amazon Cognito den gesamten automatisch generierten Benutzernamen eines Verbundbenutzers in Kleinbuchstaben um, einschließlich des IdP-Namenpräfixes. Im Folgenden finden Sie ein Beispiel für einen Nutzerpool, bei dem zwischen Groß- und Kleinschreibung unterschieden wird:.
MySAML_TestUser@example.comDas Folgende ist derselbe Benutzername für einen Benutzerpool, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird:.mysaml_testuser@example.comIn Benutzerpools, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird, löst Ihr Lambda diesen Prozess aus. Der Benutzername muss Änderungen am gesamten Benutzernamen berücksichtigen. Diese Änderungen schließen alle Werte mit Groß- und Kleinschreibung aus den Quellattributen des Benutzernamens ein, die Sie Ihrem IdP zugeordnet haben. Um Ihren IdP mit einem Benutzerpool zu verknüpfen, der eine andere Einstellung zur Berücksichtigung der Groß- und Kleinschreibung hat als Ihr aktueller Pool, erstellen Sie einen neuen Benutzerpool.
-
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 zugeordnete Attribute nur, wenn sich ihre Werte ändern. 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. Um ein veränderbares benutzerdefiniertes Attribut in der Amazon Cognito-Konsole zu erstellen, aktivieren Sie das Kontrollkästchen Veränderbar für das Attribut, das Sie hinzufügen, wenn Sie im Menü Benutzerdefinierte Attribute hinzufügen auswählen. Sign-up Oder, wenn Sie Ihren Benutzerpool mithilfe der CreateUserPool API-Operation erstellen, können Sie den
MutableParameter für jedes dieser Attribute auf setzen.trueWenn 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. Wenn Sie den App-Client mithilfe der API-Operation
CreateUserPoolClienterstellen, können Sie diese Attribute zum ArrayWriteAttributeshinzufügen. 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, die in den eckigen Klammern und eingeschlossen ist.
[]Die Amazon Cognito-URL codiert die Werte, die nicht alphanumerische Zeichen außer,, und enthalten, formularcodiert..-*_Sie müssen die einzelnen Werte vor der Verwendung in Ihrer App decodieren und analysieren. -
Das Zielattribut behält jeden Wert bei, den ihm Ihre Attributzuordnungsregeln zuweisen, sofern er nicht durch eine Anmeldung oder eine Verwaltungsmaßnahme geändert wird. Amazon Cognito entfernt keine Attribute von Benutzern, wenn das Quellattribut nicht mehr im Anbieter-Token oder in der SAML-Assertion gesendet wird. Die folgenden Aktionen entfernen den Wert eines Attributs aus einem Benutzerpoolprofil für einen Verbundbenutzer:
-
Der IdP sendet einen leeren Wert für das Quellattribut und eine Zuordnungsregel wendet den leeren Wert auf das Zielattribut an.
-
Sie löschen den Wert des zugewiesenen Attributs mit einer DeleteUserAttributes AdminDeleteUserAttributes OR-Anfrage.
-
Geben Sie die Attributzuordnungen des Identitätsanbieters für Ihren Benutzerpool an (AWS-Managementkonsole)
Sie können die verwenden AWS-Managementkonsole , um Attributzuordnungen für den IdP Ihres Benutzerpools 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 die Zuordnung gelöschter Ansprüche erfordert, können Sie den Pre-Authentication Lambda-Trigger verwenden, um das benutzerdefinierte Attribut während der Authentifizierung zu löschen und zu ermöglichen, dass diese Attribute aus dem eingehenden Token erneut gefüllt werden.
Geben Sie eine Attributzuordnung für einen Social-IDP wie folgt an
-
Melden Sie sich bei der Amazon Cognito-Konsole
an. Wenn Sie dazu aufgefordert werden, geben Sie Ihre Anmeldeinformationen ein. AWS -
Wählen Sie im Navigationsbereich erst User Pools (Benutzerpools) aus und anschließend den Benutzerpool, den Sie bearbeiten möchten.
-
Wählen Sie das Menü Soziale Netzwerke und externe Anbieter.
-
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 sozialer Identitäten mit einem Benutzerpool.
-
Für jedes Attribut, das Sie zuordnen müssen, führen Sie die folgenden Schritte aus:
-
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.
-
Wählen Sie ein Attribut aus der
<provider>Attributspalte aus. Dies ist das Attribut, das aus dem Anbieterverzeichnis übergeben wird. Bekannte Attribute des Social-Identity-Anbieters werden in einer Dropdown-Liste bereitgestellt. -
Um zusätzliche Attribute zwischen Ihrem IdP und Amazon Cognito zuzuordnen, wählen Sie Add another attribute (Weiteres Attribut hinzufügen) aus.
-
-
Wählen Sie Save Changes.
So geben Sie das Attribut-Mapping für einen SAML-Anbieter an
-
Melden Sie sich bei der Amazon Cognito-Konsole
an. Wenn Sie dazu aufgefordert werden, geben Sie Ihre AWS Anmeldeinformationen ein. -
Wählen Sie im Navigationsbereich erst User Pools (Benutzerpools) aus und anschließend den Benutzerpool, den Sie bearbeiten möchten.
-
Wählen Sie das Menü Soziale Netzwerke und externe Anbieter.
-
Wählen Sie Add an identity provider (Identitätsanbieter hinzufügen) oder den SAML-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 SAML-IdP finden Sie unter Verwenden von SAML-Identitätsanbietern mit einem Benutzerpool.
-
Für jedes Attribut, das Sie zuordnen müssen, führen Sie die folgenden Schritte aus:
-
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.
-
Wählen Sie ein Attribut aus der Spalte SAML attribute (SAML-Attribut) aus. Dies ist das Attribut, das aus dem Anbieterverzeichnis übergeben wird.
Ihr IdP bietet möglicherweise SAML-Assertions als Referenz an. Einige IdPs verwenden einfache Namen, z. B.
email, während andere URL-formatted Attributnamen verwenden, die den folgenden ähneln:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress -
Um zusätzliche Attribute zwischen Ihrem IdP und Amazon Cognito zuzuordnen, wählen Sie Add another attribute (Weiteres Attribut hinzufügen) aus.
-
-
Wählen Sie Änderungen speichern aus.
Angeben der Attributzuordnungen von Identitätsanbietern für Ihren Benutzerpool (AWS CLI und AWS API)
Im folgenden CreateIdentityProvider Anforderungstext UpdateIdentityProvider werden die „MyIdP“ -Attribute emailaddress des SAML-Anbieters und phone den Benutzerpool-Attributen email birthdatephone_number, und in dieser Reihenfolge zugeordnet. birthdate 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-providerBeispiel 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/emailaddressWo
details.jsonenthält:{ "MetadataFile": "<SAML metadata XML>" }Anmerkung
Wenn das irgendwelche Anführungszeichen (
")<SAML metadata XML>enthält, müssen sie mit einem Escape-Zeichen versehen werden (\").Beispiel mit Metadaten-URL:
aws cognito-idp create-identity-provider \ --user-pool-idus-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-providerBeispiel:
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-providerBeispiel:
aws cognito-idp describe-identity-provider --user-pool-id<user_pool_id>--provider-name<provider_name> -
API/SDK: DescribeIdentityProvider