![]() |
Sun ONE Identity Server ポリシーエージェントガイド |
この章では、Web サーバおよび Web プロキシサーバ向けの Sun ONE Identity Server ポリシーエージェントについて、およびインストールプログラムに進む前に理解しておく必要のあるいくつかの概念について、その概要を説明します。この章にある情報は、Solaris、Windows、Linux の各オペレーティングシステムに共通です。
次のトピックがあります。
ポリシーエージェントの動作
Sun ONE Identity Server のポリシーエージェントは、Web サーバと Web プロキシサーバを不正侵入から保護します。このエージェントは、管理者が設定したポリシーに基づいてサービスおよび Web リソースへのアクセスを制御します。
ポリシーエージェントの使用
ポリシーエージェントは、さまざまな目的で Web サーバにインストールされます。次に 3 つの例を示します。
- 人事部門のサーバ上のエージェントは、人事担当者以外の人が機密の給与情報やその他の機密データを見ることを防止します。
- 運用部門の Web サーバ上のエージェントは、ネットワーク管理者だけにネットワーク状態に関するポートの閲覧やネットワーク管理記録の変更を許可します。
- エンジニアリング部門の Web サーバ上のエージェントは、多くの社内組織の中で、認定を受けた人に研究開発情報の公開や共有を許可します。同時に、エージェントは外部の提携業者が社外秘情報にアクセスするのを制限します。
これらの状況ごとに、システム管理者は Web サーバ上のコンテンツへのユーザのアクセスを許可または拒否するポリシーを設定する必要があります。ポリシーの設定およびユーザへのロールとポリシーの割り当てについては、『Sun ONE Identity Server Administration Guide』を参照してください。
エージェントと Sun ONE Identity Server 6.0 の対話
図 1-1 は、リモート Web サーバにインストールされたポリシーエージェントがどのように Sun ONE Identity Server と対話するかを示しています。保護されている Web サーバ上の特定の URL にユーザがブラウザでアクセスを試みると、次の対話が行われます。
- エージェントが要求を受け取ると、既存の認証資格と比較検証します。既存の認証レベルを満たしていない場合は、適切な Sun ONE Identity Server 認証サービスがログインページを表示します。ログインページでは、ユーザ名やパスワードなどの資格情報をユーザに要求します。
- 認証サービスが、ユーザの資格が有効であるかを確認します。たとえば、デフォルトの LDAP 認証サービスの場合は、ユーザ名とパスワードが Sun ONE Directory Server に保存されているかを確認します。RADIUS モジュールや証明書モジュールなど、ほかの認証モジュールを使用することもできます。その場合、Directory Server は資格を検証しませんが、適切な認証モジュールが資格の検証を行います。
- ユーザの資格が正しく認証されると、ポリシーエージェントは、ユーザに割り当てられているすべてのロールを調べます。
- ユーザに割り当てられたすべてのポリシーの集合に基づいて、個々のユーザは URL へのアクセスを許可または拒否されます。
図 1-1    エージェントと Sun ONE Identity Server の対話
![]()
サポートされるサーバ
Sun ONE Identity Server ポリシーエージェントは、Solaris 8 オペレーティングシステム上で稼動する次のサーバをサポートします。
- Sun ONE Web Server 6.0 SPx
- Sun ONE Web Server 4.1 SP8
- Sun ONE Web Proxy Server 3.6 (リバースプロキシモード)
- Apache 1.3.26
Sun ONE Identity Server ポリシーエージェントは、Solaris 9 オペレーティングシステム上で稼動する次のサーバをサポートします。
- Sun ONE Web Server 6.0 SPx
- Apache 1.3.26
Sun ONE Identity Server ポリシーエージェントは、Red Hat Linux 7.2 オペレーティングシステム上で稼動する次のサーバをサポートします。
- Apache 1.3.26
Sun ONE Identity Server ポリシーエージェントは、Windows 2000 オペレーティングシステム上で稼動する次のサーバをサポートします。
- Microsoft IIS 5.0
- Sun ONE Web Server 6.0 SPx
Sun ONE Identity Server ポリシーエージェントは、Windows NT 4.0 オペレーティングシステム上で稼動する次のサーバをサポートします。
- Microsoft IIS 4.0
インストールを始める前に
インストールプログラムを開始する前によく理解しておく必要のある問題と概念を次に示します。
- JRE (Java Runtime Environment) 1.3.1 要件
- Sun ONE Identity Server サービスを実行する Web サーバとリモート Web サーバ
- 同一コンピュータシステム上の複数の Web サーバインスタンスのためのエージェントの設定
- Sun ONE Identity Server エージェントのフェイルオーバ機能の提供
- エージェントキャッシュの更新
- グローバル不適用 URL リスト
- グローバル不適用 IP アドレスリスト
- ポリシーを適用しない認証だけの適用
- HTTP ヘッダーを介した LDAP ユーザ属性の転送
- AMAgent.properties ファイル
- 完全指定ドメイン名の設定
- インストールが正常に行われたことの確認
JRE (Java Runtime Environment) 1.3.1 要件
グラフィカルユーザインタフェース (GUI) バージョンのエージェントインストールプログラムを実行するには、JRE (Java Runtime Environment) 1.3.1 がインストールされているか、共有ファイルシステムで利用できる必要があります。現在、エージェントのインストールプログラムでの使用が認定されているのは、バージョン 1.3.1 以降の JRE です。詳細は、「コマンド行によるインストール」を参照してください。
Windows オペレーティングシステムを実行している場合、JRE 1.3.1 が検出されない場合は、インストールプログラムによって JRE 1.3.1 がインストールされます。
Sun ONE Identity Server サービスを実行する Web サーバとリモート Web サーバ
インストールプログラムを使用して、Sun ONE Identity Server がインストールされている Web サーバ上にポリシーエージェントをインストールできます。Sun ONE のマニュアルでは、このようなサーバは「Sun ONE Identity Server 6.0 が稼働する Web サーバ」と表記されます。また、インストールプログラムを使って組織内のリモート Web サーバにポリシーエージェントを追加インストールすることもできます。Sun ONE Identity Server の配備では、リモート Web サーバとは Sun ONE Identity Server を実際に実行しているサーバ以外の Web サーバを指します。これは、Sun ONE Identity Server 専用の Web サーバに対して「リモート」な関係にあります。
同一コンピュータシステム上の複数の Web サーバインスタンスのためのエージェントの設定
1 つのコンピュータシステムに複数の Web サーバまたはプロキシサーバがインストールされている場合、サーバまたはサーバインスタンスごとに異なるエージェントをインストールすることができます。
詳細については、「複数の Web サーバインスタンス用のエージェント設定」を参照してください。
注 Microsoft IIS サーバのインスタンスはコンピュータシステムごとに 1 つしかインストールできないので、同じコンピュータシステムに複数の Microsoft IIS エージェントをインストールすることはできません。
Sun ONE Identity Server エージェントのフェイルオーバ機能の提供
ポリシーエージェントのインストール時に、Sun ONE Identity Server を実行する Web サーバのフェイルオーバ、つまりバックアップを指定できます。この機能は基本的に、可用性を上げるためのオプションです。この機能を利用すると、Sun ONE Identity Server を実行する Web サーバが使用不能になった場合でも、エージェントは、Sun ONE Identity Server を実行しているセカンダリ Web (フェイルオーバ) サーバを通じてアクセス要求を処理できるようになります。
ポリシーエージェントのフェイルオーバ機能を設定するには、最初に、2 つの Web サーバに 2 つの Sun ONE Identity Server インスタンスをそれぞれインストールする必要があります。詳細な方法について『Sun ONE Identity Server インストールおよび設定ガイド』を参照し、このマニュアルで後述する手順に従って適切なエージェントをインストールしてください。エージェントのインストールプログラムは、Sun ONE Identity Server と連携するように設定したフェイルオーバ Web サーバのホスト名とポート番号を要求します。フェイルオーバサーバの名前とポートは、AMAgent.properties ファイルの次のプロパティに設定されます。
com.sun.am.policy.am.loginURL= http://primary_Identity _Server.siroe.com:58080/amserver/UI/Login http://failover_Identity _Server.siroe.com:58080/amserver/UI/Login
フェイルオーバサーバの名前は、インストール時に設定した後で変更できます。これは、このプロパティの 2 つ目の項目です。最初の項目は Sun ONE Identity Server のログイン URL で、各項目は空白文字で区切られています。
注 プライマリ Web サーバとフェイルオーバ Web サーバで同じプロトコル (たとえば、http または https) を使用する必要があります。
エージェントキャッシュの更新
各エージェントは、各ユーザのセッションに適用されるポリシーを格納しているキャッシュを保持しています。キャッシュは、キャッシュ有効期限メカニズムまたは通知メカニズムのいずれかで更新できます。
キャッシュの更新
エージェントは、アクティブなすべてのセッションのキャッシュを保持しています。キャッシュにエントリが追加されると、有効期間の間そのエントリは有効であり、その期日が過ぎると削除されます。
エントリがエージェントキャッシュに存在する期間は、AMAgent.properties ファイルの com.sun.am.policy.am.cacheEntryLifeTime プロパティで分単位で指定されます。このプロパティによって定められた期間を経過すると、エントリはキャッシュから削除されます。デフォルトでは、3 分に設定されています。
キャッシュのハイブリッド更新
キャッシュの有効期間はこのモードにも適用されます。さらに、エージェントはセッションの変更について Sun ONE Identity Server サービスから通知を受けます。セッションの変更には、セッションログアウトやセッションタイムアウトなどのイベントがあります。セッションまたはポリシーの変更通知を受けると、エージェントはキャッシュにある該当エントリを更新します。セッションの更新とは別に、エージェントはポリシー変更の更新についても通知を受け取ります。ポリシーの変更には、ポリシーの更新、削除、作成などのイベントがあります。
デフォルトでは、Sun ONE Identity Server ポリシーエージェントのハイブリッド更新モードはオンです。このモードは、AMAgent.properties ファイルの com.sun.am.policy.am.notificationEnabled プロパティを true に設定することで有効になります。このプロパティを false に設定すると、エージェントによるキャッシュの更新はエントリの有効期間メカニズムだけで行われます。
ファイアウォール、使用中の Web サーバのタイプなどの制限により、状況によっては通知が許可されないこともあります。このような場合、エージェントによるキャッシュの更新はエントリの有効期間メカニズムだけで行われます。
注 次の場合は、通知のサポートは利用できません。
グローバル不適用 URL リスト
グローバル不適用 URL リストは、関連するポリシー (許可または拒否) を設定すべきでないリソースを指定します。
デフォルトでは、ポリシーエージェントは、ポリシーエージェントが保護する Web サーバの全リソースへのアクセスを拒否します。ただし、Web サーバ (Web サイトやアプリケーションなど) を通じて利用できるさまざまなリソースにはポリシーを適用する必要がない場合があります。そのようなリソースの一般的な例として、Web サイトのホームページに見られる HTML ページや .gif 画像があります。そのようなページは、ユーザが認証なしで閲覧できる必要があります。これらのリソースは、グローバル不適用 URL リストに載せる必要があります。この設定には、com.sun.am.policy.agents.notenforcedList プロパティを使います。URL パターンの指定には、ワイルドカードを利用できます。リスト内の URL は、空白文字で区切られます。
これと反対の状況として、Web サーバ上の一部の URL を除くすべてのリソースに誰でもアクセスできる場合が考えられます。このような場合は com.sun.am.policy.agents.reverse_the_meaning_of_notenforcedList プロパティを使用すると、com.sun.am.policy.agents.notenforcedList プロパティの意味を逆転させることができます。このプロパティの値を true に設定すると (デフォルト値は false)、グローバル不適用 URL リストはグローバル適用 URL リストとなります。
次に例をあげます。
シナリオ 1
com.sun.am.policy.agents.reverse_the_meaning_of_notenforcedList= false
com.sun.am.policy.agents.notenforcedList = http://mycomputer.siroe.com:80/welcome.html http://mycomputer.siroe.com:80/banner.html
この場合、notenforcedList に含まれる 2 つの URL に対して認証とポリシーは適用されません。これ以外のすべてのリソースはエージェントによって保護されます。
シナリオ 2
com.sun.am.policy.agents.reverse_the_meaning_of_notenforcedList= true
com.sun.am.policy.agents.notenforcedList = http://mycomputer.siroe.com:80/welcome.html http://mycomputer.siroe.com:80/banner.html
この場合、notenforcedList に含まれる 2 つの URL に対して、エージェントによって認証とポリシーが適用されます。どのユーザも、これ以外のすべてのリソースにはアクセスできます。
グローバル不適用 IP アドレスリスト
IP アドレスのリストを設定するには、com.sun.am.policy.agents.notenforced_client_IP_address_list プロパティを使います。指定したクライアント IP アドレスからの要求には、認証が不要になります。
言い換えれば、エージェントは Web サーバ上のリソースに対してリストに指定された IP アドレスからのアクセスを防ぐことはできません。
ポリシーを適用しない認証だけの適用
エージェントが保護する URL に対して認証だけを適用するときは、com.sun.am.policy.agents.do_sso_only プロパティを使います。このプロパティを true に設定すると (デフォルト値は false)、エージェントはポリシーを適用せずに認証だけを適用します。ユーザが Identity Server にログインすると、そのユーザおよびユーザがアクセスする URL に関連するポリシーをエージェントは確認しません。
HTTP ヘッダーを介した LDAP ユーザ属性の転送
Sun ONE Identity Server のポリシーエージェントには、HTTP ヘッダーを介して LDAP ユーザ属性値をエンド Web アプリケーションに転送する機能があります。LDAP ユーザ属性値は、Sun ONE Identity Server のサーバサイドから引き継ぎます。Sun ONE Identity Server のポリシーエージェントはブローカのように動作し、ユーザ属性値を取得して転送先のサーブレット、CGI スクリプト、または ASP ページに中継します。次に、これらのアプリケーションは、その属性値を使用してページコンテンツをパーソナライズすることができます。
この機能は、AMAgent.properties ファイルの 2 つのプロパティで設定されます。この機能のオン、オフを切り替えるときは、AMAgent.properties ファイルの次のプロパティを使います。
com.sun.am.policy.am.fetchHeaders
デフォルトでは、このプロパティは false に設定されており、機能はオフになっています。属性の転送をオンにするには、このプロパティを true に設定します。HTTP ヘッダーで転送される属性を設定するには、AMAgent.properties ファイルの次のプロパティを使います。
com.sun.am.policy.am.headerAttributes
次の例は、この機能の使い方を示す AMAgent.properties ファイルの一部です。
#
# The policy attributes to be added to the HTTP header. The
# specification is of the format
# ldap_attribute_name|http_header_name[,...]. ldap_attribute_name
# is the attribute in data store to be fetched and
# http_header_name is the name of the header to which the value
# needs to be assigned.
#
# NOTE: In most cases, in a destination application where a
# "http_header_name" shows up as a request header, it will be
# prefixed by HTTP_, and all lower case letters will become upper
# case, and any - will become _; For example, "common-name" would
# become "HTTP_COMMON_NAME"
#
com.sun.am.policy.am.headerAttributes=cn|common-name,ou|organiza tional-unit,o|organization,mail|email,employeenumber|employee-nu mber,c|country
デフォルトでは、一部の LDAP ユーザ属性名および HTTP ヘッダー名は、サンプル値が設定されています。
適切な LDAP ユーザ属性名を見つけるには、Sun ONE Identity Server サーバがインストールされているマシンで次の XML ファイルを調べます。
S1IS_Install_Dir/SUNWam/config/xml/amUser.xml
このファイルに設定されている属性は、Sun ONE Identity Server の User 属性または Dynamic 属性です。この 2 種類のユーザ属性については、『Sun ONE Identity Server Administration Guide』を参照してください。
転送が必要な属性名および HTTP ヘッダー名は、エージェントが保護している Web サーバ上のエンドユーザアプリケーションが決定する必要があります。これは、これらのアプリケーションは転送されるヘッダー値のコンシューマであるためです。転送される情報は、Web ページのカスタマイズとパーソナライズに使用されます。
注 この機能は、Sun ONE Web Proxy Server エージェントには使用できません。
AMAgent.properties ファイル
AMAgent.properties ファイルは、ポリシーエージェントが使用する設定パラメータを格納します。このファイルのデフォルトのパラメータを変更する必要がある場合があります。たとえば、Sun ONE Identity Server を稼働する別のフェイルオーバ Web サーバを指定する場合などです。
AMAgent.properties ファイルには、次の設定を行うための情報が含まれています。
- デバッグ
- ポリシーエージェント
- FQDN マップ
- Sun ONE Identity Server サービス
- サービスおよびエージェントの配備記述子
- セッションのフェイルオーバ
また、AMAgent.properties ファイルには、HTTP ヘッダーによる LDAP ユーザ属性の転送、POST データの保存など、詳細な機能に関する設定情報も含まれています。AMAgent.properties ファイルには各プロパティの前にコメントがあるので、詳細はファイルを参照してください。
表 1-1 は、サポートされるさまざまなサーバの AMAgent.properties のデフォルトの場所を示しています。
AMAgent.properties ファイルを変更すると、重大かつ広範囲に及ぶ影響が出る可能性があります。このファイルのプロパティの多くは、エージェントをインストールし直すだけで安全に変更できることを忘れないでください。ただし、手動で変更する必要がある場合は、次の点を念頭に置いてください。
- 変更を行う前にこのファイルのバックアップコピーを作成する
- 後続の空白文字には重要な意味があるので、慎重に使用する
- ディレクトリの区切りには、円記号 (¥) ではなくスラッシュ (/) を使用する。これは Windows システムにも当てはまる
- Windows ファイル名に空白文字を使用できる
注 AMAgent.properties ファイルに変更を加える場合は、Webサーバを再起動して変更内容を有効にする必要があります。
完全指定ドメイン名の設定
ユーザが適切な結果を得るには、ユーザが有効な URL を使ってエージェントによって保護されるリソースにアクセスする必要があります。保護されたリソースへのアクセスに、ユーザが有効な URL を使っているかどうかをエージェントが確認する上で必要な情報は、com.sun.am.policy.agents.fqdnDefault プロパティによって設定されます。要求に含まれる URL に有効なホスト名が指定されていないことを検出すると、エージェントは有効なホスト名が設定された URL にユーザをリダイレクトします。リダイレクト先の URL と、ユーザが最初に使っていた URL の違いはホスト名だけです。エージェントは、このプロパティの設定に基づいて、ホスト名を完全指定ドメイン名 (FQDN) に変換します。
この設定プロパティは必須です。これなしでは、Web サーバが正しく起動しないことがあります。このプロパティは、エージェントのインストール時に設定され、配備要件に対応する上でどうしても必要な場合を除き、変更する必要はありません。このプロパティに無効な値を設定すると、Web サーバを利用できなくなったり、リソースにアクセスできなくなることがあります。
ユーザがアクセスするために指定した URL に問題がある場合に、エージェントがそれを解決するには、com.sun.am.policy.agents.fqdnMap プロパティを使用することもできます。エージェントは、com.sun.am.policy.agents.fqdnDefault プロパティに定義されている値よりも優先してこのプロパティの値を適用します。このプロパティに設定されている項目と一致するホスト名がユーザ要求に含まれない場合は、エージェントは com.sun.am.policy.agents.fqdnDefault プロパティの値を適用します。
com.sun.am.policy.agents.fqdnMap プロパティを使って、複数のホスト名のマップを作成することができます。これは、このエージェントが保護する Web サーバに対して複数のホスト名でアクセスする場合などが対象となります。ただし、Web サーバ上のリソースにアクセスできなくなることもあるため、この機能の利用には注意が必要です。
このプロパティは、必要に応じてエージェントの動作を無効にする場合にも利用できます。たとえば、純粋な IP アドレスを使って Web サーバ上のリソースにアクセスするユーザに対しては、リダイレクトなどの対策を適用しない場合は、次のようなマップエントリを指定します。
com.sun.am.policy.agents.fqdnMap=IP|IP
com.sun.am.policy.agents.fqdnMap プロパティの書式は次のとおりです。
com.sun.am.policy.agents.fqdnMap = [invalid_hostname|valid_hostname][,...]
変数の意味は次のとおりです。
invalid_hostname は、ホスト名の一部や IP アドレスなど、ユーザにより指定される可能性のある無効なホスト名です。
valid_hostname は、対応する有効なホスト名で、完全指定名で指定します。たとえば、xyz.domain1.com というホスト名については、次のような値の設定が考えられます。
com.sun.am.policy.agents.fqdnMap = xyz|xyz.domain1.com, xyz.domain1|xyz.domain1.com
これにより、xyz および xyz.domain1 は、xyz.domain1.com という完全指定名にマッピングされます。
CDSSO の設定
CDSSO (Cross Domain Single Sign-On) 機能は、AMAgent.properties ファイルの 2 つのプロパティを使って設定されます。この機能のオン、オフを切り替えるときは、AMAgent.properties ファイルの次のプロパティを使います。
com.sun.am.policy.agents.cdsso-enabled=true
デフォルトでは、このプロパティは false に設定されており、機能はオフになっています。CDSSO 機能をオンにするには、このプロパティを true に設定します。CDSSO がインストールされている URL は、次のプロパティに指定します。
com.sun.am.policy.agents.loginURL = http://mycomputer.domain:port/amcdsso/cdsso
CDSSO コンポーネントの設定については、『Sun ONE Identity Server インストールおよび設定ガイド』を参照してください。
インストールが正常に行われたことの確認
ポリシーエージェントをインストールした後、エージェントが正常にインストールされ、期待通りに動作することを確認するようお勧めします。エージェントが正常にインストールされたことを確認できる点は 2 つあります。
- エージェントがインストールされている Web サーバの Web コンテンツにアクセスしてみます。エージェントが正しくインストールされていれば、Sun ONE Identity Server のログインページが表示されます。図 1-2 は、LDAP 認証を使用している Sun ONE Identity Server のログインページの例です。
- AMAgent.properties ファイルを調べます。各プロパティが適切に設定されていることを確認します。
図 1-2    Sun ONE Identity Server のログインページ
![]()