SAML-Fehler mit Amazon Connect beheben - 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.

SAML-Fehler mit Amazon Connect beheben

In diesem Artikel wird erklärt, wie Sie einige der häufigsten Probleme beheben und lösen können, auf die Kunden bei der Verwendung von SAML mit Amazon Connect stoßen.

Wenn Sie Probleme bei der Integration mit anderen Identitätsanbietern wie Okta PingIdentify, Azure AD und anderen haben, lesen Sie den 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 mit SAML beim SAML-Anmeldeendpunkt authentifiziert hat.AWS Der Benutzer konnte jedoch in Amazon Connect nicht gefunden/gefunden werden. Dies weist normalerweise auf einen der folgenden Punkte hin:

  • Der Benutzername in Amazon Connect entspricht nicht demRoleSessionName SAML-Attribut, das in der vom Identitätsanbieter zurückgegebenen SAML-Antwort angegeben ist.

  • Der Benutzer existiert nicht in Amazon Connect.

  • Dem Benutzer sind mit SSO zwei separate Profile zugewiesen.

Behebung

Verwenden Sie die folgenden Schritte, um das RoleSessionName SAML-Attribut zu überprüfen, das in der vom Identitätsanbieter zurückgegebenen SAML-Antwort angegeben ist, und rufen Sie dann den Anmeldenamen in Amazon Connect ab und vergleichen Sie ihn mit ihm.

  1. Führen Sie eine HAR-Erfassung (H TTP AR-Archiv) 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 eineAWS Support-Anfrage?

  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. Prüfen Sie, ob der im vorherigen Schritt zurückgegebene Nutzername als Benutzer in Ihrer Amazon Connect-Instance existiert:

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

    • Wenn die letzte Überprüfung kein Ergebnis zurückgibt, bedeutet dies, dass der Benutzer in Ihrer Amazon Connect-Instance nicht existiert oder er mit einer anderen Groß-/Kleinschreibung erstellt wurde.

    • Wenn Ihre Amazon Connect-Instance viele Benutzer hat, kann die Antwort des ListUsers API-Aufrufs 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).


                    ein Beispiel für eine SAML-Antwort.

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


                Fehlermeldung: Zugriff verweigert.

Was bedeutet das?

Die Rolle, die der Benutzer übernommen hat, hat sich erfolgreich mit SAML authentifiziert. Die Rolle ist jedoch nicht berechtigt, 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.

Behebung

  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]