Problembehebung bei SAML mit Amazon Connect - Amazon Connect

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.

Problembehebung bei SAML mit Amazon Connect

In diesem Artikel wird erläutert, wie Sie einige der häufigsten Probleme erkennen und beheben können, die sich Kunden bei der Verwendung von SAML mit Amazon Connect stellen.

Wenn Sie Probleme bei der Integration mit anderen Identitätsanbietern wie Okta, PingIdentify, Azure AD und anderen beheben, finden Sie weitere Informationen im Amazon Connect SSO Setup Workshop.

Fehlermeldung: Zugriff verweigert. Ihr Konto wurde authentifiziert, wurde jedoch nicht in diese Anwendung eingebaut.

Die Fehlermeldung: Zugriff verweigert.

Was bedeutet das?

Dieser Fehler bedeutet, dass sich der Benutzer erfolgreich über SAML beim AWS-SAML-Anmelde-Endpunkt authentifiziert hat. Der Benutzer konnte jedoch nicht in Amazon Connect gefunden werden. Dies weist normalerweise auf einen der folgenden Punkte hin:

  • Der Benutzername in Amazon Connect stimmt nicht mit dem RoleSessionName-SAML-Attribut überein, das in der vom Identitätsanbieter zurückgegebenen SAML-Antwort angegeben ist.

  • Der Benutzer existiert nicht in Amazon Connect.

  • Dem Benutzer wurden zwei separate Profile mit SSO zugewiesen.

Auflösung

Gehen Sie wie folgt vor, um das in der vom Identitätsanbieter zurückgegebenen SAML-Antwort angegebene SAML-Attribut RoleSessionName zu überprüfen. Rufen Sie dann den Anmeldenamen ab und vergleichen Sie ihn mit dem Anmeldenamen in Amazon Connect.

  1. Führen Sie eine HAR-Erfassung (HTTP ARchive) für den End-to-End-Anmeldevorgang durch. Dadurch werden die Netzwerkanforderungen von der Browserseite erfasst. Speichern Sie die HAR-Datei mit Ihrem bevorzugten Dateinamen, z. B. saml.har.

    Anweisungen finden Sie unter Wie erstelle ich eine HAR-Datei in meinem Browser für einen AWS-Support-Fall?

  2. Verwenden Sie einen Texteditor, um die SAMLResponse in der HAR-Datei zu finden. Oder führen Sie die folgenden Befehle aus:

    $ grep -o "SAMLResponse=.*&" azuresaml.har | sed -E 's/SAMLResponse=(.*)&/\1/' > samlresponse.txt

    • Dadurch wird die SAMLresponse in der HAR-Datei gesucht und in einer samlresponse.txt-Datei gespeichert.

    • Die Antwort ist URL-kodiert und der Inhalt ist Base64-kodiert.

  3. Dekodieren Sie die URL-Antwort und dekodieren Sie dann den Base64-Inhalt mit einem Drittanbieter-Tool oder einem einfachen Skript. Beispiel:

    $ cat samlresponse.txt | python3 -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()));" | base64 --decode > samlresponsedecoded.txt

    Dieses Skript verwendet einen einfachen Python-Befehl, um die SAMLResponse aus ihrem ursprünglichen URL-kodierten Format zu dekodieren. Dann dekodiert es die Antwort von Base64 und gibt die SAML-Antwort im Nur-Text-Format aus.

  4. Überprüfen Sie die dekodierte Antwort auf das benötigte Attribut. Die folgende Abbildung zeigt beispielsweise, wie Sie RoleSessionName überprüfen:

    Der Befehl „grep“ zur Überprüfung des Rolesessionnamens.
  5. Überprüfen Sie, ob der aus dem vorherigen Schritt zurückgegebene Benutzername als Benutzer in Ihrer Amazon Connect-Instance vorhanden ist:

    $ aws connect list-users --instance-id [INSTANCE_ID] | grep $username

    • Wenn das abschließende grep kein Ergebnis zurückgibt, bedeutet dies, dass der Benutzer in Ihrer Amazon Connect-Instance nicht vorhanden ist oder mit anderer Groß-/Kleinschreibung erstellt wurde.

    • Wenn Ihre Amazon Connect-Instance viele Benutzer hat, kann die Antwort auf den ListUsers-API-Aufruf paginiert sein. Verwenden Sie das von der API zurückgegebene NextToken, um die restlichen Benutzer abzurufen. Weitere Informationen finden Sie unter ListUsers.

Beispiel für SAML-Antwort

Es folgt eine Abbildung aus einer SAML-Beispielantwort. In diesem Fall ist der Identitätsanbieter (IdP) Azure Active Directory (Azure AD).

Beispiel für SAML-Antwort

Fehlermeldung: Zugriff verweigert. Bitte wenden Sie sich an Ihren AWS-Kontoadministrator, um Unterstützung zu erhalten.

Fehlermeldung: Zugriff verweigert.

Was bedeutet das?

Die Rolle, die der Benutzer angenommen hat, wurde erfolgreich über SAML authentifiziert. Die Rolle verfügt jedoch nicht über die Berechtigung, die GetFederationToken-API für Amazon Connect aufzurufen. Dieser Aufruf ist erforderlich, damit sich der Benutzer mit SAML bei Ihrer Amazon Connect-Instance anmelden kann.

Auflösung

  1. Hängen Sie eine Richtlinie mit den Berechtigungen für connect:GetFederationToken an die in der Fehlermeldung gefundene Rolle an. Im Folgenden finden Sie eine Beispielrichtlinie:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "Statement1", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": [ "arn:aws:connect:ap-southeast-2:xxxxxxxxxxxx:instance/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/user/${aws:userid}" ] } ] }
  2. Verwenden Sie die IAM-Konsole, um die Richtlinie anzuhängen. Oder verwenden Sie die attach-role-policy-API, zum Beispiel:

    $ aws iam attach-role-policy —role-name [ASSUMED_ROLE] —policy_arn [POLICY_WITH_GETFEDERATIONTOKEN]

Fehlermeldung: Sitzung abgelaufen

Wenn Sie bei der Anmeldung die Meldung Sitzung abgelaufen sehen, müssen Sie wahrscheinlich nur das Sitzungstoken aktualisieren. Gehen Sie zu Ihrem Identitätsanbieter und melden Sie sich an. Aktualisieren Sie die Amazon-Connect-Seite. Wenn Sie diese Nachricht weiterhin erhalten, wenden Sie sich an Ihr IT-Team.