OpenID を使用してユーザーを認証する Web サイト (Django) を開発しています。現在、ローカル マシンでのみ実行しているため、Web 上の OpenID プロバイダーのいずれかを使用して認証することはできません。そのため、ローカルの OpenID サーバーを実行して、ユーザー名を入力し、それをメイン アプリに戻す必要があると考えています。
そのような OpenID 開発サーバーは存在しますか? これが最善の方法ですか?
OpenID Enabledのライブラリには、ローカル テスト プロバイダーを実行するのに十分なサンプルが付属しています。python-openid ソース配布の examples/djopenid/ ディレクトリを見てください。これを実行すると、このテスト プロバイダーのインスタンスが得られます。
myopenid.comでのテストに問題はありません。ローカルマシンでのテストに問題があると思っていましたが、うまくいきました。(DotNetOpenId ライブラリで ASP.NET を使用しています)。
「レルム」と戻り URL には、「http://localhost:93359」のようなポート番号が含まれている必要があります。
プロバイダーがクライアント側のリダイレクトを行うため、問題なく動作すると思います。
現在、 phpMyIDを使用して StackOverflow で認証しています。標準の HTTP 認証領域を生成し、完全に機能します。それはまさにあなたが必要とするものでなければなりません。
私もこれを調べています。私も Open Id を利用する可能性のある Django プロジェクトに取り組んでいます。参照については、以下をご覧ください。
うまくいけば、ここの誰かがこの問題に取り組んでいます。
おそらく、django OpenID ライブラリを使用して、テスト対象のプロバイダーを作成できます。常に認証するものと常に失敗するものを用意してください。
自分のマシンに対して開発するのに問題はないはずです。どのようなエラーが発生していますか?
OpenIDプロバイダーは、サイト(この場合はhttp:// localhost:8000など)にIDへのアクセスを許可するように要求します。[OK]をクリックすると、そのURLがリダイレクトされます。私はlivejournalで問題が発生したことはなく、 myopenid.comも機能することを期待しています。
ローカルでの開発に問題がある場合は、URLがローカルホストであることに関係なく問題が発生していることをお勧めしますが、それ以外の問題があります。エラーメッセージまたは問題の説明がなければ、これ以上言うことはできません。
編集:Yahooは私が遭遇した他のOpenIDプロバイダーとは異なる方法で動作し、IPアドレス、ドメイン名に正しいtldがないサイト、および80または443以外のポートで実行されるサイトへのリダイレクトを許可しないことが判明しました。ここを参照してくださいこのテーマに関するYahoo開発者からの投稿。この投稿は回避策を提供しますが、開発のためにmyopenid.comは、Yahooを回避したり、独自のプロバイダーを実行したりするよりもはるかに簡単であることをお勧めします。
ローカル マシンから OpenID プロバイダーを実行してみませんか?
.Net 開発者の場合は、Google Codeに .Net 用の OpenID プロバイダー ライブラリがあります。これは、標準の .Net プロファイル プロバイダー メカニズムを使用し、OpenID レイヤーでラップします。これを使用して、カスタム認証エンジンに OpenID を追加しています。
別の言語/プラットフォームで作業している場合は、ここの OpenID コミュニティ サイトから利用可能な OpenID 実装が多数あります。