RubyとOpenIDの接続
OpenID対応のWebアプリケーションを作成する具体的な例を見ていきたいと思いますが、これにはRuby on Rails 2.0に基づく従来型のWebサイトが必要です。これから紹介する例では、まず基本的なアプリケーションを作成し、その後で資格情報チェック機能とユーザーログインを追加して、このアプリケーションを強化します。この基本的なアプリケーションは、Webベースの簡単なTODOリストです。OpenIDの組み込み作業に集中できるように、非常にシンプルなアプリケーションになっています。
アプリケーション作成手順
- MySQLインスタンスをローカルで実行していることを確認します。このMySQLインスタンスに接続し、次のコマンドを実行して開発用データベースを作成します。
- 端末を開き、次のコマンドを使用してRailsアプリケーションを新規作成します。
- すべて正常に機能していることを確認するために
script/serverコマンドを実行し、「http://localhost:3000/」上のアプリケーションにアクセスします。 - 以下のコマンドを実行して、TODO項目を管理するための基本的な枠組みを作成します。各TODO項目には所有者(名前と電子メールで識別)、開始日と終了日、および説明を割り当てます。
create database openid_development ;
# rails -d mysql openid
# script/generate scaffold Todo \ person:string email:string start:date end:date description:text # rake db:migrate
アプリケーションへOpenIDを組み込む
次に、このアプリケーションにOpenIDを組み込んで、以下のことができるようにします。
- アプリケーションでログイン画面を表示する。
- OpenID Providerが受け取る資格情報の一部を再利用して、TODO項目作成ページを拡張する。
- ruby-openidライブラリをインストールします。このライブラリには、アプリケーションとリモートのOpenID Provider間で通信を行うために必要なクライアントコードがすべて含まれています。このライブラリは、rubygemsを使用してインストールできます。
- openid_authenticationプラグインをインストールし、Railsと新しくインストールしたruby-openidライブラリを統合します。このプラグインは、いくつかのデータベーステーブルがないと適切に機能しないため、
rakeコマンドを実行して必要なテーブルを移行してください。
# sudo gem install ruby-openid
# gem list --local ruby-openid (2.0.4, 1.1.4) ruby-yadis (0.3.4) ... rails (2.0.2) ... other installed gems ...
# script/plugin install open_id_authentication # rake open_id_authentication:db:create # rake db:migrate
これで必要な要素をすべて用意できました。次のページからは認証システムを構築していきます。
