6

これは暗闇の中のショットかもしれませんが、 Net::OpenID::Server モジュールを使用して Perl で OpenID プロバイダーを実装しようとしています。プロセス全体のドキュメントは紛らわしく、まばらです。

Perl でプロバイダーの実装に成功した人がいる場合は、コード スニペットをいくつか貼り付けていただけますか?

4

2 に答える 2

7

だから私は最終的にOpenIDのインストールを所定の位置に動かし、それはかなりうまく機能しています. 私が遭遇した落とし穴のいくつかを詳しく説明すると思います。

  • OpenID サインイン プロセスには 3 つ以上の状態/手順があります。ドキュメントとサンプル コードを見ると、3 つあると思われるため、これは紛らわしいです。場合によっては、最大 7 つまで存在します。サーバーのログを見て、SERVER と USER (認証を要求しているユーザー) が PROVIDER (おそらく設定しているもの) にヒットした回数を確認します。相互作用の半分しか見ていない場合、何かをデバッグするのは困難です。
  • 多くのプロバイダーは、未確定の OpenID 2.0 仕様を使用しています。(少し良くなっています。) 2.0 仕様のパフォーマンスは 1.0 仕様とは異なります。サーバー(彼ら)はプロバイダー(あなた)との信頼を確立します。Net::OpenID::Server はこれを適切に処理しますが、使用している仕様については通知しません。2.0 仕様では、ハンドシェーク プロセスにステップが追加されています。
  • 簡単にテストできるように、独自の OpenID SERVER をセットアップします。ruby-openid という gem を備えた単純な Rails サーバーを使用しました。実際の野生のサーバーの動作を模倣するようにセットアップするには、約 10 分かかりました。
  • 言うまでもありませんが、ログイン プロセスがステートレスであることを確認してください。ユーザーの検証方法を処理するグローバル変数がありました。この変数を使用すると、OpenID サインイン プロセスと互換性のない特定の仮定が作成されたため、ユーザーは自分以外のアカウントへのログインを許可されていました。これは明らかに悪いことです。いくつかの閉鎖と、ステートレスでより安全なコードがいくつかあります。

全体として、OpenID は一度機能すると非常に優れています。

于 2010-07-22T15:38:05.810 に答える
0

参考までに、Net-OpenID Perl モジュールの開発が開始されているので、大量のバグ修正とより良いドキュメントがすぐに実現することを期待できます。詳細については、CPAN とopenid-perlグループを確認してください。

于 2010-11-08T22:46:36.297 に答える