OpenID with Ruby on Rails

RailsOpenID 認証(認可?)するライブラリを探していました。ざっと発見しただけでも、以下の通り。

  1. ruby-openid 付属の rails_openid_login_generator
  2. ruby-openid 付属の rails_openid
  3. plugin の open_id_authentication
  4. plugin の restful_open_id_authentication
  5. どこかで拾った 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 にサンプルがありますが、所詮サンプルですから、自分で書く他ありませんね。

っていうか、書いたので公開したいなぁ、と思っているのですが、ライブラリにまとめるにはどうしたらイイんでしょう....

普段から使うばっかで、公開とかしたことが無いので、ダメですね。しばし、勉強します。