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-Fehlerbehebung mit Connect Customer
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 Connect Customer stoßen.
Wenn Sie Probleme bei der Integration mit anderen Identitätsanbietern wie Okta, PingIdentify Azure AD und anderen beheben, finden Sie weitere Informationen unter Connect Customer SSO Setup Workshop
Fehlermeldung: Zugriff verweigert. Ihr Konto wurde authentifiziert, wurde jedoch nicht in diese Anwendung eingebaut.
Was bedeutet das?
Dieser Fehler bedeutet, dass sich der Benutzer erfolgreich über SAML beim AWS -SAML-Anmelde-Endpunkt authentifiziert hat. Der Benutzer konnte sich jedoch nicht in Connect Customer matched/found befinden. Dies weist normalerweise auf einen der folgenden Punkte hin:
-
Der Benutzername in Connect Customer entspricht nicht dem
RoleSessionNameSAML-Attribut, das in der vom Identitätsanbieter zurückgegebenen SAML-Antwort angegeben wurde. -
Der Benutzer ist in Connect Customer nicht vorhanden.
-
Dem Benutzer wurden zwei separate Profile mit SSO zugewiesen.
Auflösung
Gehen Sie wie folgt vor, um das RoleSessionName SAML-Attribut zu überprüfen, das in der vom Identitätsanbieter zurückgegebenen SAML-Antwort angegeben ist, und rufen Sie es dann ab und vergleichen Sie es mit dem Anmeldenamen in Connect Customer.
-
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 in meinem Browser eine HAR-Datei für einen AWS Support-Fall?
-
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.
-
-
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.txtDieses 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.
-
Überprüfen Sie die dekodierte Antwort auf das benötigte Attribut. Die folgende Abbildung zeigt beispielsweise, wie Sie
RoleSessionNameüberprüfen:
-
Prüfen Sie, ob der aus dem vorherigen Schritt zurückgegebene Benutzername als Benutzer in Ihrer Connect Customer-Instanz existiert:
$ aws connect list-users --instance-id [INSTANCE_ID] | grep $username
-
Wenn der letzte Schritt kein Ergebnis zurückgibt, bedeutet dies, dass der Benutzer in Ihrer Connect Customer-Instanz nicht existiert oder dass er mit einer anderen case/capitalization erstellt wurde.
-
Wenn Ihre Connect Customer-Instanz 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).
Fehlermeldung: Zugriff verweigert, bitte wenden Sie sich an Ihren AWS Kontoadministrator für Unterstützung.
Was bedeutet das?
Die Rolle, die der Benutzer angenommen hat, wurde erfolgreich über SAML authentifiziert. Die Rolle ist jedoch nicht berechtigt, die GetFederationToken API für Connect Customer aufzurufen. Dieser Aufruf ist erforderlich, damit sich der Benutzer mit SAML bei Ihrer Connect Customer-Instanz anmelden kann.
Auflösung
-
Hängen Sie eine Richtlinie mit den Berechtigungen für
connect:GetFederationTokenan die in der Fehlermeldung gefundene Rolle an. Im Folgenden finden Sie eine Beispielrichtlinie: -
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 Connect-Kundenseite. Wenn Sie diese Nachricht weiterhin erhalten, wenden Sie sich an Ihr IT-Team.