Résoudre les problèmes liés au fournisseur d'identité personnalisé - AWS Transfer Family

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résoudre les problèmes liés au fournisseur d'identité personnalisé

Cette section décrit les solutions possibles aux problèmes liés aux fournisseurs d'identité personnalisés avec Transfer Family.

Résoudre les erreurs d'intégration d'API Gateway

Description

Les utilisateurs ne peuvent pas s'authentifier auprès de votre serveur Transfer Family, et lorsque vous testez votre fournisseur d'identité, des erreurs telles que :

{ "Response": "", "StatusCode": 500, "Message": "Internal server error" }

Cause

Des erreurs d'intégration d'API Gateway peuvent survenir pour les raisons suivantes :

  • Configuration incorrecte de l'API Gateway

  • Les erreurs liées à la fonction Lambda ne sont pas correctement gérées

  • Problèmes d'autorisation entre API Gateway et Lambda

  • Réponses mal formées de la fonction Lambda

Solution

Pour résoudre les erreurs d'intégration d'API Gateway :

  1. Consultez les journaux de vos fonctions Lambda pour obtenir des informations détaillées sur les erreurs :

    • Dans la CloudWatch console, accédez à Groupes de journaux >/aws/lambda/your-function-name

    • Recherchez les messages d'erreur ou empilez les traces indiquant la cause première

  2. Vérifiez que votre fonction Lambda renvoie des réponses correctement formatées :

    { "Role": "arn:aws:iam::123456789012:role/TransferUserRole", "HomeDirectory": "/mybucket/home/username" }
  3. Activez la CloudWatch journalisation détaillée pour API Gateway :

    • Dans la console API Gateway, sélectionnez votre API et choisissez Stages

    • Sélectionnez votre étape et sous Logs/Tracing, activez Logs CloudWatch

    • Définissez le niveau du journal sur ERROR ou INFO

  4. Testez directement votre point de terminaison API Gateway :

    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. Vérifiez les autorisations entre API Gateway et Lambda :

    • Assurez-vous qu'API Gateway est autorisé à appeler votre fonction Lambda

    • Vérifiez que le rôle d'exécution de votre fonction Lambda dispose des autorisations nécessaires

Résoudre les problèmes de temporisation des fonctions Lambda

Description

Lorsque les utilisateurs tentent de s'authentifier auprès de votre serveur Transfer Family à l'aide d'un fournisseur d'identité personnalisé, ils rencontrent de longs délais suivis d'échecs d'authentification. Dans vos journaux Lambda, vous voyez des erreurs de temporisation.

Cause

Les fonctions Lambda utilisées pour les fournisseurs d'identité personnalisés ont un délai d'expiration par défaut de 3 secondes. Si votre logique d'authentification prend plus de temps que ce délai (par exemple, lorsque vous interrogez des bases de données externes ou que vous effectuez des appels d'API à des fournisseurs d'identité tiers), la fonction expirera et l'authentification échouera.

Solution

Pour résoudre les problèmes de temporisation Lambda :

  1. Augmentez le délai d'expiration de la fonction Lambda :

    • Dans la console Lambda, accédez à votre fonction et sélectionnez l'onglet Configuration

    • Sous Configuration générale, cliquez sur Modifier

    • Augmenter la valeur du délai d'attente (jusqu'à 15 secondes sont recommandés pour les fonctions d'authentification)

  2. Optimisez le code de votre fonction Lambda :

    • Utiliser le pool de connexions pour les requêtes de base de données

    • Implémenter la mise en cache pour les données fréquemment consultées

    • Minimiser les appels d'API externes lors de l'authentification

  3. Envisagez d'utiliser Lambda Provisioned Concurrency pour éliminer les démarrages à froid :

    aws lambda put-provisioned-concurrency-config \ --function-name my-authentication-function \ --qualifier prod \ --provisioned-concurrent-executions 5
  4. Surveillez les performances Lambda à l'aide de CloudWatch métriques et configurez des alarmes pour les seuils de durée

Résoudre les problèmes de temporisation Lambda constants

Description

Les utilisateurs rencontrent des délais d'attente constants lorsqu'ils utilisent une fonction Lambda pour l'authentification.

Cause

Lambda ne parvient pas à accéder au AWS service correspondant utilisé pour l'authentification (tel que DynamoDB, Secrets Manager ou un autre fournisseur d'identité).

Solution

Vérifiez que les sous-réseaux peuvent accéder AWS aux services. Ou, si vous vous connectez à un fournisseur d'identité Internet (tel qu'Okta), vérifiez que le sous-réseau de la fonction Lambda peut accéder à Internet via une passerelle NAT

Résoudre les problèmes liés aux exceptions KeyError

Description

Dans les entrées de votre journal Transfer Family, vous remarquez des KeyError « » exceptions.

Cause

La cause la plus probable est que l'utilisateur ou l'identity_providerenregistrement est mal formé ou qu'il manque des champs obligatoires.

Solution

Consultez le ERRORS journal, situé dans le groupe de /aws/transfer/your-server-id journaux, pour trouver des indices.