Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

OpenAMのインストール

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

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

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

目次

はじめに

 第2回は、OpenAMのインストール方法について説明します。OpenAMはJavaで実装されたWebアプリケーションであるため、Tomcatなどのアプリケーションサーバ(サーブレットコンテナ)が必要となります。

対象読者

  • SSOについてより理解したい方
  • SSO製品の導入を検討している方
  • OpenAMについてより理解したい方
  • OpenAMを用いてSSO環境を構築したい方

必要な環境

 OpenAMのインストールに必要なサーバスペックについては、以下が目安となります。

  • Windows、RHEL、Solaris、UbuntuなどのOS
  • メモリ : 1.0GB以上
  • ディスク容量 : 2GB以上
  • JDK 1.6.*
  • TomcatなどのJava EEコンテナ

 詳細についてはForgeRock社のサイトを参照ください。

 インストールに使用した環境は次のとおりです。

  • CentOS 6.1 32bit版
  • メモリ : 1.5GB
  • CPU : Intel Core 2 CPU E7400 @ 2.80GHz × 2

OpenAMのインストール

 OpenAMのインストールは簡単です。基本的にはサーブレットコンテナにwarファイルをデプロイするだけです。ただし、Javaのヒープサイズやホストの名前解決の設定などが必要です。今回はCentOSを使って説明しますが、Windowsなどでも同様の手順になります。

OSのセットアップ

 まずはOpenAMをインストールするために必要なOSをセットアップします。※以降の作業は全てrootユーザで行っています。

 OpenAMサーバにアクセスするには、OpenAMサーバのホスト名をFQDN(注1)で名前解決できなければなりません。ここでは OpenAMサーバのFQDNを「openam.example.co.jp」とします。

$ vi /etc/sysconfig/network

HOSTNAME=openam.example.co.jp 

 今回は、DNSでの名前解決はせず、hostsファイルに定義を追加します(IPアドレス部分は環境に合わせて変更してください)。

$ vi /etc/hosts

192.168.1.11 openam.example.co.jp

 動作検証が目的であるため、ファイアウォールやSELinuxは無効にします。CentOSの端末で以下を実行します。

$ service iptables stop
$ chkconfig iptables off

$ vi /etc/sysconfig/selinux

#SELINUX=enforcing
#↓disabledに変更
SELINUX=disabled

 設定を反映させるため、OSを再起動します。

注1 FQDN

 ホスト名、ドメイン名(サブドメイン名)などすべてを省略せずに指定した識別子のこと。「openam.example.co.jp」はホスト名「openam」とドメイン名「example.co.jp」をすべて揃えたFQDNとなります。

JDKのインストール

 Oracle社のサイトからJDKをダウンロードし、インストールします。

$ wget http://download.oracle.com/otn-pub/java/jdk/6u37-b06/jdk-6u37-linux-i586-rpm.bin

$ sh ./jdk-6u37-linux-i586-rpm.bin

Tomcatのインストールと設定

 yumコマンドにより、tomcat6(※2)をインストールします。インストールが完了したら環境変数JAVA_HOMEとJAVA_OPTSをセットします。OpenAMの起動には、1GBのJavaヒープと256MBのpermanent領域が必要です。

$ yum install tomcat6

$ export JAVA_HOME=/usr/java/default/
$ export JAVA_OPTS="-Xmx1024m -XX:MaxPermSize=256m"

OpenAMのデプロイとTomcatの起動

 OpenAMはForgeRock社のサイトからをwarファイルをダウンロードできます。ダウンロードしたら、/usr/share/tomcat6/webapps/以下にコピーします。OpenAMのデプロイが完了したら、Tomcatを起動します。

$ wget http://download.forgerock.org/downloads/openam/openam10/10.0.0/openam_10.0.0.war
$ mv openam_10.0.0.war /usr/share/tomcat6/webapps/openam.war 

$ service tomcat6 start 

注2

 最新のTomcatにOpenAMをデプロイした場合、Tomcat停止時に以下のように「致命的エラー」がコンソールとログに出力されます。これはTomcat 6.0.24から追加されたメモリリーク検知機能によるものです。SEVEREとなっていますが、プログラム停止とともにメモリは解放されるので問題ありません。

SEVERE: A web application appears to have started a thread named [Session Monitor] but has failed to stop it. This is very likely to create a memory leak.
2012/11/11 23:37:33 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads

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

修正履歴

  • 2013/04/25 23:20 Tomcatにメモリリーク検知機能が追加されたバージョンの誤りを修正6.0.20→6.0.24

  • 2012/11/29 10:16 注意書きを追加「※以降の作業は全てrootユーザで行っています。」

  • 2012/11/29 00:43 最終確認完了

  • 2012/11/22 17:18 完成

  • 2012/01/07 08:16 完了

著者プロフィール

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

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

バックナンバー

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