J'apprends l'architecture de microservices et je rassemble des preuves de concepts, mais j'ai déjà atteint un mur.AWS API Gateway pour la communication interprocessus
J'ai créé un service utilisateur hébergé sur Amazon AWS via Lambda avec une passerelle API publique qui vous permet d'interroger la base de données utilisateur. Il est assez simple et ressemble quelque chose comme:
api/[email protected]
Cette API a l'autorisation qui lui est associée parce que certains utilisateurs sont autorisés à connaître d'autres utilisateurs et certains ne sont pas. Donc, pour certains utilisateurs, cela reviendrait à 404 (ou 403 peut-être) et pour d'autres, ils obtiendraient 200 et le résultat.
Maintenant, je viens d'écrire le service d'authentification qui prend une adresse e-mail et un mot de passe et retourne un jeton. Comment dois-je aborder l'obtention des données utilisateur du service utilisateur? J'adorerais juste appeler l'API REST mais elle a l'autorisation car c'est public. De plus, l'API publique ne retournerait pas le champ de mot de passe (hashed) dont j'aurais besoin.
Ma question:
Dois-je avoir une API séparée, privée pour la communication inter-services qui renvoie toutes les informations ou devrais-je avoir une clé d'autorisation magique que je vous envoie à l'api qui identifie le demandeur comme un service interne et ainsi montrer tout.
question supplémentaire:
Si j'utilise l'API publique avec une magie code auth, devrais-je simplement appeler accèderont par la même URL api publique que mon service côté client utiliserait ou devrais-je appeler quelques-uns amazon interne?