ダウンロード サンプルソース (189.2 KB)
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
これで必要な要素をすべて用意できました。次のページからは認証システムを構築していきます。
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Riccardo Govoni(Riccardo Govoni)
2003年からJ2EE開発者としてイタリアの金融サービス会社に勤務。ソフトウェアアーキテクトとして従来の銀行システムのWebフロントエンドの設計に従事。物理学修士。SCJP(Sun Certified Java Programmer)資格を持つ。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
