Thursday Feb 21, 2008

A tip for deploying the latest build of OpenSSO on GlassFish V2 UR1

For the record - you have to modify domain.xml as follows before configuring the latest nightly build, 20080219.1 of OpenSSO (aka Federated Access Manager 8.0) on GlassFish V2 UR1:

Edit domain.xml and change the
following options to
        <jvm-options>-server</jvm-options>

from
originally it was
       <jvm-options>-client</jvm-options>

Install of opensso on glassfish - opensso: Mail reader

Thanks Sujatha for the follow-up post on users at opensso.dev.java.net.

OpenSSO Build 20080219.1

Friday Sep 22, 2006

OpenSSO のアクセス保護設定 (その 3): ポリシーの設定

ここまで

と作業を進めてきたが, いよいよアクセス制御ポリシーの設定と動作確認をしてみる.

まず, opensso レルムにあるタブの中から Policies をクリック.

New Policy... をクリックして, 新規ポリシー作成を開始.

ポリシー定義のページ. とりあえず設定する必要があるのは, ポリシー名 (Name) とルール (Rules), そして対象 (Subject) の 3 つ.

このポリシーの名前を入力. ここでは Policy 1 とする.

つぎにルールの追加. Rules にある New... をクリック.

ルール登録のステップ 1. URL Policy Agent が選択されていることを確認し (といってもこれひとつしかないけど), Next をクリック.

ルール登録のステップ 2. アクセス保護下におくリソースと, そのリソースに対してどのようなリクエストを許可 / 拒否するかを定義する. ここでは以下の通り入力し, Finish をクリック.

項目名 備考
Name sw-23 このルールの名前.
Resource Name http://sw-23.japan.sun.com リソースの URI. この指定により, http://sw-23.japan.sun.com のトップ・ページのみを保護の対象とすることになる.
Actions GET および POST を許可 リクエストの種類ごとに許可 / 拒否を指定.

これでルールが設定された...けど, このルールで定義されているリソースは 「Web Server (ここでは sw-23.japan.sun.com) のトップ・ページのみ」 だけなので, たとえば Web ブラウザで http://sw-23.japan.sun.com/ (末尾のスラッシュあり) という URI に接続すると, そのリソースにはポリシーが設定されていないから, これまで通り Forbidden のレスポンスが返ってしまう.

ということで, もうひとつ別のルールを追加する. 再度 New... をクリック.

Next をクリック.

以下の通り入力し, Finish をクリック.

項目名 備考
Name sw-23/\* このルールの名前.
Resource Name http://sw-23.japan.sun.com/\* リソースの URI. このようにワイルドカードを組み合わせることで, http://sw-23.japan.sun.com/ 以下の すべてのコンテンツを保護の対象にする.
Actions GET および POST を許可 リクエストの種類ごとに許可 / 拒否を指定.

これで http://sw-23.japan.sun.com 以下のすべてのコンテンツに対するアクセス保護が設定された.

最後に対象 (誰からのアクセスに対してこのポリシーを適用するか) の設定. Subject にある New... をクリック.

対象登録のステップ 1. Access Manager Identity Subject を選択し, Next をクリック.

対象登録のステップ 2 が表示される.

ここでは対象の名前に OpenSSO Administrator と入力し, Filter に User および \* を指定して Search をクリック.

現在 OpenSSO の管理下にあるユーザが一覧表示される. ここでは Available の中から amAdmin を選択し Add をクリック.

amAdmin が Selected に移ったことを確認し, Finish をクリック.

これでポリシー 「Policy 1」 が定義された.

右上の Finish をクリックし, このポリシーを保存する.

それでは, 実際にアクセス制御がうまいこと動くかどうか試してみる. まず右上の LOG OUT をクリックし, 現在のログイン・セッションを終了する.

確認のダイアログがポップアップするので, OK をクリックしてログアウトを完了する.

ログアウト・ページが表示される.

この状態で, ポリシー・エージェント入りの Web Server (http://sw-23.japan.sun.com) にアクセスする. ここではブラウザのロケーションに直接入力.

すると以前ポリシー・エージェントを入れた直後と同様に, OpenSSO にリダイレクトされた上でログイン・ページが表示される.

ここで amadmin / password を入力し, 認証を試みるとどうなるか? ポリシー・エージェントを入れただけの段階ではこのあと Forbidden が出てたんだけど, 今回は...

Web Sever (sw-23.japan.sun.com) のコンテンツが表示される!

こんな感じで, あとは

と, いろいろ設定することができる. 参考文書は OpenSSO のサイトの Software Documentation からどうぞ. また OpenSSO の設定項目は Sun Java System Access Manager とほとんどカブっているので, 設定のやりかたは現行バージョンである Access Manager 7.0 の製品文書 (日本語) もそのまま役に立つはず.

最後に, 現時点の OpenSSO と Access Manager との大きな違いのひとつは 「SAML および Liberty Alliance 仕様に基づくアイデンティティ連携実装」 の有無だけど, Access Manager エンジニアリングの Ping Luo が We are working on a schedule for OpenSSO-Federation open source release. と書いているように, そろそろ統合スケジュールがはっきりする模様.

ということで, OSS な SSO サービスをどうぞお試しくださいませ.
Get OpenSSO Now!

Thursday Sep 21, 2006

OpenSSO のアクセス保護設定 (その 2): ポリシー・エージェントの登録

前回インストールしたポリシー・エージェントの情報を OpenSSO に登録する.

amadmin で OpenSSO にログインし, Realms の中にある opensso レルムをクリック.

Subject タブをクリック.

User, Agent, Role, Group というタブが並んでいる中から, ここでは Agent タブをクリック.

Agent のリストにある New... をクリックし, ポリシー・エージェントの登録を開始.

ポリシー・エージェントの情報を入力し OK をクリック. ここでは以下の通り.

項目名 備考
ID sw-23 このポリシー・エージェントの ID.
Password agentpassword このポリシー・エージェントが OpenSSO へ接続するときに提示してくるパスワード. Web Server にポリシー・エージェントをインストールした際に設定した値を入力.

これでポリシー・エージェントの登録は完了.

次回はいよいよポリシーの定義と, OpenSSO による Web Server のアクセス保護がちゃんと機能するかどうかの確認を行なってみる.

Wednesday Sep 20, 2006

OpenSSO のアクセス保護設定 (その 1): Policy Agent 2.2 for Sun Java System Web Server 6.1 のインストール

つづいて, 前回インストールした Web Server にポリシー・エージェントをインストールしてみる. まずは Web Server と同様の手順で, Sun Java System Access Manager Policy Agent 2.2 for Sun Java System Web Server 6.1 (以下ポリシー・エージェント) のインストール・パッケージをダウンロード.

PA22 for WS61

今回は Policy Agent for Sun Java System Web Server 6.1, English (SJSWebServer_6.1_agent_2.2_solaris_sparc.tar.gz) をダウンロード.

PA22 for WS61 download

展開後のパッケージはこんな感じ:

# ls
AgentLicense.properties
AgentResources.properties
LICENSE.TXT
README.TXT
SUNWames6
agent_SunOS_es6.class
libpasswd.so
locale
setup

インストーラを起動.

# ./setup
Launching installer...
You are running the Installation/Uninstallation program for the Sun Java(tm)
System Access Manager Policy Agent.

(いろいろメッセージが出力されるけど, ここでは省略. 以下同様)

   Have you read, and do you accept, all of the terms of the preceding Software
   License Agreement [no] {"<" 戻る, "!;" 終了}? yes

   Install the Sun Java(tm) System Access Manager Policy Agent in this
   directory [/opt] {"<" 戻る, "!;" 終了}: /opt/agents (← インストール先)

重要な項目は大きくわけてふたつ. まずひとつめは, ポリシー・エージェントのインストール先である Web Server インスタンスの情報.

Enter information about the server instance this agent will  protect.

   Host Name [] {"<" 戻る, "!;" 終了}: sw-23.japan.sun.com (← Web Server のホスト名)
   Web Server Instance Directory [] {"<" 戻る, "!;" 終了}: /opt/SUNWwbsvr/https-sw-23 (← Web Server の設定ファイル等のあるディレクトリ)
   Web Server Port [80] {"<" 戻る, "!;" 終了}: 80 (← Web Server のポート番号)
   Web Server Protocol [http] {"<" 戻る, "!;" 終了}: http  (← Web Server のプロトコル)
   Agent Deployment URI [/amagent] {"<" 戻る, "!;" 終了}: /amagent (← OpenSSO から Web Server にアクセス (セッション情報の変化などを通知) するときの URI)

もうひとつは, このポリシー・エージェントが信頼する OpenSSO のインスタンスに関する情報.

Enter the Sun Java(tm) System; Access Manager Information for this Agent.

   Primary Server Host [] {"<" 戻る, "!;" 終了}: sw-21.japan.sun.com (← OpenSSO のホスト名)
   Primary Server Port [58080] {"<" 戻る, "!;" 終了}: 28080 (← OpenSSO のポート番号)
   Primary Server Protocol [http] {"<" 戻る, "!;" 終了}: http (← OpenSSO のプロトコル)
   Primary Server Deployment URI [/amserver] {"<" 戻る, "!;" 終了}: /opensso (← OpenSSO サーバの URI)
   Primary Console Deployment URI [/amconsole] {"<" 戻る, "!;" 終了}: /opensso (← OpenSSO コンソールの URI)

   Failover Server Host [] {"<" 戻る, "!;" 終了}: (enter)

   Agent-Access Manager Shared Secret: agentpassword (← OpenSSO と通信する際に使うパスワード. これについてはまたのちほど)
   Re-enter Shared Secret: agentpassword

あとはとくに難しいところはなく, そのまま直観的にキーを押下.

   Press "Enter" when you are ready to continue. {"<" 戻る, "!;" 終了} (enter)

Ready to Install

1. Install Now
2. Start Over
3. Exit Installation

   What next [1] {"<" 戻る, "!;" 終了}? 1

   Enter the number corresponding to the desired selection for more
   information, or enter 2 to continue [2] {"!;" 終了}: 2

#

これでポリシー・エージェントが Web Server にインストールされた. Web Server を再起動し, ポリシー・エージェントを有効にする.

# /opt/SUNWwbsvr/https-sw-23/stop
server has been shutdown
# /opt/SUNWwbsvr/https-sw-23/start
Sun ONE Web Server 6.1SP6 B05/07/2006 12:33
info: CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.4.2_04] from [Sun Microsystems Inc.]
info: WEB0100: Loading web module in virtual server [https-sw-23] at [/search]
info: HTTP3072: [LS ls1] http://sw-23:80 ready to accept requests
startup: server started successfully
# 

この状態でポリシー・エージェント入りの Web Server, すなわち今回の環境では http://sw-23.japan.sun.com へアクセスすると, どのような挙動を示すだろうか?

  1. そのままトップ・ページのコンテンツが表示される
  2. アクセスを拒否される
  3. 認証を求められる

回答は 3. 正確には, http://sw-23.japan.sun.com に接続すると, Web Server に入っているポリシー・エージェントが Web ブラウザを OpenSSO (http://sw-21.japan.sun.com:28080/opensso) にリダイレクトする. そしてその OpenSSO が, ログイン・ページを生成・表示する.

OpenSSO Login

ここで管理者の ID とパスワード, すなわち amadmin / password を入力すると, ひとまず認証は成功する. しかしそのあと出てくるページ (Web Server, ここでは http://sw-23.japan.sun.com) は Forbidden...

Forbidden

これはなぜかというと, まだ OpenSSO 側にやるべきことが最低ふたつあるから:

  1. Web Server にインストールしたポリシー・エージェントの登録
  2. Web Server へのアクセスに関するポリシーの定義

ということで, 次回はこれらの設定を施してみる.

Tuesday Sep 19, 2006

OpenSSO のアクセス保護設定 (そのゼロ): Sun Java System Web Server 6.1 SP6 のインストール

先日インストールした OpenSSO を使って, Web サーバへのアクセスを保護してみる.

まずは保護対象の Web サーバが存在しないことにははじまらない. 今回はポリシー・エージェント一覧に載っている Web / アプリケーション・サーバのうち, Sun Java System Web Server (以下 Web Server) で試すことにした.

まずはインストール・パッケージのダウンロード. 以下のページの下方にある Download をクリック. ちなみに説明のところに The product is unlimited and free for use in development, staging, testing and deployment. と書いてある通り, 先日から Web Server をはじめとする Sun のソフトウェアは無償提供となっていることに注目.

WS61SP6 intl download

ログイン・ページ. 左のボックスに Sun Online Account のユーザ名とパスワードを入力し, Login をクリック. もし Sun Online Account をまだ持っていない場合には, 右の Register からアカウントを作成する必要がある.

Sun Online Account Login

インストール・パッケージのダウンロード・ページ. License Agreement を確認後 Accept を選択し, 使用するプラットフォーム向けのパッケージを選択. 今回は Sun Enterprise 250 上の Solaris 10 にインストールするつもりなので, Sun Java System Web Server for Solaris SPARC, Multi-language (sun-webserver61-sparc-intl.tar.gz) をダウンロードした.

WS61SP6 Download

ダウンロードしたパッケージを展開するとこんな感じ:

# ls
3RD-PARTY-LICENSE.txt   install.inf             setup.inf
LICENSE.txt             installWrapper          template.inf
README.txt              lib
WebServer               setup

ここからインストーラを起動し, Web Server を入れてみる.

# ./setup

                             Sun Microsystems, Inc.
                 Sun ONE Web Server Installation/Uninstallation
--------------------------------------------------------------------------------
(いろいろメッセージが出力されるけど, ここでは省略. 以下同様)

Would you like to continue with installation? [Yes]: yes
Do you agree to the license terms? [No]: yes
Choose an installation type [2]: 1 (← ここでは手抜きして Express installation を選択した)
Install location [/opt/SUNWwbsvr]: /opt/SUNWwbsvr
Specify the components you wish to install [All]: all
System User [webservd]: nobody
System Group [webservd]: nobody
Run Web Server Administration Server as [root]: root
Web Server Admin Server User Name [admin]: admin
Web Server Admin Server Password: \*\*\*\*\*\*\*\*
Web Server Admin Server Password (again): \*\*\*\*\*\*\*\*
Default Language: 5 (← Japanese を選択)

Extracting Server Core...
Extracting Java Development Kit...
Extracting Language Packs...
Extracting Upgrade Files...

Server Core installed successfully.
Java Support installed successfully.
I18N Support installed successfully.

Press Return to continue...

Go to /opt/SUNWwbsvr and type startconsole to begin
managing your servers.
# 

インストールが完了したので, Web Server インスタンスを起動してみる.

# cd /opt/SUNWwbsvr/
# ./https-sw-23/start
Sun ONE Web Server 6.1SP6 B05/07/2006 12:33
info: CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.4.2_04] from [Sun Microsystems Inc.]
info: WEB0100: Loading web module in virtual server [https-sw-23] at [/search]
info: HTTP3072: [LS ls1] http://sw-23:80 ready to accept requests
startup: server started successfully
# ./https-admserv/start
Sun ONE Web Server 6.1SP6 B05/07/2006 12:33
info: CORE3016: daemon is running as super-user
info: CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.4.2_04] from [Sun Microsystems Inc.]
info: WEB0100: Loading web module in virtual server [vs-admin] at [/admin-app]
info: HTTP3072: [LS ls1] http://sw-23:8888 ready to accept requests
startup: server started successfully
#

あとは Web ブラウザで Web Server にアクセスし (今回は http://sw-23.japan.sun.com), 以下のようなページが出てくればオッケー.

Web Server Home

次回はこの Web Server にポリシー・エージェントをインストールしてみる.

Thursday Sep 07, 2006

OpenSSO のナイトリー・ビルドをインストールしてみた


6/6/08 追記: このエントリに書かれている内容は古くなっています. OpenSSO のインストールについては、かわりに以下をご参照ください。


Get OpenSSO Now!
オープンソースの SSO 実装である OpenSSO のナイトリー・ビルドが順調に続いているようなので, ためしに現時点の最新ビルドをインストールしてみた.

まず OpenSSO は Java EE Web アプリケーションなので, 実行環境としてなにかしらの Java EE Web コンテナ (アプリケーション・サーバ) が必要となる. 個人的には使い慣れてる Sun Java System Web Server もしくは Sun Java System Application Server でいきたいところだけど, 諸事情あって今回は手元の Solaris 10 box にはじめから入ってた Apache Tomcat/4.0.5 を使うことにした.

$ uname -a
SunOS sw-21 5.10 Generic sun4u sparc SUNW,Ultra-250
$ pwd
/var/apache/tomcat
$ ls
conf/     logs/     webapps/  work/

OpenSSO の最新ビルドのダウンロード. 何種類か置いてあるけど, ここでは一番下の openssodemo.war をゲット. このアーカイブには SSO / アクセス制御をデモするためのいくつかのプログラムと設定が含まれている. とはいえ現時点でのビルドに入ってるのはポリシー判断の動きを確認する JSP と Java クラス (と web.xml の追加設定) 程度なので, 実際には opensso.war パッケージとほとんど違いはなかったりする...

OpenSSO nightly builds download

ダウンロードした openssodemo.war を, Tomcat の webapps ディレクトリに展開. 今回は手抜きで実行ユーザを nobody にしてしまってることに注意.

# pwd
/var/apache/tomcat/webapps
# mkdir opensso
# cd opensso
# jar xf /tmp/openssodemo.war
# chown -R nobody:nobody .

これで次はいよいよ Tomcat の起動. ...なんだけど, その前にやっておくことがひとつ. OpenSSO は初期設定の過程で AMConfig_<アプリケーション・サーバのインスタンス名>_opensso_ という名前のファイルを実行ユーザのホーム・ディレクトリに作成しようとするので, このファイルをきちんと生成できるように下準備しておく必要がある. 本来は OpenSSO on Tomcat 用の実行ユーザをちゃんと定義しておけばなにも問題はないんだけど, 今回は手抜きで nobody にしているので, この nobody のホーム・ディレクトリである / (ルート) に前述のファイルが書き込めるようにしておかなくてはならない. これを実現する方法はいろいろあるけど, ここではズルを重ねて以下のようにした.

# touch /AMConfig_localhost_opensso_
# chown nobody:nobody /AMConfig_localhost_opensso_
# ls -l /AMConfig_localhost_opensso_
-rw-r--r--   1 nobody   nobody         0  9月  7日  15:39 /AMConfig_localhost_opensso_

この状態で Tomcat を起動. Solaris 10 にもとからついてたものなので, 立ち上げかたはこんな感じ↓

# /etc/init.d/apache start

ふたたび Web ブラウザを使って, OpenSSO をインストールした先にアクセスしてみる. 本環境では <http://sw-21.japan.sun.com:28080/opensso>. すると初期設定のページ (configurator.jsp) にリダイレクトされるので, いくつか項目を追加・修正する.

OpenSSO initial configuration

項目名 備考
Super Administrator Password password OpenSSO の管理ユーザである amadmin のパスワード
Data Base Dir /var/tmp/opensso OpenSSO の設定やログの保存場所. 既定では /opensso となっていたが, 実行ユーザが nobody なので適当なところに変更
Cookie Doamin .japan.sun.com OpenSSO がブラウザにセットするトークンのドメイン. 接頭の 「.」 を忘れないように注意

Configure をクリックすると, 入力された内容に基づいて初期設定が準備される. 今回は Sun Enterprise 250 という旧式のサーバにイン���トールしたので, この段階でちょっと待たされたけど, 最近のハードウェアだったらすぐ終わるはず...

OpenSSO initial configuration completed

初期設定が完了すると, OpenSSO のログイン・ページにリダイレクトされる. User Name には管理ユーザの ID である amadmin, パスワードはさきほど指定した値を入力し, Log In をクリック.

OpenSSO login

これで以下のようなページが出力されればオッケー.

OpenSSO console

OpenSSO をインストールしたはずが, どう見ても Sun Java System Access Manager です. 本当にありがとうございました. ...というのは置いといて, 機会があれば, 次回はこの OpenSSO によるアクセス保護の設定について簡単にまとめてみたい.

About

tkudo

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today