【解決】OpenID で OP Identifier をつかって楽々ログイン(3)
スパイスラボ神部です。
前回のエントリ(OpenID で OP Identifier をつかって楽々ログイン(2) ( ラボブログ ) )で調べた資料を見ていて、ちょっとオチが見えてきました。しかも壮大な。
何か壮大な見落としをしていたかもしれません。
実は既に OpenID Authentication 2.0 Ready な RP になっていたかも
上記記事で参考にした 10分で作るYahoo! OpenID RP (Yahoo! JAPAN Tech Blog) という記事によると、http://openidenabled.com/ にある OpenID Library を導入せよとあります。
一方、もともと参考にしていた「【CakePHP】OpenIDをAuthComponentにトッピングしてみる | ねねとまつの小部屋 」を見ると、こちらでも PHP OpenID Library を導入せよとあり、実際に自分の環境でも導入が完了しています。
ということは、既に OpenID Authentication 2.0 Ready な Relay Partner になっており、Identifier の渡し方が間違っているだけなのでは?
と言うことで実験
いままでは OpenID に対応させたログインフォームはこんなコードでした。
echo $form->create('User', array('action' => 'login'));
echo $form->input('username"));
echo $form->input('password"));
echo $form->input('OpenidUrl.openid');
echo $form->submit('');
echo $form->end();
これを、こんな風に変更。
echo $form->create('User', array('action' => 'login'));
echo $form->input('OpenidUrl.openid', array("label"=>"", "type"=>"hidden", "value"=>"yahoo.co.jp"));
echo $form->submit('http://i.yimg.jp/images/login/btn/Ymark.gif');
echo $form->end();
これで Yahoi! のロゴをクリックすると・・・
無事 Yahoo! の認証ページに転送されました!!!
ということで・・・
大変間抜けなオチですが、OP Identifier をつかって簡単にログインするための準備はとっくに整っていたようです。ただ、 OP Identifier についてより知ることが出来たということと、具体的な渡し方が類推できたことはよかったように思います。
結論としては、
-【CakePHP】OpenIDをAuthComponentにトッピングしてみる | ねねとまつの小部屋 に従うとユーザに OpenID を入力させずにボタンクリックでログインさせる OpenID 2.0 Authorization ための準備はととのっている!
-渡し方は簡単で、具体的には OpenidUrl.openid に Op Identiier(yahoo.co.jp や mixi.jp という文字列)を渡してあげるだけ!
という感じでしょうか。
この経験を活かしていろいろなサイトをがしがし OpenID 対応にしてみたいと思います!


コメント ( 1 )
昔からあるSAML,Kerberosをインターネットサービス用に焼き直しただけで、新しい技術ではないです。
投稿者: 匿名 | 2010年03月04日 17:43
日時: 2010年03月04日 17:43