Wie behebe ich einen Fehler „ungültige SAML-Antwort“ für den Okta- und AWS IAM-Verbund?

Letzte Aktualisierung: 23.05.2022

Wenn ich mich mit Okta bei AWS anmelde, erhalte ich eine Fehlermeldung folgender Art wegen ungültiger SAML:

„Ihre Anfrage enthielt eine ungültige SAML-Antwort. Um sich abzumelden, klicken Sie hier“.

Wie behebe ich diesen Fehler?

Kurzbeschreibung

Wenn Sie AWS Account Verbund in Okta verwenden, erhalten Sie möglicherweise eine Fehlermeldung wegen ungültiger SAML, wenn Sie sich bei AWS anmelden. Das kann vorkommen, wenn Sie in einer SAML-Antwort fehlende oder falsche Informationen für das Rollenattribut angeben. Der erwartete Wert dieses Attributs ist ein oder mehrere durch Kommas getrennte Paare aus einer Rolle des AWS Identity and Access Management (IAM) und dem SAML-Anbieter, wie hier gezeigt:

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role">
  <AttributeValue>arn:aws:iam::ACCOUNT_NUMBER:role/ROLE_NAME_1,arn:aws:iam::ACCOUNT_NUMBER:saml-provider/PROVIDER_NAME/AttributeValue>
  <AttributeValue>arn:aws:iam::ACCOUNT_NUMBER:role/ROLE_NAME_2,arn:aws:iam::ACCOUNT_NUMBER:saml-provider/PROVIDER_NAME</AttributeValue>
  <AttributeValue>arn:aws:iam::ACCOUNT_NUMBER:role/ROLE_NAME_3,arn:aws:iam::ACCOUNT_NUMBER:saml-provider/PROVIDER_NAME</AttributeValue>
</Attribute>

Befolgen Sie zum Überprüfen Ihrer SAML-Antwort in Ihrem Browser die Schritte unter So zeigen Sie eine SAML-Antwort in Ihrem Browser zwecks Fehlerbehebung an.

Lösung

Wenn Sie die Einstellung Gruppenzuordnung verwenden in Okta verwenden, befolgen Sie die Schritte unter „Verbinden mit Okta mit mehreren AWS-Konten“. Wenn nicht, gehen Sie zu „Okta mit einem einzigen AWS-Konto verbinden“. 

Mit Okta mit mehreren AWS-Konten verbinden

Wenn Sie zu Okta eine Verbindung mit mehreren AWS-Konten herstellen, verwendet Okta eine gruppenbasierte Rollenzuordnung. Das bedeutet, dass Okta die AWS-Konto-ID und den IAM-Rollennamen für SSO anhand des Gruppennamens identifiziert.

Hinweis: Stellen Sie sicher, dass Sie den Gruppenfilter und das Rollenwertmuster korrekt in Okta eingeben, damit die Informationen korrekt erfasst werden:

1.    Melden Sie sich auf der Okta-Admin-Konsole an.

2.    Wählen Sie Anwendungen und dann noch einmal Anwendungen.

3.    Wählen Sie Anmelden und dann Bearbeiten.

4.    Der Gruppenfilter ist einen benutzerdefinierten Regex-Ausdruck, der Informationen wie die AWS-Konto-ID und den IAM-Rollennamen für Ihren Okta-Gruppennamen erfasst. Weitere Informationen finden Sie im Einrichtungsdokument von Okta.

Die Anleitung zur Einrichtung gibt dieses Beispiel:

Group name: "aws#[account alias]#[role name]#[account #]" 
Group Filter: "^aws\#\S+\#(?{{role}}[\w\-]+)\#(?{{accountid}}\d+)$"

Sie können dieses Beispiel erweitern, wenn Sie den Gruppennamen anpassen möchten. Sehen Sie sich diese Beispiele für Gruppennamen und Gruppenfilter an:

Group Name: [account alias]|[role name]|[account #] 
Group Filter: ^\S+\|(?{{role}}[a-zA-Z0-9+=.@\-_]+)\|(?{{accountid}}\d+)$
Group Name: aws_[account #]_[role name] 
Group Filter: ^aws\_(?{{accountid}}\d+)\_(?{{role}}[a-zA-Z0-9+=.@\-_]+)$

Hinweis:

  • Der IAM-Rollenname erlaubt alphanumerische Zeichen und die Zeichen +=,.@-_. Erwägen Sie die Verwendung von Trennzeichen, die nicht Teil Ihres Rollennamens sind (z. B. '#' oder '|'), wenn ein durch den Gruppenfilter verursachter Fehler gemeldet wird.
  • Ihr IAM-Rollenname sollte nicht ',' enthalten, wenn Sie sich mit IAM-Verbund anmelden möchten. Dies liegt daran, dass das unten gezeigte Rollenwertmuster ein Komma verwendet, um den SAML-Anbieter und den Rollennamen zu trennen. Erstellen Sie eine neue IAM-Rolle ohne Komma im Namen, um sie mit IAM-Verbund zu verwenden.

5.    Das Rollenwertmuster muss den ARN der IAM-Rolle und des SAML-Anbieters, getrennt durch ein Komma, enthalten. Ersetzen Sie den SAML-Anbieternamen in diesem Beispiel durch den Namen des Anbieters der Okta-Instance. Sie finden diese Informationen in der AWS-IAM-Konsole unter Identitätsanbieter.

arn:aws:iam::${accountid}:saml-provider/[SAML Provider Name],arn:aws:iam::${accountid}:role/${role}

Hinweis: Der SAML-Anbietername muss für alle Ihre AWS-Konten identisch sein.

6.    Wählen Sie Speichern.

7.    Testen Sie die Benutzeranmeldung von Okta bei AWS, um sicherzustellen, dass der Fehler behoben ist.

Mit Okta mit einem einzigen AWS-Konto verbinden

Für die Einrichtung eines einzelnen Kontos richtet Okta automatisch das Rollenwertmuster ein. Wenn Sie die Meldung „Ihre Anfrage enthielt eine ungültige SAML-Antwort“ sehen. Um sich abzumelden, klicken Sie hier“ für eine Integration mit einem einzigen Konto, wenden Sie sich zur Untersuchung des Problems an Okta.