SHOEISHA iD

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

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

OpenAMで始めるシングルサインオン

社内アプリケーションへのシングルサインオン ~ Liferayとの連携

OpenAMで始めるシングルサインオン(3)


  • X ポスト
  • このエントリーをはてなブックマークに追加

 OpenAMは、シングルサインオン(以下SSO)を実現するオープンソースソフトウェア(以下OSS)です。旧Sun Microsystems社により開発された商用製品がベースとなっているため、高品質で多機能です。全世界で多くの導入実績があり、安定性と信頼性の高さが証明されています。本連載では、OpenAMとSSOに関する技術について解説します。また実際にOpenAMをインストールし、社内アプリケーションやクラウドサービスに対してSSOしてみます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 第3回は、OpenAMを使用してLAN内にあるWebアプリケーションへSSOする手順と、それを実現する仕組みについて解説します。SSO対象のWebアプリケーションには、セットアップが簡単で、かつOpenAMとの連携機能が提供されている「Liferay」を使用します。Liferayには無償で利用できる「Community Edition」があります。

図1:LiferayへのSSO
図1:LiferayへのSSO

 LiferayがどのようにOpenAMと連携してSSOを実現するかを理解することで、Liferay以外のWebアプリケーションをSSO対応するためにどのような改造をすればいいかも理解できるかと思います。

対象読者

  • SSOとOpenAMについてより理解したい方
  • OpenAMの導入を検討している方
  • LiferayへのSSOを検討している方
  • WebアプリケーションのSSO対応を検討している方

Liferayとは

 Liferayは企業ポータルを実現するオープンソースのWebアプリケーションです。ポートレットと呼ばれる機能単位の部品で構成されており、それらを組み合わせて企業のニーズに合ったポータルを構築することができます。ポートレットには、Wiki、カレンダー、ブログ、アンケートなど非常に多くの種類があります。画面から分かるようにポートレットの追加は簡単にできます。

図2:Liferayのポートレットの追加
図2:Liferayのポートレットの追加

 Liferayは、日本語はもちろんさまざまな言語に対応しています。Javaで実装されているため、主要なOSの主要なアプリケーションサーバ上で動作します。

表1:Liferayの基本情報
機能 コミュニティ、コンテンツ管理、ニュース、ソーシャルなど
サポートするOS マルチプラットフォーム
対応言語 マルチランゲージ(日本語にも対応)
実装言語 Java
ライセンス LGPL
Webサイト http://www.liferay.com

LiferayがSSOを実現する仕組み

 Liferayのセットアップに入る前に、LiferayがどのようにSSOを実現するかについて説明します。

 LiferayはOpenAM(OpenSSO)連携用のサーブレットフィルタを提供しています。Liferayの管理画面でOpenAMによる認証を有効にすると、このフィルタが機能するようになります。フィルタはLiferayに対するすべてのリクエストを監視し、認証済みであるかどうかをOpenAMに問い合わせます。その際に使用されるのが、OpenAMのREST APIです。

 未認証のユーザがLiferayにアクセスした際のシーケンスを以下に示します。

図3:LiferayにSSOするシーケンス
図3:LiferayにSSOするシーケンス

 未認証やセッションタイムアウトである場合、LiferayはユーザをOpenAMのログイン画面にリダイレクトさせます。この際にクエリストリングにgoto=[LiferayのURL]を設定しておくことで、OpenAMがログイン成功後にLiferayへとユーザをリダイレクトさせます。

 その後、LiferayはREST APIでOpenAMからこのユーザの情報(ID、メール、姓、名)を取得してログイン処理を実行します。ユーザがLiferayのDBに存在しなければ、その情報をDBに登録することもできます(デフォルト設定では登録します)。

 実装の詳細に関して知りたい方は、Liferayのソースをダウンロードして、パッケージcom.liferay.portal.servlet.filters.sso.openssoにあるOpenSSOFilter.javaを確認してみてください。

設定の概要

 設定のおおまかな流れは以下のようになります。

  • Liferayのセットアップ(Liferayがセットアップされていない場合)
  • 連携用のOpenAMユーザ作成
  • LiferayのSSO設定

 OpenAMのインストールが完了していない方は、「OpenAMのインストール - OpenAMで始めるシングルサインオン(2)」を参照してインストールを行っておいてください。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
Liferayのセットアップ

修正履歴

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
OpenAMで始めるシングルサインオン連載記事一覧

もっと読む

この記事の著者

田村 広平(タムラ コウヘイ)

OpenAMコミッタ。1978年長野県生まれ。OSS(特にOpenAM)の研究開発、テクニカルサポートに従事。E-Mail  : ktamura.biz.80@gmail.comTwitter : @tamura__246GitHub : https://github.com/k-tamuraブロ...

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6320 2013/06/02 15:27

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング