... h1. OpenSSO とポリシーエージェントに関するスターティングガイド
原文:2009年2月24日時点の [Getting Started with OpenSSO and Policy Agents | getstarted]
{note} このページおよびリンク先のページでは、概ね、原文の内容をそのまま訳しつつ、一部、原文の内容が古い(手順例で使用しているビルドが古いなど)場合などは、適宜最新の情報に書き直しているものもあります。逆に、原文が新しく更新されていても、それに完全に追従できていない場合もあります。 なお、このページおよびリンク先のページを含めて、docs.sun.com 上で掲載されているコンテンツ以外は、公式のマニュアルではありませんので、あくまでも参考情報としてご覧になってください。 {note}
{info} Sun OpenSSO Enterprise 8.0 の公式のマニュアルは、docs.sun.com の以下のサイトでご覧になれます。 英語版:[http://docs.sun.com/app/docs/coll/1767.1] 日本語版:[http://docs.sun.com/app/docs/coll/1905.1] (注:日本語に訳されているのはリリースノートのみです。) {info}
h3. 0-a. 完全修飾ドメイン名(FQDN)でホスト名を設定する
Access Manager、OpenSSO およびポリシーエージェントをインストールする際には、インストールするマシンのホスト名について、完全修飾ドメイン名(FQDN: Fully Qualified Domain Name)での指定が必要となります。 ホスト名を "localhost" や "129.777.777.123" のような IP アドレスで指定すると、インストール時や、インストール後の設定時、あるいは実際に使用する際に問題が起こるおそれがあります。 例えば、ホスト名は、my.test.domain.com のような完全修飾ドメイン名で指定し、エージェントをインストールする際に指定する URL の値は、http ://my.test.domain.com:6948/opensso のように指定します。 |
インストールするマシンのホスト名のエイリアス(別名)を設定することもできます。設定方法は簡単です。 |
| 詳細は[こちらのFAQページ|
http://wikis.sun.com/display/OpenSSO/J2EEAgentTrouble_ja#J2EEAgentTrouble_ja-fqdn](翻訳予定)を参照してください。 |
h3. 0-b. アプリケーションサーバーのインスタンス(ドメイン)を 2 つ作成する |
... アプリケーションサーバーでは、個別のインスタンス(ドメインとも呼ばれる)を作成することができます。 各ドメインは固有のポートを持ち、各ドメイン上にアプリケーションを配備することができます。 従って、opensso.war を 1 つめのドメインに配備して、2 つめのドメインに OpenSSO のエージェントをインストールすることができます。2 つめのドメインにはエージェントによって保護される対象となるアプリケーションも配備できます。
opensso.war はセキュリティサービスを提供する web アプリケーションです。opensso.war は、Java web アプリケーションとしてアプリケーションサーバーのドメイン上に配備されます。次に、保護したい web アプリケーションがある場合には、ポリシーエージェントをダウンロードしてアプリケーションサーバーの別のドメインにインストールできます。実行時には、エージェントは OpenSSO サーバーと連携をとり、セキュリティを提供する手助けをします。
GlassFish ではインストール時にあらかじめ domain1 が作成され、デフォルトではそのポートは 8080 となります。 インスタンスの URL は、たとえばホスト名が my.test.domain.com であれば、http://my.test.domain.name:8080 となります。ホスト名には localhost ではなくて、my.test.domain.name のように FQDN 名を使うことを覚えておいてください。 GF(GlassFish) ではすでに domain1 が用意されているので、手順 2 で opensso.war を配備する際には domain1 を使うことにします。
エージェントとサンプルアプリケーションをインストールして配備するには、別のドメインが必要となります。GF でドメインを作成するのは簡単な手順で行えます。アプリケーションを配備する際に個別にドメインを作成することは別の観点からも利点があります。なぜなら、もしエージェントのインストールに失敗した場合には、新たに別のドメインを作成してそこにインストールし直せばよいからです。 GF でドメインを作成するには次のようなコマンドを実行します。
asadmin create-domain --portbase 6868 domain2
管理ユーザー名とパスワードの入力が求められるので、例えば管理ユーザー名は admin と入力し、パスワードは adminadmin と入力します。 コマンドの正確な使い方は GF のバージョンによって異なるかもしれませんが、他のフラグやオプションを追加したい場合には、通常エラーメッセージが正しい使い方を提示してくれます。 上記のコマンドは、ドメインを作成し、オプションで指定した数字をもとにポートを割り振ります、実行時にどのポートが割り当てられたかの情報が出力されます。 上記の例では、6948 番が http ポート番号としてわりあてられるので、このドメイン上のインスタンス URL は、 http://my.test.domain.com:6948 となります。
h3. 1. OpenSSO サーバーをダウンロードする
opensso.war はセキュリティサービスを提供する web アプリケーションです。この Java ベースの web アプリケーションを web コンテナに配備することができます。配備した web アプリケーションを保護したい場合には、ポリシーエージェントをダウンロードして使用できます。[どのバージョンをダウンロードすればよいかを決めるにあたっては、このページを見ると参考になるかもしれません。| http://wikis.sun.com/display/OpenSSO/Download] web コンテナについて特別なこだわりなどがなければ、[GlassFish | https://glassfish.dev.java.net/ja] を使うことをお奨めします。なぜなら、Glassfish 上での動作が非常に安定しており、またこの手引き書も私が実際に Glassfish 上に配備した環境を元にして書いているからです。
h3. 2. opensso.war をインストールする
インストール手順については以下の記事が参考になります。(手順ごとに、画面のスナップショットが付いていて、非常にわかりやすいです。) [OpenSolaris への GlassFish と OpenSSO のインストール・設定 | http://wikis.sun.com/pages/viewpage.action?pageId=32604295]
インストールや設定に関する詳細情報を知りたい場合は、英語版のマニュアル [Sun OpenSSO Enterprise 8.0 Installation and Configuration Guide | http://docs.sun.com/app/docs/doc/820-3320] を参照してください。
h3. 3. エージェントを選択して、インストールする
次に、Web コンテナ上でサンプルアプリケーションを動かして、それをポリシーエージェントで保護することを考えてみます。
h5. 3-a. エージェントを選択して、ダウンロードする
まずはじめに保護の対象となるサンプルアプリケーションが配備されている(もしくは配備する予定の) Web コンテナ用のエージェントを選んで、ダウンロードします。 エージェントの最新バージョン 3.0 は、以下のページからダウンロードできます。 [https://opensso.dev.java.net/public/use/agents.html]
Sun OpenSSO Enterprise 8.0 向けにテスト済みのエージェントは、[こちら|https://opensso.dev.java.net/public/use/agents.html#EnterpriseAgent]から、ダウンロードできます。 もし、お望みの Web コンテナ用のエージェントがない場合は、[ナイトリービルド版のエージェント|https://opensso.dev.java.net/public/use/agents.html#NightlyAgent] に該当するものがあるかもしれません。
h5. 3-b. エージェントをインストールする
エージェントをダウンロードしたら、ダウンロードした zip 形式のファイルを unzip で展開し、インストールを行います。
エージェントのインストールとインストール後に必要な設定手順については、[docs.sun.com|http://docs.sun.com/app/docs/coll/1767.1] にある Policy Agent 3.0 Guide を参照してください。例えば、Glassfish 用のポリシーエージェントについては、インストール手順が [Installing the Application Server 8.1/8.2/9.0/9.1 Agent|http://docs.sun.com/app/docs/doc/820-4578/gfxjv?a=view] に、インストール後の設定手順が [Post-Installation Tasks for the Application Server 8.1/8.2/9.0/9.1 Agent|http://docs.sun.com/app/docs/doc/820-4578/gfxkv?a=view] に書かれています。(すべて英語です。) これらはいずれも英語で書かれたドキュメントです。 非公式マニュアルですが日本語で書かれた手順書をお読みになりたい場合は、以下のページを参照してください。
* [Glassfish 用のポリシーエージェントのインストール手順|glassfishagentinstall_ja] * [Hanaki's weblog - 【設定編】J2EE Agent 3.0 を用いて Weblogic に配備したサンプルアプリケーションをプロテクトする|http://blogs.sun.com/hanaki/entry/j2ee_agent_3_0_%E3%82%92%E7%94%A8%E3%81%84%E3%81%A6]
h5. 3-c. リダイレクトに関する問題を回避する
OpenSSO サーバーとエージェント間でのリダイレクトの問題が不定期的に発生することがあるため、OpenSSO サーバーの設定を次のようにすることをお奨めします。
|
com.iplanet.am.cookie.encode=true
|
| 詳細は、[こちらの FAQ ページ |
http://wikis.sun.com/display/OpenSSO/J2EEAgentTrouble_ja#J2EEAgentTrouble_ja-redirecterrors](翻訳予定)を参照してください。 |
h3. 4. エージェントのプロファイルを作成する |
... ポリシーエージェントを動作させるには、OpenSSO サーバー上にエージェントのプロファイルを作成する必要があります。
エージェントのプロファイルの設定例については、[Hanaki's weblog - ssoadm コマンドを使ってポリシーエージェント 3.0 のプロファイルを OpenSSO に設定する方法|http://blogs.sun.com/hanaki/entry/ssoadm_%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88_3_0_%E3%81%AE%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92]が参考になるかもしれません。
プロファイルは、OpenSSO のコンソール上でも作成することができます。詳しくは、[docs.sun.com|http://docs.sun.com/app/docs/coll/1767.1] にある英語版のマニュアルを参照してください。例えば、[このページ|http://docs.sun.com/app/docs/doc/820-4578/gfxjk?a=view]に、Glassfish のエージェント用のプロファイルの作成方法が書かれています。
h3. 5. ミニアプリケーションをインストールする これは、2 つの JSP ページからなる非常にシンプルな Java web アプリケーションで、OpenSSO の基本機能についてデモを通して学ぶことが出来ます。また、実際にセットアップして使ってみることで、適切にセットアップされたかを確かめることができ、それによってより高度な設定に進む上での自信をつかむことができます。また、何か問題がある場合には先に進む前にそれを解決することがでいます。 以下の記事を読んで、実際にミニアプリケーションをダウンロードしてセットアップしてみてください。この記事では、セットアップの詳細手順についてスクリーンショットとともに記述されています。 [Protecting Java EE Applications With OpenSSO Policy Agents, Part 1: Basic Steps |http://developers.sun.com/identity/reference/techart/policyagents.html](翻訳予定) これをとおして次のことを学べます: ログイン、認証、web アプリケーションのページの保護の簡単な例。OpenSSO 上でのユーザーの作成、OpenSSO コンソールの UI 全般の使い方に慣れる、など。
h3. 6 Part-2 を試してみる [Protecting Java EE Applications With OpenSSO Policy Agents, Part 2: Same-Domain SSO |http://developers.sun.com/identity/reference/techart/policyagents2.html](翻訳予定) この記事では、part 1 で使ったミニアプリケーションをそのまま使うことを前提としています。ここでは、いくつかのページを誰もがアクセスできるホームページ的役割にさせるにはどのように設定するとよいかについて説明しています。さらに、OpenSSO を使うといかに簡単にシングルサインオンを実現できるかをデモを通じて学べます。1 つのアプリケーションにサインオンすると、他のアプリケーションへは自動的に(再度サインオンすることなく)アクセスできることを体感してください。Part 2 でもスクリーンショットともに必要な手順の説明が書かれています。
h3. 7. ポリシーエージェント付属のサンプルアプリケーション
ポリシーエージェントには、Web アプリケーションをどのように配備して、セキュアなアプリケーションにするかを理解するのに役立つ、README ファイル付きのサンプルアプリケーションが付属しています。 手始めの作業としては、このサンプルファイルを試してみるのが一番です。サンプルで理解を深めた上で、自分自身でアプリケーションを作成して、OpenSSO と組み合わせてさらに多くのことを試すことができるようになります。
サンプルアプリケーションの設定例については、[こちらのページ | agentsample_ja]を参照してください。
h3. 8. シンプルなシングルサインオン(SSO) を試してみる
エージェントは、主に cookie をベースとしたシングルサインオンにフォーカスしています。連携(フェデレーション)ベースのシングルサインオンおよび SAML に関しては、OpenSSO の公式マニュアルを参照していただくとともに、以下の日本語で書かれた記事も参考にしてみてください。 [アイデンティティ管理の基礎と応用 (10):OpenSSO の SAML 機能を試してみる (1/2) |http://sdc.sun.co.jp/javasystem/techtopics/identity/200803.html] [アイデンティティ管理の基礎と応用 (11):OpenSSO の SAML 機能を試してみる (2/2) |http://sdc.sun.co.jp/javasystem/techtopics/identity/200804.html]
ここでは、cookie ベースのシングルサインオンについてとりあげます。 例えば、ある会社の複数の web アプリケーションが認証に関して同じ cookie を使う場合を考えます。 ユーザーが 1 つのアプリケーションにログインすると、cookie が確立されて、cookie を共有する他のアプリケーションには再度ログインすることなくアクセスすることができます。 ポリシーエージェントを用いるとシングルサインオンを簡単に設定できます。
J2EE エージェントを用いた、ドメイン内に配備された複数の web アプリケーション間のシングルサインオンの設定手順例については、[このページ|simplessoj2ee_ja]を参照してください。
h3. 9. さらに他の機能を試してみる
* エージェントを用いて、CDSSO(Cross Domain Single SignOn)を実現することもできます。CDSSO の設定を有効にする方法については、マニュアルを参照してください。 例えば、次のマニュアルで参照できます。 [Sun OpenSSO Enterprise Policy Agent 3.0 User's Guide for Web Agents, Configuring CDSSO|http://docs.sun.com/app/docs/doc/820-5816/6nh6ggbk6?l=Ja&a=view#indexterm-63] [Sun Java System Access Manager Policy Agent 2.2 Guide for Apache HTTP Server 2.2, Configuring Cross Domain Single Sign-on (CDSSO)|http://docs.sun.com/app/docs/doc/820-3288/aeabl?l=Ja&a=view]
|