Google アプリと統合する django アプリを開発しています。ユーザーが自分の Google アプリ アカウント ( Google アカウントではなく、Google がホストするドメインのアカウント) でログインできるようにして、ドキュメント、カレンダーなどにアクセスできるようにしたいと思います。
それを行うために、django_openid_auth (したがって、python-openid) をダウンロードして使用を開始しました。
まず、テストするために、設定で次の URL を使用しました。
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/id'
それで、ユーザーをGoogleアカウントページにリダイレクトしてログインし、自分のドメインに戻ることができました.Googleの人々が説明した認証サイクルが正常に完了しました. ただし、ホストされているドメインにGoogleアプリアカウントを持っているが、Googleアカウントは持っていないユーザーにログインしてもらいたいので、Googleアカウントにログインすることはほとんど役に立ちません。そのために、ディスカバリに関する Google の記事「ホストされたドメインの OpenID エンドポイントのディスカバリ」を読み、前述の設定を次のように変更しました。
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/site-xrds?hd=<my-domain>.com'
-明らかに、<my-domain>
私の実際のドメインは ;)
しかし、バックエンドは次のメッセージで応答しました:
OpenID 認証に失敗しました: ID URL ホストからの HTTP 応答ステータスが 200 ではありません。ステータス 404 を取得しました
少しデバッグしたところ、python-openid (バージョン 2.2.4) のコードが google からの応答を誤って解釈しているものであることがわかりましたが、ここでかなり途方に暮れています。
socialwok.com と puffypoodles.com で自分のドメインの認証が機能するのを見たので、Google Apps ドメインの認証サイクルが機能することは確かですが、どういうわけか python-openid はそれを完了できないようです (ただし、繰り返しますが、普通の古い Google アカウントで問題なく動作します)。
python-openid を修正しようとする必要がありますか、またはこれを修正する別の方法はありますか? 純粋なdjangoアプリ( Googleアプリエンジンではなく)でGoogleアプリでログインできた人はいますか?