Sun Java System Access Manager 2005Q4 および Sun Java System Access Manager Policy Agent 2.2 を使用したシングルサインオン執筆者: Manikandan Chandrasekaran、作成: 2006 年 8 月 概要: このクイックスタートガイドは、Sun Java Enterprise System ソフトウェア上で Web アプリケーションへのシングルサインオン (SSO) を設定できるように設計されています。 免責事項: この記事は、ここで言及するさまざまな Sun 製品の包括的なガイドとなることを目的としているわけではありません。どのような情報についても、http://docs.sun.com に掲載されている公式マニュアルが最終的かつ信頼すべき典拠となります。 Web アプリケーションを開発する際の基本的なセキュリティー要件の 1 つは、認証と承認を行うことです。アプリケーションの種類が増え、複雑さが増すにつれて、認証と承認を実現する方法もまた一層多様化しています。そのため、複数のアプリケーションにアクセスできるユーザーは、複数の識別情報を持つことになりかねません。アプリケーションが単一のユーザーリポジトリを共有する場合も、ユーザー資格がアプリケーション間で伝達されていないため、やはり再ログインが必要になります。その結果、アプリケーション間の SSO は、企業内できわめて重視されるようになってきました。 Sun Java System Access Manager は、アプリケーションのユーザー認証、承認、および SSO を提供する Sun Java Enterprise System ミドルウェアスタックの基幹製品です。Sun Java System Access Manager では、Web アプリケーションを保護するためにエージェントベースのアプローチを使用します。Sun Java System Access Manager Policy Agent ソフトウェアセットは、複数のエージェントで構成されています。個々のエージェントは、Web エージェントと Java 2 Platform, Enterprise Edition (J2EE) エージェントという 2 つのカテゴリに、明確に分類されます。Web エージェントは Web サーバーやプロキシサーバー上のコンテンツを保護します。これに対して J2EE エージェントは、アプリケーションサーバーやポータルサーバーなど、さまざまな配備コンテナ上のコンテンツを保護します。 エージェントは、Web サーバーやアプリケーションサーバーのような、そのエージェントの保護対象である配備されたコンテナで稼働中の保護対象リソースに対する要求を遮断します。このような処理は、コンテナ全体に、または特定アプリケーションに対して設定することができます。エージェントは、cookie に埋め込まれるセッショントークンをチェックし、SSO トークンの妥当性検査を行います。次に、エージェントは、その保護対象リソースへのアクセス権の付与または拒否のいずれかを求める要求を Java System Access Manager Policy Service に対して送信します。これを受けて、その要求の認否に関するポリシーが決定されます。アーキテクチャーの詳細については、Sun Java System Access Manager のマニュアルおよび『Sun Java System Access Manager Policy Agent User's Guide』を参照してください。 Sun Java System Access Manager に使用可能なエージェントについては、「役に立つリンク」セクションのリストを参照してください。 最新版の Sun Java System Access Manager Policy Agent 2.2 には、新機能が多数追加されています (「役に立つリンク」の 『Sun Java System Access Manager Policy Agent 2.2 Release Notes』ドキュメントを参照)。この記事は、新機能のごく一部について具体的に説明し、開発者が第一歩として Web アプリケーション間で単純な SSO をすばやく設定できるようにすることを目的としています。Java System Access Manager とエージェントのその他の機能は、そのあとで使用することができます。このドキュメントでは、次の機能について具体的に説明します。
図 1: SSO 対応アプリケーション このダイアグラムは、Web サーバーとアプリケーションサーバーのように種類の異なるコンテナ間、および Sun Microsystems と Apache Software Foundation のように異なるサプライヤの製品間の SSO について具体的に説明するためにここで用いる単純なテストのシナリオの 1 つを示しています。 SSO を実現するためには、次に示す手順を実行してください。
手順 1: Sun Java Enterprise System 2005Q4 をインストールするSun Java System Application Server または Sun Java System Web Server のようなサポート対象 Web コンテナに Java System Access Manager 2005Q4 をインストールします。インストールの際に使用されるデータが次の表に示すようになっていることを確認してください。
注: この例では、
手順 2: Sun Java System Web Server 2005Q4(6.1) に Sun Web Server Policy Agent 2.2 をインストールし、構成します。Web サーバーインスタンスの作成
Java System Web Server の管理サーバーにログインし、たとえば Java System Access Manager Policy Agent のインストール
Web サーバーインスタンスのテスト
Web サーバーへのアクセスに関するポリシーの作成 1. 2. このポリシーに、
図 2: 新しい URL ポリシーを作成する 3. Access Manager ロール
図 3: 「Search」を実行し、サブジェクトとして Access Manager ロール Employee を追加する 4. 「Finish」をクリックして保存します。 注: Access Manager と、Web サーバーを保護するエージェントが同一サーバー上で稼働している場合、Microsoft Internet Explorer では、ユーザーのリダイレクト中にポート番号を差別化する際に問題が生じます。これを修正するには、次のプロパティーを設定する必要があります。エージェントと Access Manager が異なるサーバー上で稼働している場合、あるいは Mozilla または Firefox ブラウザを使用してアクセスしている場合は、次の変更を行う必要はありません。 1. デフォルトのエージェントプロパティーの場所にある次のファイルをバックアップします。 /etc/opt/SUNWam/agents/es6/config/_jes4_opt_SUNWwbsvr_https-ws.india.sun.com/AMAgent.properties
図 4: Generic Sun
このプロパティーファイルで
2. Web エージェントのカスタムエラーページを構成することができます。 # アクセス拒否ページの URL。値の指定がない場合、 # エージェントは 403 (Forbidden) の HTTP ステータスを返します。 # com.sun.am.policy.agents.config.accessdenied.url =http://ws.india.sun.com/error.html
3.
手順 3: Sun Java System Application Server 2005Q4 (8.1) に Sun Java System Application Server Policy Agent 2.2 をインストールし、構成する1. Sun Java System Application Server 8.2 用の Access Manager Policy Agent 2.2 をダウンロードします (「役に立つリンク」を参照)。ディレクトリを作成し、ダウンロードしたエージェントを解凍します。 2. Access Manager でエージェントプロファイルを作成します。
3. Application Server 管理コンソールにログインして、新しいアプリケーションサーバーインスタンスを作成します。これを
4. Application Server ドメイン管理サーバーとアプリケーションサーバーインスタンス 5. エージェントのインストールを開始します。 ./agentadmin -install
注: 6. エージェントをインストールする際に正しいデータを入力します。エージェントサマリーシートには次のような例があります。 Application Server Config Directory : /jes4/var/opt/SUNWappserver/domains/domain1/config Application Server Instance name : test1 Access Manager Services Host : am.india.sun.com Access Manager Services Port : 80 Access Manager Services Protocol : http Access Manager Services Deployment URI : /amserver Agent Host name : sunas.india.sun.com Domain Administration Server Host is remote : false Application Server Instance Port number: 80 Protocol for Application Server instance : http Deployment URI for the Agent Application : /agentapp Encryption Key : GYI3egsTP5FeDHtxf6WuBzj9nQdG2Y Agent Profile name : TestProfile Agent Profile Password file name : /jes4/agentpassword Agent installed on the DAS host for a remote instance : false Agent and Access Manager on same application server instance : false (注: Access Manager Policy Agent と Access Manager が同一のサーバーにインストールされている場合、このプロパティーが true になっているはずです)
7. Application Server ドメインサーバーとアプリケーションサーバーインスタンス
8.
9. Access Manager J2EE エージェントに付属するサンプル J2EE テストアプリケーション このサンプルアプリケーションは、SSO のテストに使用されます。
10. 独自の J2EE アプリケーションを使用する場合は、
11.
12. アプリケーションサーバーインスタンス
13. 誰何されることなく 手順 4: Apache Tomcat 5.5 に Sun Java System Application Server Policy Agent 2.2 をインストールし、構成する
注: Apache Tomcat 5.5 のオペレーションはすべて、非ルートユーザー
1.
2. 非ルートユーザー
<user name="manager" password="manager" roles="standard,manager" /> <user name="admin" password="admin" roles="admin" />
サンプルファイルを示します。 <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="standard"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="adminuser" password="admin123" roles="admin"/> <user username="manager" password="manager" roles="standard,manager"/> <user username="admin" password="admin" roles="admin"/> </tomcat-users>
Access Manager で
3. Tomcat を起動し、ユーザー ID
4. Apache Tomcat 5.5 Servlet/JavaServer Pages (JSP) Container 用の Sun Java System Access Manager Policy Agent 2.2 をダウンロードします (「役に立つリンク」を参照)。ディレクトリ 5. 次の手順に従って、Access Manager でエージェントプロファイルを作成します。
•
注: Access Manager 6.3 を使用している場合、コンソールへのアクセスは
• 「Access control」をクリックし、「Realm」を選択します。「Subjects」をクリックし、続いて「Agents」をクリックします。新しいエージェント (
• ファイル 6. Tomcat サーバーをシャットダウンします。
7. 「手順 2」で作成したディレクトリからエージェントのインストール Tomcat Server Config Directory : /export/home/tomcat/apache-tomcat-5.5.15/conf Access Manager Services Host : am.india.sun.com Access Manager Services Port : 80 Access Manager Services Protocol : http Access Manager Services Deployment URI : /amserver Agent Host name : tomcat.india.sun.com $CATALINA_HOME environment variable : /export/home/tomcat/apache-tomcat-5.5.15 Tomcat global web.xml filter install : true Application Server Instance Port number : 5555 Protocol for Application Server instance : http Deployment URI for the Agent Application : /agentapp Encryption Key : KEQBXNuosQ5ntb5+lmpo2L1BM9OIK7 Agent Profile name : TomcatProfile Agent Profile Password file name : /export/home/tomcat/agentpassword
8.
9.
10. 注: ロールおよびユーザーは Sun Java System Application Server に Access Manager Policy Agent をインストールする際に作成済みのため、Tomcat アプリケーション関連の URL についてポリシーを作成する際に、これをやり直す必要はなく、再利用することができます。
11. com.sun.identity.agents.config.filter.mode[admin]=ALL com.sun.identity.agents.config.filter.mode[manager]=ALL com.sun.identity.agents.config.filter.mode[host-manager]=ALL com.sun.identity.agents.config.filter.mode = J2EE_POLICY
12. Tomcat の admin および manager アプリケーションも Access Manager Policy Agent の保護対象となるので、『Conditional Post-Installation Steps for J2EE Agents in Policy Agent 2.2』に記載されている手順に従います。 id=manager,ou=role,dc=india,dc=sun,dc=com id=admin,ou=role,dc=india,dc=sun,dc=com
注: 変更は Access Manager のレルムに従って行なってください。Access Manager が 13. Apache Tomcat サーバーを起動し、次のロケーションで稼働している Tomcat アプリケーションにアクセスします。
SSO のテスト
Access Manager に
次のアクセス制御マトリックスに従って、さまざまなアプリケーションに対する SSO をテストします。
Access Manager Policy Agent に付属する まとめこの記事では、Sun Java System Access Manager Policy Agent および Sun Java System Access Manager を使用する異なる Web コンテナ間での SSO の設定と構成について具体的に説明してきました。Sun Java System Access Manager と SSO の適切な出発点として役立ててください。ここから Java System Access Manager Policy Agent および Java System Access Manager のより高度な機能へと展開していくことができます。 トラブルシューティングのヒント
1. ポリシーエージェントのインストールおよび構成後、保護対象の Apache Tomcat ホームページを閲覧できなくなった場合、
2. 変更前に、
3. 役に立つリンク
Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License. |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||