Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

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

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/01/21 14:00

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

目次

はじめに

 第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)」を参照してインストールを行っておいてください。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2013/01/18 13:04 最終確認完了

  • 2013/01/12 14:25 執筆完了

著者プロフィール

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

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

バックナンバー

連載:OpenAMで始めるシングルサインオン
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5