Apache2::AuthenOpenIDを作ったよ

先週はhttp://openid4u.net/openidのサーバーを作ったんですが(宣伝)、今週はopenidのconsumerを作りました。
この前作ったApache2::AuthHatenaとおんなじ感じで動きます。

設置方法。まず、

cpan Apache2::AuthenOpenID

でインストールします。
その後、httpd.confに

LoadModule perl_module modules/mod_perl.so
PerlLoadModule Apache2::AuthenOpenID

と書きます。次に認証をかけたいディレクトリに.htaccessを置きます。

AuthType OpenID
AuthName "My private documents"
trust_root http://sample.com/your_trust_root/
return_to http://sample.com/your_trust_root/callback
consumer_secret "you consumer secret"
require user sample.com/someidentity

こんな感じ。trust_rootとreturn_toは.htaccessの影響の及ぶ範囲に置いておいてください。consumer_secretはここで決めうちです。ちょいとアレですね。誰も思いつかないようなのをよろしくです。今回はauthenとauthzの区別がようやく理解できたので、authenだけやるようにしました。$r->userをセットすれば後はapacheでauthzやってくれるので、シンプルに片付けました。require userの行は最初の「http://」または「https://」と最後の「/」を取り除いて登録してください。「http://openid4u.net/hatena/lopnor/」ではなくて、「openid4u.net/hatena/lopnor」です。複数のユーザーを許可したい場合は

require user openid4u.net/hatena/lopnor openid4u.net/flickr/lopnor

のように一行に複数書くこともできますし、

require user openid4u.net/hatena/lopnor
require user openid4u.net/flickr/lopnor

のように複数回require行を書くこともできます。もちろんvalid-userもつかえます。
と言うことで、なんだか急にOpenID周りがにぎやかになってきてるので、今を逃す手はないと思って作りました。Have fun!

動作サンプル
http://lopnor.homeip.net/~danjou/authenopenid/
CPAN
http://search.cpan.org/~danjou/Apache2-AuthenOpenID-0.02/
coderepos
http://coderepos.org/share/browser/lang/perl/Apache2-AuthenOpenID

うへえ

今週はインフラ週間だった。のこぎり買うところからだもんなぁ。週明けに回線が開通して新ラック(押し入れ)で稼働する予定。ってことは来週もインフラっぽいよなぁ。openid4uはすっかりアレなのでテコ入れ的なものを作らんといかんね。っていうかロゴコンペやんなきゃいかんのにそこまで手が回らん。