Probleme mit benutzerdefinierten Identitätsanbietern beheben - AWS Transfer Family

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.

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:

  1. 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

  2. Stellen Sie sicher, dass Ihre Lambda-Funktion korrekt formatierte Antworten zurückgibt:

    { "Role": "arn:aws:iam::123456789012:role/TransferUserRole", "HomeDirectory": "/mybucket/home/username" }
  3. 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

  4. 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"}'
  5. Ü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:

  1. 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)

  2. 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

  3. 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
  4. Ü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/your-server-id Protokollgruppe befindet, nach Hinweisen.