OpenID with Ruby on Rails
Rails で OpenID 認証(認可?)するライブラリを探していました。ざっと発見しただけでも、以下の通り。
- ruby-openid 付属の rails_openid_login_generator
- ruby-openid 付属の rails_openid
- plugin の open_id_authentication
- plugin の restful_open_id_authentication
- どこかで拾った openidauth.zip というサンプルアプリ
この内、restful_open_id_authentication と openidauth.zip は、ほぼ同内容でしたので、実質的には「4つ」ということになりますか....
ただ、ruby-openid のインターフェースの構成が変更になったこともあって、上記の内、ruby-openid 2.0.x で稼動するモノは、rails_openid のみで(patch を適用した open_id_authentication が、ようやく出てきましたが)、無修正で使用できるライブラリが無く、困り切っていました。
さて、どれを選択したものか....
最近『RESTful Web サービス』を読んでいる関係もあって、restful_open_id_authentication に興味津々だったのですが、蓋を開けてみて、少々ガッカリ。
コードを読み違えてはいないとは思うのですが、「restful_authentication に rails_openid_login_generator をくっつけた」みたいな感じで、イマイチでした。
RESTful の stateless と OpenID の stateful をどう結び付けているんだろうか? と、名前から勝手に想像を膨らませてしまっていましたので、ガッカリ感も一入でした。
と、まぁ、そんなこんなで、最終的には open_id_authentication を使用することに決めました。それぞれのコードを見る限りでは、これが一番 Ruby らしい、手慣れている感がありました。coreteam の面目躍如、といったところでしょうか。
ただ、残念ながら、こちらには model や controller の generator はありません。README の Example にサンプルがありますが、所詮サンプルですから、自分で書く他ありませんね。
っていうか、書いたので公開したいなぁ、と思っているのですが、ライブラリにまとめるにはどうしたらイイんでしょう....
普段から使うばっかで、公開とかしたことが無いので、ダメですね。しばし、勉強します。