Direkt zum Inhalt

Wie behebe ich Fehler bei ungültigen SAML-Antworten, die Benutzer erhalten, wenn sie sich mit Amazon Cognito verbinden?

Lesedauer: 7 Minute
0

Ich möchte Fehler beheben, die Benutzer erhalten, wenn sie sich mit SAML 2.0 mit Amazon Cognito verbinden.

Lösung

SAML-Antworten überprüfen

Überprüfe in deinem Browser die SAML-Antwort, die dein Identitätsanbieter (IdP) an Amazon Cognito gesendet hat.

Hinweis: Das SAMLResponse-Element enthält eine base64-codierte Antwort. Wenn in der Nutzlast Prozentzeichen (%) angezeigt werden, ist die Antwort URL-codiert und base64-codiert. Führe in diesem Fall die URL-Dekodierung für den SAMLResponse-Wert durch und wende dann die base64-Dekodierung an.

Attributzuordnungen überprüfen

„The attribute is required“

Du erhältst die folgende Fehlermeldung:

„Invalid SAML response received: Invalid user attributes: <attribute_name>: The attribute is required“

Gehe wie folgt vor, um dieses Problem zu beheben:

  1. Öffne die Amazon-Cognito-Konsole.
  2. Wähle im Navigationsbereich Benutzerpools und dann wähle deinen Benutzerpool aus.
  3. Notiere dir unter Anmeldeerfahrung die erforderlichen Attribute, die du konfiguriert hast.
  4. Prüfe, ob du Attributzuordnungen für deinen Benutzerpool konfiguriert hast. Wenn du deine Attribute nicht zugeordnet hast, lege Attributzuordnungen fest.
  5. Rufe die SAML-Antwort in deinem Browser ab.
  6. Überprüfe im Feld AttributeStatement, ob der IdP die erforderlichen Attribute enthält.
  7. Vergewissere dich in der Attributzuordnungskonfiguration deines IdP, dass du deinen IdP so eingerichtet hast, dass er die erforderlichen Attribute mit den richtigen Zuordnungen sendet.

Hinweis: Dein IdP verwendet möglicherweise einfache Namen für Attributzuordnungen, z. B. eine E-Mail-Adresse oder ein URL-Format. Ein Beispiel für einen URL-formatierten Attributnamen ist http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.

„Required attribute cannot be deleted“

Du erhältst die folgende Fehlermeldung:

„Invalid SAML response received: Invalid user attributes: <attribute_name>: Required attribute cannot be deleted“

Dieser Fehler tritt auf, wenn der IdP ein erforderliches Attribut auf null setzt, ein erforderliches Attribut löscht oder eine Attributzuordnung nach der Benutzererstellung entfernt.

Um dieses Problem zu beheben, ordne alle erforderlichen Attribute zu und konfiguriere den IdP so, dass er die richtigen Werte für die Attribute sendet.

Weitere Informationen findest du unter Wissenswertes über Zuordnungen.

Nach unveränderlichen Attributen suchen

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Du erhältst die folgende Fehlermeldung:

„Invalid SAML response received: Invalid user attributes: <attribute_name>: Attribute cannot be updated“

Dieser Fehler tritt auf, wenn der IdP ein Attribut übergibt, das einem unveränderlichen Amazon Cognito-Attribut zugeordnet ist. Nachdem du einen Benutzerpool erstellt hast, kannst du die Attributänderbarkeit nicht mehr ändern.

Gehe wie folgt vor, um dieses Problem zu beheben:

  1. Führe den folgenden Befehl describe-user-pool aus:
    aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name'
    Hinweis: Ersetze USER-POOL-ID durch deine Benutzerpool-ID.
  2. Notiere dir in der Ausgabe des Befehls alle unveränderlichen Attribute.
  3. Öffne die Amazon-Cognito-Konsole.
  4. Prüfe in den SAML-Attributzuordnungen für deinen IdP, ob deine SAML-Attribute den unveränderlichen Amazon Cognito-Attributen zugeordnet sind. Wenn ein SAML-Attribut einem unveränderlichen Attribut zugeordnet ist, lösche die Zuordnung.
    Hinweis: Wenn du das SAML-Attribut zuordnen musst, ordne es einem vorhandenen veränderlichen Attribut zu. Du kannst auch ein benutzerdefiniertes veränderbares Attribut erstellen, das du dem SAML-Attribut zuordnen kannst.

Wenn du ein zugeordnetes Attribut benötigst, erstelle einen neuen Benutzerpool mit den richtigen Veränderbarkeitseinstellungen und importiere deine Benutzer in den neuen Benutzerpool.

Werte zwischen deiner SAML-Antwort und der IdP-Metadaten-XML-Datei vergleichen

Du erhältst die folgende Fehlermeldung:

„Invalid SAML response received: SAML Response signature is invalid“

Dieser Fehler tritt auf, wenn dein IdP sein SAML-Signaturzertifikat aktualisiert. Das Update führt zu einer Diskrepanz zwischen den X509Certificate-Werten in deiner SAML-Antwort und der IdP-Metadaten-XML-Datei.

Gehe wie folgt vor, um dieses Problem zu beheben:

  1. Lade die neueste Metadatendatei von der Anwendungskonfigurationsseite deines IdP herunter.
    Hinweis: Wenn dein IdP SAML-Metadaten über eine öffentliche URL anbietet, kannst du die URL des Metadatendokuments notieren und die öffentliche URL eingeben.
  2. Öffne die Amazon-Cognito-Konsole.
  3. Ersetze n den Konfigurationseinstellungen deines SAML-IdP die vorhandene Metadatendatei durch die neue Metadatendatei.

Überprüfe die Entitäts-ID und die URN

Du erhältst eine der folgenden Fehlermeldungen:

„Invalid SAML response received: Audience restriction in SAML Assertion does not allow it for urn:amazon:cognito:sp:xxxxxxxx“

-oder-

„Invalid SAML response received: Application with identifier 'urn:amazon:cognito:sp:xxxxxxxx' was not found“

Diese Fehler treten auf, wenn du eine falsche Entitäts-ID in deinem IdP konfigurierst oder den Uniform Resource Name (URN) eines anderen Benutzerpools verwendest.

Gehe wie folgt vor, um dieses Problem zu beheben:

  1. Öffne die Amazon-Cognito-Konsole.
  2. Wähle im Navigationsbereich Benutzerpools und dann den Benutzerpool aus, den du für die SAML-Integration konfigurieren möchtest.
  3. Wähle im Navigationsbereich Übersicht aus und notieree dir dann deine Benutzerpool-ID.
  4. Konfiguriere in den SAML-Anwendungseinstellungen des IdP die Entitäts-ID im Format urn:amazon:cognito:sp:USER-POOL-ID.
    Hinweis: Ersetze USER-POOL-ID durch deine Amazon Cognito-Benutzerpool-ID.

ACS-URL-Konfiguration (Assertion Consumer) deines IdP überprüfen

Du erhältst die folgende Fehlermeldung:

„An error was encountered with the requested page“

Dieser Fehler wird auf der von Amazon Cognito verwalteten Anmeldeseite angezeigt, wenn du die ACS-URL (Assertion Consumer Service) deines IdP falsch konfigurierst. Amazon Cognito unterstützt nur die POST-Bindung für den Endpunkt. Dein IdP muss SAML-Antworten in der POST-Anfrage an den Endpunkt senden. Wenn du die URL in der Anwendung deines IdP falsch konfigurierst, sendet dein IdP die SAML-Antwort an einen falschen Endpunkt.

Um dieses Problem zu beheben, konfiguriere die Anwendung deines IdP mit dem richtigen ACS-URL-Format.

Ein Beispielformat für eine standardmäßige Amazon Cognito-Benutzerpool-Domain ist https://YOUR-USER-POOL-DOMAIN.auth.REGION.amazoncognito.com/saml2/idpresponse.

Ein Beispielformat für eine benutzerdefinierte Benutzerpoold-Domain ist https://YOUR-USER-POOL-DOMAIN/saml2/idpresponse.

Hinweis: Ersetze YOUR-USER-POOL-DOMAIN durch deine Benutzerpool-Domain.

Art der Anmeldung bestätigen, die dein IdP unterstützt

Du erhältst eine der folgenden Fehlermeldungen:

„An error was encountered with the requested page: Invalid relayState from identity provider“

-oder-

„An error was encountered with the requested page: Invalid samlResponse or relayState from identity provider“

Diese Fehler treten sowohl bei IdP-initiierten als auch bei vom Dienstanbieter (SP) initiierten SAML-Anmeldeabläufen aus den folgenden Gründen auf:

  • Der IdP hat den RelayState-Parameter in der SAML-Antwort an Amazon Cognito auf null gesetzt.
  • Du hast dieselbe IdP-Anwendung mit einem anderen Benutzerpool verwendet. Daher stimmt die ACS-URL in der SAML-Anfrage nicht mit der ACS-URL in der Anwendungskonfiguration deines IdP überein.

Hinweis: Für SP-initiierte SAML-Anmeldeabläufe enthält Amazon Cognito einen RelayState-Parameter in der Authentifizierungsanforderung an deinen IdP. Nach der Authentifizierung muss dein IdP den RelayState-Parameter an Amazon Cognito zurückgeben. Für IdP-initiierte SAML-Anmeldeabläufe muss dein IdP einen RelayState-Parameter mit der SAML-Assertion für den Endpunkt /saml2/idpresponse enthalten.

Um RelayState-Probleme zu lösen, stelle fest, ob dein SAML-IdP nur die SP-initiierte SAML-Anmeldung oder sowohl die IdP-initiierte als auch die SP-initiierte SAML-Anmeldung unterstützt.

Wenn dein IdP SP-initiierte SAML-Anmeldeabläufe unterstützt, starte deinen Authentifizierungsablauf von Amazon Cognito aus, um die Verbundanfrage zu initiieren. Du kannst den verwalteten Anmeldeendpunkt /login verwenden, der Benutzer zum Anmeldeendpunkt weiterleitet. Oder verwende den Umleitungs- und Authentifizierungsendpunkt /oauth2/authorize.

Wenn Ihr IdP IdP-initiierte SAML-Anmeldeabläufe unterstützt, konfiguriere deinen SAML-IdP mit dem RelayState-Parameter im Format identity_provider=ID-PROVIDER-NAME&client_id=CLIENT-ID&redirect_uri=CALLBACK-URL&response_type=code&scope=openid+email+phone.

Hinweis: Ersetze ID-PROVIDER-NAME durch den Namen deines SAML-IdP. Ersetze außerdem CLIENT-ID durch die App-Client-ID für deinen Benutzerpool und CALLBACK-URL durch die Callback-URL für deine App-Client-ID.

Gehe wie folgt vor, um ACS-URL-Probleme zu beheben:

  1. Erstelle eine HTTP-Archivdatei (HAR).
  2. Suche in deinem Browser auf der Registerkarte Netzwerk die Anfrage mit einem saml?SamlRequest-Eintrag.
  3. Notiere dir die SAMLRequest aus den Anforderungsparametern.
  4. Verwende dein bevorzugtes SAML-Dekodierungs-Tool, um die SAMLRequest zu dekodieren.
  5. Vergleiche die ACS-URL in der dekodierten Anfrage mit der in deiner IdP-Konfiguration.

Wenn sich die URLs unterscheiden, aktualisiere deine IdP-Konfiguration so, dass sie der ACS-URL in der SAMLRequest entspricht. Initiiere dann die Verbundanfrage aus dem richtigen Benutzerpool.

AWS OFFICIALAktualisiert vor 5 Jahren