2017-06-06 4 views
2

Que signifie AWS_IAM en tant que modèle d'autorisation dans Amazon API Gateway?Autorisation Amazon API Gateway AWS_IAM

enter image description here

Si je teste la Lambda dans la console AWS il fonctionne et imprime un Bonjour tout le monde, mais si j'utilise l'URL du point final et l'ouvrir dans l'onglet d'un autre navigateur, il dit {"message":"Missing Authentication Token"} comment puis-je obtenir ce jeton d'authentification ?

Répondre

2

ma réponse de répétition nos forums:

l'authentification AWS_IAM signifie que vous devez signer les demandes en utilisant la version de la signature AWS et des informations d'identification AWS. Plus de détails sur Signature Version 4 here.

Vous pouvez vouloir regarder un outil comme Postman pour générer des signatures pour les tests.

+0

Merci. De cette façon, j'ai toujours besoin d'accéder à la clé et au secret et il n'y a aucun moyen d'inclure openid connect à autheticate. Ai-je raison? L'autorisateur personnalisé devrait-il faire le travail? –

+0

Correct. Vous pouvez utiliser un autorisateur personnalisé pour prendre en charge d'autres méthodes d'authentification. –

4

Créer un nouvel utilisateur IAM

Aller à AWS IAM et créer un nouvel utilisateur avec programmatic access pour accéder à votre passerelle API. Attachez ensuite une stratégie avec suffisamment d'autorisations à l'utilisateur/au groupe pour pouvoir accéder à votre point de terminaison API Gateway. Une fois que vous aurez franchi toutes les étapes, vous recevrez une clé/secret pour votre nouvel utilisateur.

Faire une demande d'API avec AWS Signature en utilisant Postman

Maintenant, pour simplifier les choses, installez Postman puis utilisez l'onglet Authorization dans votre page de demande, pour sélectionner AWS Signature:

Postman-AWS-Signature

Fill dans AccessKey/SecretKey pour votre nouvel utilisateur, AWS Region dans lequel vous opérez (par exemple, us-west-1) et cliquez sur le bouton Update Request. À ce stade, Postman remplira les en-têtes nécessaires à votre demande et vous pourrez faire des demandes autorisées à votre API Gateway.

+0

Merci, j'espère que cette solution s'intégrera avec OpenID Connect. J'ai besoin de chercher une autre solution :) –

+0

Pour cela, vous devriez regarder dans une fonction Lambda personnalisée d'autorisateur. Votre fonction peut ensuite s'authentifier auprès d'un tiers, puis les résultats peuvent être mis en cache pendant la durée souhaitée dans votre API Gateway. – jaccus

+0

Donc, je ne peux pas faire cela avec le flux de travail amélioré (simplifié)? http://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html –