SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

OpenIDとRails:Authentication 2.0

OpenID認証をRuby on Rails 2.0に組み込む方法

RubyとOpenIDの接続

 OpenID対応のWebアプリケーションを作成する具体的な例を見ていきたいと思いますが、これにはRuby on Rails 2.0に基づく従来型のWebサイトが必要です。これから紹介する例では、まず基本的なアプリケーションを作成し、その後で資格情報チェック機能とユーザーログインを追加して、このアプリケーションを強化します。この基本的なアプリケーションは、Webベースの簡単なTODOリストです。OpenIDの組み込み作業に集中できるように、非常にシンプルなアプリケーションになっています。

アプリケーション作成手順

  1. MySQLインスタンスをローカルで実行していることを確認します。このMySQLインスタンスに接続し、次のコマンドを実行して開発用データベースを作成します。
  2. create database openid_development ;
    
    このデータベースにはアプリケーションで使用するデータと、OpenID Providerとの通信に必要な追加テーブルが格納されます。
  3. 端末を開き、次のコマンドを使用してRailsアプリケーションを新規作成します。
  4. # rails -d mysql openid
    
  5. すべて正常に機能していることを確認するためにscript/serverコマンドを実行し、「http://localhost:3000/」上のアプリケーションにアクセスします。
  6. 以下のコマンドを実行して、TODO項目を管理するための基本的な枠組みを作成します。各TODO項目には所有者(名前と電子メールで識別)、開始日と終了日、および説明を割り当てます。
  7. # script/generate scaffold Todo \
    person:string email:string start:date end:date description:text
    # rake db:migrate
    
    非常にシンプルですが、このサンプルアプリケーションはTODOリストを問題なく正常に処理します。

アプリケーションへOpenIDを組み込む

 次に、このアプリケーションにOpenIDを組み込んで、以下のことができるようにします。

  • アプリケーションでログイン画面を表示する。
  • OpenID Providerが受け取る資格情報の一部を再利用して、TODO項目作成ページを拡張する。
  1. ruby-openidライブラリをインストールします。このライブラリには、アプリケーションとリモートのOpenID Provider間で通信を行うために必要なクライアントコードがすべて含まれています。このライブラリは、rubygemsを使用してインストールできます。
  2. # sudo gem install ruby-openid
    
    インストールしたgemを調べると、ライブラリのバージョンに応じて次のように表示されます。なお、バージョンが異なっていても本稿での作業に支障はありません。
    # gem list --local
    ruby-openid (2.0.4, 1.1.4)
    ruby-yadis (0.3.4)
    ...
    rails (2.0.2)
    ... other installed gems ...
    
  3. openid_authenticationプラグインをインストールし、Railsと新しくインストールしたruby-openidライブラリを統合します。このプラグインは、いくつかのデータベーステーブルがないと適切に機能しないため、rakeコマンドを実行して必要なテーブルを移行してください。
  4. # 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.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Riccardo Govoni(Riccardo Govoni)

2003年からJ2EE開発者としてイタリアの金融サービス会社に勤務。ソフトウェアアーキテクトとして従来の銀行システムのWebフロントエンドの設計に従事。物理学修士。SCJP(Sun Certified Java Programmer)資格を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2514 2008/06/16 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー