web-dev-qa-db-fra.com

Erreur de domaine modifié - La demande d'authentification OpenId contient un domaine non enregistré

J'ai configuré un projet sur mon domaine principal example.com, puis je l'ai déplacé vers un sous-domaine sub.example.com

Maintenant, lorsque j'essaie d'utiliser le même projet (par défaut ASP.NET MVC ou sur mon forum Discourse) avec OpenId et que je clique sur le bouton Google pour me connecter à mon compte Google, l'erreur suivante est générée - 

  1. C'est une erreur.

    OpenID auth request contains an unregistered domain: http://sub.example.com

J'ai essayé ce message sur Google, mais apparemment, je suis l'une des quatre premières personnes à l'avoir vu. Des idées ici?

27
PW Kad

Selon cette page , Google a fermé l'enregistrement en mai 2014 aux nouveaux clients OpenID 2.0 et arrêtera le service OpenID 2.0 en avril 2015.

La raison pour laquelle certains hôtes fonctionnent et que d'autres ne le font pas, c'est que bien que Google n'ajoute pas d'hôtes nouveaux, vous pouvez toujours utiliser ceux qui sont déjà enregistrés.

UPDATE: Certaines personnes ont demandé une explication simple sur la façon de résoudre ce problème ou sur la manière de procéder.

Fondamentalement, vous avez maintenant 2 options. 

Utiliser OAuth 2.0 (au lieu des protocoles openID et des anciennes versions de OAuth)

ou

Utiliser le login Google+ (que Google a essayé de vous "pousser" vers)

Pour plus de détails, consultez le guide de migration: 

https://developers.google.com/+/api/auth-migration#userinfo

29
Altryne

Je voudrais ajouter un peu de contexte à ce fil avec une solution potentielle pour les développeurs actuellement bloqués.

En février, nous avons annoncé la dépréciation de OpenID 2.0 (OID2) prévue pour avril 2015. Nous avons également annoncé que de nouveaux enregistrements de parties utilisatrices OID2 ne sera plus accepté après avril 2014. 

Étant donné que l’API sera fermée dans moins d’un an, notre intention est d’éviter l’intégration de new RPs avec l’API OID2 de Google. Au lieu de cela, nous suggérons d’utiliser notre OpenID Connect API que nous considérons comme plus sûr et plus facile à mettre en œuvre. 

Les inscriptions ont effectivement été clôturées le 19 mai (comme indiqué dans la documentation pour les développeurs OID2 de Google ). Tous les PR utilisant déjà OID2 ne devraient pas être affectés par cette fermeture. 

En ce qui concerne les développeurs travaillant actuellement sur une intégration avec notre API OID2 (probablement parce qu'ils ont manqué l'annonce et les avertissements dans notre documentation OID2), nous ferons de notre mieux pour minimiser les frictions causées par la clôture de l'enregistrement. Si vous êtes dans une telle situation, veuillez nous en informer en affichant un demande d'inscription avant le 15 juin. Le message doit contenir un exemple de demande OID2 utilisé par votre application. Si vous préférez ne pas divulguer ces informations, veuillez envoyer une adresse électronique et nous vous contacterons. Nous prévoyons d'examiner chaque cas et d'essayer de vous débloquer de la meilleure façon possible.


OID2 ne dispose pas de procédure d'enregistrement pour les RP s'intégrant à un fournisseur d'identité. Les RP sont associés à la valeur de domaine (www.example.com, par exemple) utilisée lors du contact avec l'API Google OID2. Ainsi, un RP est considéré comme "enregistré" si sa valeur de domaine a été utilisée pour contacter notre API OID2.

5
Miguel Andres

Vous pouvez facilement changer pour OAuth 2, cet article vous montre comment enregistrer votre application avec Google et ajouter la clé à MVC. Faites défiler jusqu'à: "Création d'une application Google pour OAuth 2 et connexion de l'application au projet."

Et vous devrez peut-être ajouter le package Microsoft.Owin.Security.Google via NuGet. 

2
Garrett Fogerlie

J'ai eu le même problème, mais lors de l'utilisation de nodejs/expressjs

J'ai migré mon code en utilisant le code ci-dessous et résolu ce problème

Stratégies de passeport pour l'authentification avec Google à l'aide de OAuth 1.0a et OAuth 2.0.https://github.com/jaredhanson/passport-google-oauth

2
Dev

Les sous-domaines qui échouent sont ceux qui n'avaient jamais vu aucune demande d'utilisateur auparavant. Conformément à https://developers.google.com/+/api/auth-migration#timetable , Google n'autorise pas les nouveaux domaines dans l'API OpenID2. 

1
breno

Prenez une profonde respiration et changez simplement le fichier Startup.Auth.cs

            app.UseGoogleAuthentication();

à

    app.UseGoogleAuthentication(
     clientId: "000-000.apps.googleusercontent.com",
     clientSecret: "00000000000");

reportez-vous à la http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid- connexion } _ page.

0
Youngjae

J'ai ce problème exact, nous utilisons le login de Google pour gérer une plate-forme, c'est un tout nouveau problème.

Quelques choses que j'ai découvertes si cela aide

  1. Les domaines complets essayant d'utiliser openID n'échouent jamais www.example.org et www.example2.com ne rencontrent pas ce problème
  2. Les sous-domaines de la plate-forme ont parfois ce problème, mais les mêmes sous-domaines échouent toujours et les autres fonctionnent toujours.

Cela a commencé vers lundi et se produit encore maintenant.

0
mordy