(Translate to English)
Thursday Feb 21, 2008
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.
(Translate to English)
Friday Sep 22, 2006
ここまで
と作業を進めてきたが,
いよいよアクセス制御ポリシーの設定と動作確認をしてみる.
まず, 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 サービスをどうぞお試しくださいませ.
(Translate to English)
Thursday Sep 21, 2006
前回インストールしたポリシー・エージェントの情報を 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
のアクセス保護がちゃんと機能するかどうかの確認を行なってみる.
(Translate to English)
Wednesday Sep 20, 2006
つづいて, 前回インストールした Web Server
にポリシー・エージェントをインストールしてみる.
まずは Web Server
と同様の手順で,
Sun Java System Access Manager Policy Agent 2.2 for Sun Java System Web Server 6.1
(以下ポリシー・エージェント)
のインストール・パッケージをダウンロード.
今回は Policy Agent for Sun Java System Web Server 6.1, English
(SJSWebServer_6.1_agent_2.2_solaris_sparc.tar.gz) をダウンロード.
展開後のパッケージはこんな感じ:
# 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 へアクセスすると,
どのような挙動を示すだろうか?
- そのままトップ・ページのコンテンツが表示される
- アクセスを拒否される
- 認証を求められる
回答は 3. 正確には,
http://sw-23.japan.sun.com に接続すると,
Web Server に入っているポリシー・エージェントが Web ブラウザを
OpenSSO (http://sw-21.japan.sun.com:28080/opensso) にリダイレクトする.
そしてその OpenSSO が, ログイン・ページを生成・表示する.
ここで管理者の ID とパスワード, すなわち amadmin / password
を入力すると, ひとまず認証は成功する. しかしそのあと出てくるページ
(Web Server, ここでは http://sw-23.japan.sun.com) は
Forbidden...
これはなぜかというと, まだ OpenSSO 側にやるべきことが最低ふたつあるから:
- Web Server にインストールしたポリシー・エージェントの登録
- Web Server へのアクセスに関するポリシーの定義
ということで, 次回はこれらの設定を施してみる.
(Translate to English)
Tuesday Sep 19, 2006
先日インストールした 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 のソフトウェアは無償提供となっていることに注目.
ログイン・ページ.
左のボックスに Sun Online Account のユーザ名とパスワードを入力し,
Login をクリック.
もし Sun Online Account をまだ持っていない場合には, 右の Register
からアカウントを作成する必要がある.
インストール・パッケージのダウンロード・ページ.
License Agreement を確認後 Accept を選択し,
使用するプラットフォーム向けのパッケージを選択.
今回は Sun Enterprise 250 上の
Solaris 10 にインストールするつもりなので,
Sun Java System Web Server for Solaris SPARC, Multi-language
(sun-webserver61-sparc-intl.tar.gz) をダウンロードした.
ダウンロードしたパッケージを展開するとこんな感じ:
# 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 にポリシー・エージェントをインストールしてみる.
(Translate to English)
Thursday Sep 07, 2006
オープンソースの 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
パッケージとほとんど違いはなかったりする...
ダウンロードした 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) にリダイレクトされるので,
いくつか項目を追加・修正する.
| 項目名 |
値 |
備考 |
| 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 のログイン・ページにリダイレクトされる.
User Name には管理ユーザの ID である amadmin,
パスワードはさきほど指定した値を入力し, Log In をクリック.
これで以下のようなページが出力されればオッケー.
OpenSSO をインストールしたはずが,
どう見ても
Sun Java System Access Manager
です.
本当にありがとうございました.
...というのは置いといて,
機会があれば,
次回はこの OpenSSO によるアクセス保護の設定について簡単にまとめてみたい.