Google apps login in django

Ich bin die Entwicklung einer django-app, die mit google apps integriert. Ich möchte, um die Benutzer-login mit Ihrem google apps-Konten (Konten in google gehosteten domains, nicht google-Konten), so können Sie den Zugriff auf Ihre Dokumente, Kalender, und so weiter.

Um es zu tun, die ich heruntergeladen und gestartet mit django_openid_auth (und damit, python-openid).

Erste, um es zu testen, habe ich diese url in meine Einstellungen:

OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/id'

Und mit dass ich es geschafft, leiten Sie den Benutzer auf die google-Konten-Seite einloggen und dann wieder auf meinen eigenen domain, mit der Authentifizierung Zyklus beschrieben durch die google-Leute erfolgreich abgeschlossen. Jedoch, um die Anmeldung zu google-Konten ist von geringem nutzen für mich, da ich möchte das die Benutzer, die ein google apps-Konto in Ihrer domain gehostet -nicht aber eine google-Konto - login mit.
Um das zu tun, ich lese die google-Artikel über die Entdeckung "die Entdeckung OpenID Endpunkte für Hosted Domains", und änderte den oben genannten Einstellung:

OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/site-xrds?hd=<my-domain>.com'

-wo natürlich <my-domain> ist meine eigentliche Domäne 😉

Aber das backend reagiert mit folgender Meldung:

OpenID authentication failed: HTTP
Antwort status von Identitäts-URL-host
ist nicht 200. Wurde der status 404

Debuggen ein wenig konnte ich herausfinden, dass der code in python-openid (version 2.2.4) ist die eine, die ist falsch die Antwort von google, aber ich bin ziemlich auf Verlust hier.

Ich gesehen habe, wird die Authentifizierung in meiner eigenen domain arbeiten socialwok.com und puffypoodles.com Also ich bin mir ziemlich sicher, dass das auth-Zyklus für meine google apps-domain funktioniert, aber irgendwie python-openid kann nicht scheinen, um es zu vervollständigen (obwohl, und ich wiederhole noch einmal, es funktioniert Prima mit plain old google-Konten).

Sollte ich versuchen zu beheben python-openid, oder gibt es eine andere Möglichkeit dieses Problem zu beheben? Hat jemand erfolgreich geschafft, sich mit google apps in eine Reine django-app (nicht in der google app engine)?

  • Tauchen in den Quellcode des python-openid ist wohl der Schnellste Weg. Holen Sie sich die Quelle, stellen Sie es mit "python setup.py entwickeln" und starten Instrumentierung mit print-Anweisungen oder was auch immer Ihre Lieblings-debugging-Strategie ist. Python-code ist in der Regel lesbar und hackable, und Sie brauchen nicht zu warten, für Antworten in den Mailinglisten / bugtrackers / SO...
  • Danke, ich war mir nicht bewusst das develop wechseln. Dennoch, ich habe das Debuggen Sie den code, und ich fand heraus, dass, wenn die yadis Protokoll versucht, sich die domain zu beweisen, dass es ein Anbieter in der Tat, es kommt ein 404 (durch eine einfache urllib2 offenen Methode), So daß ich vermute, es geschieht, weil der domain-admin noch nicht registriert meine domain als sichere openID-provider; aber die Frage bleibt: warum puffypoodles.com Authentifizierung ohne Probleme? Gibt es etwas, was der Unterschied zwischen standard openID-Provider und die von google gehosteten domains?
  • Veröffentlichen Sie Ihren code irgendwo, damit ich versuchen kann zu reproduzieren und Debuggen das Problem, das Sie sehen.
  • Die Google-URL erwähnt, nicht zur Verfügung.
InformationsquelleAutor | 2010-02-22
Schreibe einen Kommentar