

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
<a name="custom-idp-troubleshooting"></a>

In diesem Abschnitt werden mögliche Lösungen für Probleme im Zusammenhang mit benutzerdefinierten Identitätsanbietern mit Transfer Family beschrieben.

**Topics**
+ [Beheben Sie Fehler bei der API Gateway Gateway-Integration](#api-gateway-errors)
+ [Behebung von Timeouts bei Lambda-Funktionen](#lambda-timeout-issues)
+ [Behebung konsistenter Lambda-Timeout-Probleme](#lambda-timeout-auth)
+ [Beheben Sie Ausnahmen `KeyError`](#keyerror-logs)

## Beheben Sie Fehler bei der API Gateway Gateway-Integration
<a name="api-gateway-errors"></a>

**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

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

   ```
   {
       "Role": "arn:aws:iam::123456789012:role/TransferUserRole",
       "HomeDirectory": "/mybucket/home/username"
   }
   ```

1. 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/TracingCloudWatch ****Logs**
   + Stellen Sie die Protokollebene auf **FEHLER** oder **INFO** ein

1. 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"}'
   ```

1. Ü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
<a name="lambda-timeout-issues"></a>

**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 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)

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

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

1. Überwachen Sie die Lambda-Leistung mithilfe von CloudWatch Metriken und richten Sie Alarme für Dauerschwellenwerte ein

## Behebung konsistenter Lambda-Timeout-Probleme
<a name="lambda-timeout-auth"></a>

**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`
<a name="keyerror-logs"></a>

**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 `ERRORS` Sie im Protokoll in der `/aws/transfer/{{your-server-id}}` Protokollgruppe nach Hinweisen.