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.
Probleme mit benutzerdefinierten Identitätsanbietern beheben
In diesem Abschnitt werden mögliche Lösungen für Probleme im Zusammenhang mit benutzerdefinierten Identitätsanbietern mit Transfer Family beschrieben.
Themen
Beheben Sie Fehler bei der API Gateway Gateway-Integration
Beschreibung
Benutzer können sich nicht bei Ihrem Transfer Family Family-Server authentifizieren, und beim Testen Ihres Identitätsanbieters werden Fehler wie die folgenden angezeigt:
{ "Response": "", "StatusCode": 500, "Message": "Internal server error" }
Ursache
Fehler bei der API Gateway Gateway-Integration können aus folgenden Gründen auftreten:
-
Falsche API-Gateway-Konfiguration
-
Lambda-Funktionsfehler werden nicht richtig behandelt
-
Berechtigungsprobleme zwischen API Gateway und Lambda
-
Fehlerhafte Antworten der Lambda-Funktion
Lösung
Um Fehler bei der API Gateway Gateway-Integration zu beheben:
-
Detaillierte Fehlerinformationen finden Sie in Ihren Lambda-Funktionsprotokollen:
-
Navigieren Sie in der CloudWatch Konsole zu Protokollgruppen >/aws/lambda/your-function-name
-
Suchen Sie nach Fehlermeldungen oder Stack-Traces, die auf die Ursache hinweisen
-
-
Stellen Sie sicher, dass Ihre Lambda-Funktion korrekt formatierte Antworten zurückgibt:
{ "Role": "arn:aws:iam::123456789012:role/TransferUserRole", "HomeDirectory": "/mybucket/home/username" } -
Aktivieren Sie die detaillierte CloudWatch Protokollierung für API Gateway:
-
Wählen Sie in der API Gateway Gateway-Konsole Ihre API aus und wählen Sie Stages
-
Wählen Sie Ihre Phase aus und aktivieren Sie unter Logs/Tracing die Option Logs CloudWatch
-
Stellen Sie die Protokollebene auf ERROR oder INFO ein
-
-
Testen Sie Ihren API-Gateway-Endpunkt direkt:
curl -X POST https://your-api-id.execute-api.region.amazonaws.com/prod/servers/your-server-id/users/username/config \ -H "Content-Type: application/json" \ -d '{"Password": "password"}' -
Überprüfen Sie die Berechtigungen zwischen API Gateway und Lambda:
-
Stellen Sie sicher, dass API Gateway berechtigt ist, Ihre Lambda-Funktion aufzurufen
-
Überprüfen Sie, ob die Ausführungsrolle für Ihre Lambda-Funktion über die erforderlichen Berechtigungen verfügt
-
Behebung von Timeouts bei Lambda-Funktionen
Beschreibung
Wenn Benutzer versuchen, sich mit einem benutzerdefinierten Identitätsanbieter bei Ihrem Transfer Family Family-Server zu authentifizieren, kommt es zu langen Verzögerungen, gefolgt von Authentifizierungsfehlern. In Ihren Lambda-Protokollen werden Timeout-Fehler angezeigt.
Ursache
Lambda-Funktionen, die für benutzerdefinierte Identitätsanbieter verwendet werden, haben ein Standard-Timeout von 3 Sekunden. Wenn Ihre Authentifizierungslogik länger als dieses Timeout dauert (z. B. beim Abfragen externer Datenbanken oder bei API-Aufrufen an Identitätsanbieter von Drittanbietern), wird die Funktion unterbrochen und die Authentifizierung schlägt fehl.
Lösung
So lösen Sie Probleme mit dem Lambda-Timeout:
-
Erhöhen Sie das Timeout der Lambda-Funktion:
-
Navigieren Sie in der Lambda-Konsole zu Ihrer Funktion und wählen Sie die Registerkarte Konfiguration
-
Klicken Sie unter Allgemeine Konfiguration auf Bearbeiten
-
Erhöhen Sie den Timeout-Wert (bis zu 15 Sekunden werden für Authentifizierungsfunktionen empfohlen)
-
-
Optimieren Sie Ihren Lambda-Funktionscode:
-
Verwenden Sie Verbindungspooling für Datenbankabfragen
-
Implementieren Sie das Zwischenspeichern von Daten, auf die häufig zugegriffen wird
-
Minimiere externe API-Aufrufe während der Authentifizierung
-
-
Erwägen Sie die Verwendung von Lambda Provisioned Concurrency, um Kaltstarts zu vermeiden:
aws lambda put-provisioned-concurrency-config \ --function-name my-authentication-function \ --qualifier prod \ --provisioned-concurrent-executions 5 -
Überwachen Sie die Lambda-Leistung mithilfe von CloudWatch Metriken und richten Sie Alarme für Dauerschwellenwerte ein
Behebung konsistenter Lambda-Timeout-Probleme
Beschreibung
Benutzer erleben konsistente Timeouts, wenn sie eine Lambda-Funktion zur Authentifizierung verwenden.
Ursache
Lambda kann den entsprechenden AWS Dienst, der für die Authentifizierung verwendet wird, nicht erreichen (z. B. DynamoDB, Secrets Manager oder ein anderer Identitätsanbieter).
Lösung
Stellen Sie sicher, dass Subnetze Dienste erreichen können. AWS Oder, wenn Sie eine Verbindung zu einem Internet Identity Provider (wie Okta) herstellen, stellen Sie sicher, dass das Subnetz der Lambda-Funktion das Internet über ein NAT-Gateway erreichen kann
Beheben Sie Ausnahmen KeyError
Beschreibung
In Ihren Transfer Family Family-Protokolleinträgen finden Sie 'KeyError' Ausnahmen.
Ursache
Die wahrscheinlichste Ursache ist, dass der Benutzer oder der identity_provider Datensatz falsch formatiert ist oder dass Pflichtfelder fehlen.
Lösung
Suchen Sie im ERRORS Protokoll, das sich in der /aws/transfer/ Protokollgruppe befindet, nach Hinweisen.your-server-id