2017-09-14 3 views
0

Fond

J'ai une instance EC2 hébergeant un site Web. Le site utilise l'API OAuth2 de Google pour la validation (alias Google Identity Platform).Google OAuth2 ne fonctionne pas avec le DNS public de l'instance Amazon EC2?

L'instance a un DNS public quelque chose comme http://ec2-99-99-99-99.compute-1.amazonaws.com.

Cette URL est ajoutée à la section "Origine JavaScript autorisée" du portail de gestion des informations d'identification. Pour revenir au côté client, les utilisateurs s'authentifient à l'aide du widget Bouton de connexion Google.

Le problème

Le widget Google échoue lorsqu'il tente de lister les différentes options de connexion. Pour les connexions nouvelles, il ressemble à ceci: Google Widget Failure

examen du panneau de réseau révèle cet appel échoue:

https://accounts.google.com/o/oauth2/iframerpc?action=listSessions&client_id=...&origin=http%3A%2F%2Fec2-99-99-99-99.compute-1.amazonaws.com&scope=openid%20profile%20email&ss_domain=http%3A%2F%2Fec2-99-99-99-99.compute-1.amazonaws.com 

{ 
    "error" : "invalid_request", 
    "error_description" : "Permission denied to generate login hint for target domain." 
} 

Remarques enquête

  • Il est pas un problème de SSL que d'autres urls comme http://localhost:9000 travail bien.
  • Ce n'est pas un problème avec le redirect_uri car d'autres URLs fonctionnent correctement.

Répondre

0

Il semblerait que, pour une raison quelconque, Google n'aime pas les URL d'instance par défaut construites par Amazon.

Notre solution consistait à utiliser un nouveau domaine personnalisé pointant vers notre instance ec2 comme: http://something.anotherdomain.com.