2008年02月02日
OpenID2.0に対応したPerlモジュール?
発行されるIDが長くて覚えられねーとか言ってる人がいるんだけど、そもそも人間が覚えるものではない。
OpenID 2.0だとOpenIDのログインフォームにyahoo.comとかyahoo.co.jpと入れるだけでログインできる。
すげー。
アイデンティティ飲み会とか行ってたくせに全然知らんかった。
で、それならと、スクリプトキディの私としては、新しいプロトコルを勉強するより先に、早速OpenID2.0対応のモジュールを探してみたわけなのですが、PHP、Python、Rubyならここにあるみたいなのだけど、Perl版はない。
Google Codeにopenid4perlというのがあるみたいだけど、最終更新が1年以上前なので、最新の仕様で動くのかどうかよく判らない。
色々探してたら、SixApartの中の人が、CPANにも上がっているNet::OpenID::Consumerを、branch切ってOpenID2.0対応させてるみたい。
見つけた情報元(検索に引っ掛かったけど、忘れた)では、まだ最後のとこでうまくいってない、みたいな感じで書いてあったけど、DLしてむりやりCatalyst::Plugin::Authentication::Credential::OpenIDと連携させてみた。
そしたら、OpenID1.1までのURL型IDを入れるはずのテキストボックスに、「yahoo.co.jp」みたいなIdPのアドレスを入れてやると、flatladderと同じ感じで、ちゃんとYahoo JapanのOpenID認証用ID/PW認証ページが表示された。
で、その後OpenIDをテストページに通知してよいかの確認ページを経て、テストページに遷移。
が、そこでエラー。
確かめてみると、「bogus_delegation」というエラーが出ており、調べてみると 、Net::OpenID::Consumerの540行目からのところで、
# if openid.delegate was used, check that it was done correctly
if ($a_ident ne $real_ident) {
my $delegate = $claimed_identity->delegated_url;
return $self->_fail("bogus_delegation") unless $delegate eq $a_ident;
$self->_debug("verified_identity: verified delegate $delegate for $real_ident");
}
みたいな感じで、$a_ident(IdPからの、openid.identityとしての戻り値)と$real_ident(よく判らないが、OpenID1.1ではoic.identityとしての戻り値、OpenID2.0ではopenid.claimed_idとしての戻り値を入れているみたい)の値が異なればopenid.delegateの処理がおかしかったとして扱っているみたい。
で、openid.claimed_idが存在しないので空文字列になっており、絶対ここでひっかかるようになってたので、試しにここだけコメントアウトしてみると...動いた。
普通にyahoo.co.jpと入れてやれば、最終的にYahoo Japan発行のOpenID2.0 IDが受け取れるようになった。
実際には、上記コメントアウトした部分はOpenID1.1では必須な処理なのだろうと思うので、導入するならコメントアウトではなくプロトコルバージョンで分岐するべきなのでしょうし、というかそもそもOpenID2.0でも必要な処理なのかもしれません(現状コードでは動かないだけで)。
また、動作はしているものの、いくつかの変な点も見つかります。
- flatladderでのページ遷移のシーケンスを追っていると、yahoo.co.jp等と入れた後ID認証のページが表示されるまでの間、flatladderとYahooの間を何度かリダイレクトしているようなのだけど、このテストコードではリダイレクトは1回だけしか行われない
- テストページからYahooへ遷移し、ユーザがID入力を行っている間に、裏でYahooサーバからテストページに対し、クエリストリングも何もつかないただのGETリクエストが来ており、エラーが出ている
といった変な?ところがあるので、正常に動いているのかどうかはよく判りません。
私は中身全然判ってないので、一応上記で動いたよというレポートだけで、これで動かしても問題がないのかどうかは全く判断つきませんので、自己責任でよろしくお願いします。
【週間新潮】最高裁を無視する小平市の在日韓国・朝鮮人1万円支給…「払ってないのに年金をくれ」の音頭を取る公明党
http://mamono.2ch.net/test/read.cgi/newsplus/1201793882/
神戸では只で朝鮮人様に3万もプレゼントしています。
他の200以上もの自治体が、同じ様に朝鮮人様に年金をプレゼントしています。
川崎では、朝鮮人の為に使う費用が、1億以上にもなるそうです。
日本の年金未加入のお年寄りはスルーで、年金未加入の朝鮮人(外国人)には
日本の大切なお金をプレゼントするって・・・・・・。
日本人のお金を朝鮮人(外国人)にプレゼントするのは賛成ですか??
この事実を、家族や知り合いに広めましょう。
コピペお願いします。
dat落ちしてるみたいだから、ここを見てね^^
http://2se.dyndns.org/test/readc.cgi/mamono.2ch.net_newsplus_1201793882/
ただで貰えるなんて羨ましいなぁ。
それで日本人のお年寄りは餓死かぁ。
![[ここギコ!]](http://kokogiko.net/logo.png)



・国連人権委、アイヌ・琉球文化の保護を日本に勧告(ほるほる)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(okumula)
・人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です(「ま」のつく人)
・もうAmazonクレジットカードは使いません...楽天カード一本で。(名無し)
・ジオメディア忘年会 新年会から始まり東京1、2、関西と続いたジオメディア2008の締めくくり(ぴかぴか)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(kokogiko)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(かやま)
・なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(大阪府民)
・なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(kokogiko)