2008年02月02日

OpenID2.0に対応したPerlモジュール?

Posted by nene2001 at 18:45 / Tag(Edit): perl openid / 2 Comments: Post / View / 0 TrackBack / Google Maps このエントリーを含むはてなブックマーク
YahooのOpenIDについての周知 -辛辣インターフェース評議会-

発行される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リクエストが来ており、エラーが出ている

といった変な?ところがあるので、正常に動いているのかどうかはよく判りません。
私は中身全然判ってないので、一応上記で動いたよというレポートだけで、これで動かしても問題がないのかどうかは全く判断つきませんので、自己責任でよろしくお願いします。

Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
トラックバックはありません。
Comments

【週間新潮】最高裁を無視する小平市の在日韓国・朝鮮人1万円支給…「払ってないのに年金をくれ」の音頭を取る公明党
http://mamono.2ch.net/test/read.cgi/newsplus/1201793882/


神戸では只で朝鮮人様に3万もプレゼントしています。
他の200以上もの自治体が、同じ様に朝鮮人様に年金をプレゼントしています。


川崎では、朝鮮人の為に使う費用が、1億以上にもなるそうです。


日本の年金未加入のお年寄りはスルーで、年金未加入の朝鮮人(外国人)には
日本の大切なお金をプレゼントするって・・・・・・。


日本人のお金を朝鮮人(外国人)にプレゼントするのは賛成ですか??


この事実を、家族や知り合いに広めましょう。


コピペお願いします。

Posted by: nono at 2008年02月05日 09:46


dat落ちしてるみたいだから、ここを見てね^^
http://2se.dyndns.org/test/readc.cgi/mamono.2ch.net_newsplus_1201793882/

ただで貰えるなんて羨ましいなぁ。
それで日本人のお年寄りは餓死かぁ。

Posted by: のの at 2008年02月05日 09:50
Post a comment












Remember personal info? 
2008年02月
Su Mo Tu We Th Fr Sa
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29  

About Me

Navigation

Search
Google
Web
kokogiko.net
Archives
Recent Entries
Recent Comments
Recent Trackbacks
Generic Viagra(Generic Viagra)
Google MapsライセンスとgoSVGによるオープンソースGIS生き残り戦略
Adobe もクラウドをはじめた!各社のクラウドサービスの特徴は?(ラボブログ)
Amazon EC2のランニングコストはそんなに安くなかった
「ここギコ!」の人が涙も出ないような状況になっていることについて(僕だけが幸せになればいいのに。)
人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
GoogleMapsと連動したいなら幾何データ型よりPostGIS
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
「ジオメディアサミット関西」が開催されます。
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
MySQL4.1以降での空間情報の扱い方
なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(ここギコ!)
「冷静に」「熱く」「マジ反論」でこの内容はある意味すごい
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
国連人権委、アイヌ・琉球文化の保護を日本に勧告
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
政治と祭祀が不可分と考えるなら、全ての祭祀を引き受けるのが筋
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
Googleさんの技術でアイヌ語訳ができないだろうか
Hatena bookmarked
My del.icio.us

Banners

Syndication
Powered by
Get it!!