![]() |
Sun ONE Identity Server ポリシーエージェントガイド |
第 5 章 Red Hat Linux 7.2 のポリシーエージェント
Sun ONE Identity Server のポリシーエージェントは、Sun ONE Identity Server と連携して企業の Web サーバに対するユーザアクセスの可否を制御します。この章では、Red Hat Linux 7.2 オペレーティングシステムで稼働する Apache 1.3.26 サーバに Sun ONE Identity Server のポリシーエージェントをインストールする方法について説明します。
次のトピックがあります。
- 始める前に
- Posix Threads による Apache Web サーバの設定
- グラフィカルユーザインタフェースによるインストール
- コマンド行によるインストール
- 複数の Web サーバインスタンス用のエージェント設定
- SSL (Secure Sockets Layer) とエージェントの使用
- REMOTE_USER サーバ変数の設定
- クライアント IP アドレスの検証
- 共有シークレットの暗号化ユーティリティ
- トラブルシューティング
始める前に
第 1 章「ご使用にあたって」で説明されている概念を良く理解しておいてください。この章には、次のトピックスに関する簡単ですが重要な情報があります。
- ポリシーエージェントの動作
- JRE (Java Runtime Environment) 1.3.1 要件
- Sun ONE Identity Server サービスを実行する Web サーバとリモート Web サーバ
- 同一コンピュータシステム上の複数の Web サーバインスタンスのためのエージェントの設定
- Sun ONE Identity Server エージェントのフェイルオーバ機能の提供
- エージェントキャッシュの更新
- グローバル不適用 URL リスト
- グローバル不適用 IP アドレスリスト
- ポリシーを適用しない認証だけの適用
- HTTP ヘッダーを介した LDAP ユーザ属性の転送
- AMAgent.properties ファイル
- 完全指定ドメイン名の設定
- CDSSO の設定
Posix Threads による Apache Web サーバの設定
エージェントをインストールする前に、次のタスクを次の順序で実行し、Posix Threads ライブラリによる Apache Web サーバの設定を完了しておく必要があります。これらのタスクを実行しない場合、アプリケーションを利用できなかったり、システム全体が不安定になる、または利用できなくなることがあります。
- http://httpd.apache.org/ から Apache ソースを取得します。
- 次のディレクトリにある Configure ファイルを編集します。
/Apache_root/src
- Configure ファイルから linux22 という項目を探します。
- LIBS 変数の -lm の後に -lpthread を追加します。
*-linux22)
# This handles linux 2.2 and above (2.4, ...)
DEF_WANTHSREGEX=yes
OS='Linux'
CFLAGS="$CFLAGS -DLINUX=22"
LIBS="$LIBS -lm -lpthread"
- 変更内容を保存してファイルを閉じます。
- 次のディレクトリにある Configure スクリプトを実行します。
/Apache_root/
- Apache Web サーバを再構築し、インストールします。
- Apache エージェントをインストールします。
グラフィカルユーザインタフェースによるインストール
ポリシーエージェントのインストール
エージェントのインストールプログラムを実行するには、root 権限が必要です。
- 次のコマンドを使って製品のバイナリファイルを解凍します。
# gunzip -dc agent_Linux_apache.tar.gz | tar -xvof -
- setup プログラムを実行します。このプログラムは、バイナリファイルを解凍したディレクトリにあります。コマンド行に次のコマンドを入力します。
# ./setup
- 開始ページで、「Next」をクリックします。
- ライセンス契約書を確認してください。「Yes」をクリックして、ライセンスの条項に同意します。
エージェントをインストールするディレクトリを選択する場合は、「Browse」をクリックします。デフォルトのディレクトリを使用する場合は、「Next」をクリックします。
- プロンプトに従って、このエージェントが保護する Web サーバに関する次の情報を入力します。
Install Sun ONE Identity Server Policy Agent in this directory: このエージェントをインストールするディレクトリの完全パスを入力して、「Next」をクリックします。
Host Name: Web サーバがインストールされているマシンの完全指定のドメイン名を入力します。たとえば、mycomputer.siroe.com などとなります。
Apache Configuration Directory: httpd.conf ファイルが保存されている Apache サーバ設定ディレクトリを指定します。
Web Server Port: エージェントで保護する Web サーバのポート番号を入力します。
Web Server Protocol: Web サーバを SSL を使用するように設定している場合は、「HTTPS」を選択します。SSL を使用していない場合は、「HTTP」を選択します。
Agent Deployment URI: ディレクトリ名を入力します。デフォルトの URI (Universal Resource Identifier) は /amagent です。
SSL Ready: Apache Web サーバが SSL をサポートしている場合は、このオプションを選択します。mod_ssl をサポートし、EAPI ルールを使ってソースがコンパイルされている Apache Web サーバは、SSL 対応と見なされます。
Apache Web サーバのコンパイルに EAPI フラグが使われているかどうかを調べるときは、Apache Web サーバの bin ディレクトリに移動して、次のコマンドを実行します。
# ./httpd -V
Apache Web サーバがコンパイルされた各種フラグが表示されます。この一覧に -D EAPI というフラグが含まれる場合は、使用中の Apache Web サーバは SSL をサポートしています。ただし、このフラグが見つからない場合でも、Apache Web サーバが mod_ssl に対応していることがあります。
Apache Web サーバの次の設定がサポートされています。
- mod_ssl に対応していない Apache Web サーバ
- mod_ssl に対応し、EAPI フラグが有効な Appache Web サーバ
注 Sun ONE Identity Server Policy Agent は、mod_ssl に対応していても EAPI フラグが無効な Apache Web サーバをサポートしていません。
すべての情報を正しく入力したら、「Next」をクリックします。
- Sun ONE Identity Server のポリシーおよび管理機能が稼動する Web サーバに関する情報を入力します。ポリシーエージェントはこのサーバに接続します。
Primary Server Host: Sun ONE Identity Server を実行するプライマリ Web サーバがインストールされているシステムの完全指定ドメイン名を入力します。たとえば、myserver.siroe.com などとなります。
Primary Server Port: Sun ONE Identity Server を実行する Web サーバのポート番号を入力します。
Primary Server Protocol: Sun ONE Identity Server を実行する Web サーバで SSL が有効になっている場合は、「HTTPS」を選択します。SSL が有効になっていない場合は、「HTTP」を選択します。
Primary Server Deployment URI: Sun ONE Identity Server をインストールしたときに指定した場所を入力します。Sun ONE Identity Server のデフォルトの URI は /amserver です。
Primary Console Deployment URI: Sun ONE Identity Server コンソールをインストールしたときに指定した場所を入力します。Sun ONE Identity Server のデフォルトの URI は /amconsole です。
Failover Server Host: プライマリ Web サーバが使用不能になった場合に Sun ONE Identity Server を実行するセカンダリ Web サーバの完全指定ドメイン名を入力します。フェイルオーバホストが存在しない場合は、このフィールドを空白のままにしておきます。
Failover Server Port: Sun ONE Identity Server を実行するセカンダリ Web サーバのポート番号を入力します。フェイルオーバホストが存在しない場合は、このフィールドを空白のままにしておきます。
Failover Server Deployment URI: Sun ONE Identity Server をインストールしたときに指定した場所を入力します。Sun ONE Identity Server のデフォルトの URI は /amserver です。
Failover Console Deployment URI: Sun ONE Identity Server コンソールをインストールしたときに指定した場所を入力します。Sun ONE Identity Server のデフォルトの URI は /amconsole です。
Agent Identity Server Shared Secret: Identity Server の内部 LDAP 認証ユーザのパスワードを入力します。
Re-enter Shared secret: Identity Server の内部 LDAP 認証ユーザのパスワードをもう一度入力します。
CDSSO Enabled: CDSSO 機能を有効にするときは、このボックスにチェックマークをつけます。
CDSSO Component URL: CDSSO コンポーネントの URL を入力します。
すべての情報を正しく入力したら、「Next」をクリックします。
- 「Installation Summary」を見直して、入力した情報が正しいことを確認します。変更が必要な場合は、「Back」をクリックします。すべての情報を正しく入力したら、「Next」をクリックします。
- 「Ready to Install」のページで、「Install Now」をクリックします。
- インストールが終了したら、「Details」をクリックしてインストールの詳細を確認するか、「Close」をクリックしてインストールプログラムを終了します。
- インストールを完了するには、Apache Web サーバを再起動する必要があります。
ポリシーエージェントのアンインストール
次の手順を実行してポリシーエージェントをアンインストールします。
- エージェントがインストールされているディレクトリに移動して、コマンド行に次のコマンドを入力します。
# ./uninstall_linux_apache_agent
- 開始パネルで、「Next」をクリックします。
- 「Uninstall Now」をクリックします。
- アンインストールが終了したら、「Close」をクリックします。
コマンド行によるインストール
グラフィカルユーザインタフェース (GUI) バージョンの代わりに、コマンド行バージョンのインストールプログラムを使用することもできます。
ポリシーエージェントのインストール
エージェントのインストールプログラムを実行するには、root 権限が必要です。
- 次のコマンドを実行して tar ファイルを解凍します。
# gunzip -dc agent_Linux_apache.tar.gz | tar -xvof -
- setup プログラムを実行します。このプログラムは、バイナリファイルを解凍したディレクトリにあります。コマンド行に次のコマンドを入力します。
# ./setup -nodisplay
- プロンプトが表示されたら、次の情報を入力します。
Have you read, and do you accept, all of the terms of the preceding Software License Agreement?: 「yes」と入力します。
Install Sun ONE Identity Server Agent in this directory: ポリシーエージェントを入力するディレクトリの完全パスを入力します。
- このエージェントが保護する Web サーバに関する次の情報を入力します。
- Web Server Host Name
- Apache Configuration Directory
- Web Server Port
- Web Server Protocol
- Agent Deployment URI
- SSL Ready
これらの各項目の詳細は、「ポリシーエージェントのインストール」を参照してください。
- Sun ONE Identity Server を実行する Web サーバに関する次の情報を入力します。
- Primary Server Host
- Primary Server Port
- Primary Server Protocol
- Primary Server Deployment URI
- Primary Console Deployment URI
- Failover Server Host
- Failover Server Port
- Failover Server Protocol
- Failover Server Deployment URI
- Failover Console Deployment URI
- Agent-Identity Server Shared secret
- Re-enter Shared secret
- CDSSO Enabled
- CDSSO Component URL
これらの各項目の詳細は、「ポリシーエージェントのインストール」を参照してください。
- 次のメッセージが表示されます。
Ready to Install
1. Install Now
2. Start Over
3. Exit Installation
「What would you like to do?」というメッセージが表示されたら、1 を入力してインストールを開始します。
- 次のメッセージが表示されます。
Product Result More Information
1. Sun ONE Identity Server Agent Installed Available
2. Done
ログ情報を表示するときは、1 を入力します。インストールプログラムを終了するときは、2 を入力します。
ポリシーエージェントのアンインストール
- Agent_Install_Dir ディレクトリで、コマンド行に次のコマンドを入力します。
# ./uninstall_linux_apache_agent -nodisplay
- 次のメッセージが表示されます。
The uninstaller has detected the following agents on this system:
1. Agent 2.0 for Apache 1.3.26 [/usr/local]
2. Exit
Please select an installed agent from the following list:
製品を削除するときは、1 を入力します。
- 次のメッセージが表示されます。
Ready to Uninstall
1. Uninstall Now
2. Start Over
3. Exit Uninstallation
「 What next?」というプロンプトが表示されたら、1 を入力してアンインストールを開始します。
- 次のメッセージが表示されます。
Product Result More Information
1. Sun ONE Identity Server Policy Agent Full Available
2. Done
エージェントのログ情報を表示するときは、1 を入力します。アンインストールプログラムを終了するときは、2 を入力します。
複数の Web サーバインスタンス用のエージェント設定
1 台のコンピュータ上で稼働する複数の Web サーバインスタンスに合わせてエージェントを設定するには、グラフィカルユーザインタフェース (GUI) を使用するか、またはコマンド行でエージェントインストールプログラムを使って最初のエージェントをインストールします。最初のエージェントをインストールしたら、config スクリプトを使ってあとのエージェントをインストールできます。このスクリプトは、次の節で説明するように、コマンド行から実行する必要があります。
同じコンピュータシステムに複数の Web サーバインスタンス用のエージェントを設定するには
システムにエージェントを 1 つインストールしたら、エージェントのインストール時にシステムにコピーされるスクリプトを使用して、あとのエージェントをそのシステムにインストールできます。次のディレクトリに、2 つのスクリプト、config_linux と unconfig_linux があります。
Agent_Install_Dir/agents/apache/bin
元のエージェントをインストールした後で追加のエージェントをシステムにインストールするには、次のコマンドを使って、bin ディレクトリから config_linux スクリプトを実行します。
# ./config_linux
プロンプトに従って、追加のエージェントをインストールします。各プロンプトについては、「グラフィカルユーザインタフェースによるインストール」を参照してください。一般に、保護された Apache サーバインスタンスと Sun ONE Identity Server サーバの両方の情報を入力する必要があります。次のテキストは実行例です。
# ./config_linux
Enter the Apache Server Configuration Directory: [/etc/httpd/conf]
SSL Ready: [true] false
Enter the Local Hostname:[mycomputer.siroe.com]
Enter the Agent Web Server Port: [80]
Select Agent Web Server Protocol:[1] http [2] https-->[1]
Enter the Agent Deployment URI:[/amagent]
Select Identity Server Protocol:[1] http [2] https --> [1]
Enter the Identity Server Hostname:[mycomputer.siroe.com]
Enter the Identity Server Port: [58080]
Enter the Identity Server Deployment URI [/amserver]
Enter the Identity Server's Console Deployment URI [/amconsole]
Enter the Identity Server's Console Deployment URI [/amconsole]
Select Failover Identity Server Protocol: [1] http [2] https [3] no failover --> []
Enter the Failover Identity Server Hostname: []mycomputer.siroe.com
Enter the Failover Identity Server Port: []
Enter the Identity Server Deployment URI [/amserver]
Enter the Identity Server's Console Deployment URI [/amconsole]
Enter Agent-Identity Server shared secret:
Re-enter Agent-Identity Server shared secret:
Configuring Apache Web Server ...
Done
注 config スクリプトでは、CDSSO の詳細を入力できません。これは、手動で設定する必要があります。詳細については、「CDSSO の設定」を参照してください。
config スクリプトによるサイレントインストール
config_linux スクリプトを使用して、サイレントの非対話型エージェントインストールを実行することもできます。このスクリプトの使用方法については、config_linux -h コマンドを使用して詳細を表示してください。
# ./config_linux -h
Usage:config [ -r response_file | -R | -h ]
-r specifies a response file.
-R prints out the response file template.
-h prints out this message.
サイレントインストールを実行するには、インストールするエージェントごとに応答ファイルを指定する必要があります。config_linux -R コマンドは、応答ファイルで指定しなければならないフィールドを示します。このテキストファイルは、サイレントインストールを開始する前に用意しておく必要があります。
./config_linux -R
Response file contains:
AGENT_PROTOCOL # agent protocol:http|https
AGENT_HOST # agent hostname
AGENT_PORT # agent server port
AGENT_DEPLOY_URI # agent deploy URI
FAILOVER_SERVER_HOST # failover identity server name
FAILOVER_SERVER_PORT # failover identity server port
FAILOVER_SERVER_DEPLOY_URI # failover identity server deploy URI
FAILOVER_CONSOLE_DEPLOY_URI # failover identity server console deploy URI
PRIMARY_SERVER_HOST # primary identity server name
PRIMARY_SERVER_PORT # primary identity server port
PRIMARY_SERVER_PROTO # primary identity server protocol:http|https
PRIMARY_SERVER_DEPLOY_URI # primary identity server deploy URI
PRIMARY_CONSOLE_DEPLOY_URI # primary identity server console deploy URI
SHARED_SECRET # shared secret between agent and DSAME server
SERVER_INSTANCE # web server instance directory
NOTIFICATION_ENABLE # notification enabled
AGENT_URL_CASE_IGNORE # url comparison case ignore
次に、response.apache という名前の応答ファイルの例を示します。
AGENT_PROTOCOL=http
AGENT_HOST=mycomputer.siroe.com
AGENT_PORT=80
AGENT_DEPLOY_URI=/amagent
FAILOVER_SERVER_HOST=failover_computer.siroe.com
FAILOVER_SERVER_PORT=58080
FAILOVER_SERVER_DEPLOY_URI=/amserver
FAILOVER_CONSOLE_DEPLOY_URI=/amconsole
PRIMARY_SERVER_HOST=primary_computer.siroe.com
PRIMARY_SERVER_PORT=58080
PRIMARY_SERVER_PROTO=http
PRIMARY_SERVER_DEPLOY_URI=/amserver
PRIMARY_CONSOLE_DEPLOY_URI=/amconsole
SHARED_SECRET=encrypted_shared_secret
SERVER_INSTANCE=/Agent_Install_Dir/apache26/conf
NOTIFICATION_ENABLE=true
AGENT_URL_CASE_IGNORE=true
次の例は、response.apache 応答ファイルと組み合わせて config_linux スクリプトを使って、サイレントインストールを実行する方法を示しています。
# ./config_linux -r response.apache
Configuring Apache Web Server ...
done
unconfig スクリプトによるエージェントの削除
config_linux スクリプトを使ってコマンド行からインストールしたエージェントを削除するには、unconfig_linux スクリプトを使います。unconfig_linux スクリプトは、次のディレクトリにあります。
Agent_Install_Dir/agents/apache/bin
次に、unconfig_linux スクリプトの実行例を示します。
# ./unconfig_linux /web_server_root/httpd/conf
Unconfiguring webserver ... ¥c
done.
SSL (Secure Sockets Layer) とエージェントの使用
インストール時に HTTPS プロトコルを選択すると、SSL を介して通信するようにエージェントが自動的に設定されます。
注 次の手順に進む前に、Web サーバに SSL が設定されていることを確認してください。
エージェントのデフォルトの信頼動作
デフォルトでは、リモートの Apache Server 1.3.26 にインストールされたポリシーエージェントは、Sun ONE Identity Server を実行する Web サーバが SSL 上で提示したサーバ認証書を信頼します。エージェントはルートの認証局 (CA) 証明書をチェックしません。Sun ONE Identity Server を実行する Web サーバで SSL が有効になっていて、ポリシーエージェントで証明書をチェックしたい場合は、次の処理を行う必要があります。
- エージェントのデフォルトの信頼動作を無効にします。
- エージェントがインストールされているリモート Web サーバにルート CA 証明書をインストールします。ルート CA 証明書は、Sun ONE Identity Server サービスを実行する Web サーバにインストールされているものと同じでなければなりません。
エージェントのデフォルト信頼動作の無効化
次のプロパティは AMAgent.properites ファイルにあり、デフォルトでは true に設定されています。
com.sun.am.policy.amcpa.trustServerCerts=true
これは、エージェントが証明書のチェックを行わないということです。
デフォルトの動作を無効にするには
次のプロパティを false に設定する必要があります。
com.sun.am.policy.amcpa.trustServerCerts=false
リモート Web サーバへのルート CA 証明書のインストール
リモート Web サーバにインストールするルート CA 証明書は、Sun ONE Identity Server を実行する Web サーバにインストールされているものと同じでなければなりません。
ルート CA 証明書を Apache 1.3.26 にインストールするには
certutil プログラムを使って、ルート CA 証明書を Apache 1.3.26 にインストールできます。
- C シェルで、コマンド行に次のコマンドを入力します (設定ファイルが保存されているディレクトリを /etc/apache とします)。
# cd /etc/apache/cert
# setenv LD_LIBRARY_PATH /Agent_Install_Dir/agents/apache/lib:/Agent_Install_Dir/agents/lib
- 必要に応じて証明書データベースを作成します。
# /Agent_Install_Dir/agents/apache/cert/certutil -N -d .
- ルート CA 証明書をインストールします。
# /Agent_Install_Dir/agents/apache/cert/certutil -A -n cert-name -t "C,C,C" -d cert-dir -i cert-file
上のコマンドで、変数は次のものを表します。
- cert-name には、このルート証明書の任意の名前を指定します。
- cert-dir には、証明書関連のファイルが置かれたディレクトリを指定します。
- cert-file には、Base64 で符号化されたルート証明書ファイルを指定します。
certutil ユーティリティの詳細は、「certutil -H」と入力してオンラインヘルプを参照してください。
- 証明書が正しくインストールされたことを確認するには、コマンド行に次のように入力します。
# ./certutil -L -d .
インストールしたルート CA 証明書の名前を含む信頼データベース情報が表示されます。次に例を示します。
Certificate Name Trust Attrubutes
cert-name C,C,C
p Valid peer
P Trusted peer (implies c)
c Valid CA
T Trusted CA to issue client certs (implies c)
C Trusted CA to certs(only server certs for ssl) (implies c)
u User cert
w Send warning
REMOTE_USER サーバ変数の設定
REMOTE_USER サーバ環境変数は、Sun ONE Identity Server の認証ユーザまたは匿名ユーザに設定できます。この変数を特定のユーザに設定することによって、Web アプリケーション (CGI、サーブレット、ASP プログラムなど) をそのユーザが利用できるようになります。この機能によって、特定のユーザに表示される HTML ページのコンテンツをパーソナライズできます。
AMAgent.properties ファイルで指定されたグローバル不適用 URL (認証されていないユーザがアクセスできる URL) に対して REMOTE_USER 設定を有効にするには、AMAgent.properties ファイルの次のプロパティを TRUE (デフォルトでは、FALSE) に設定する必要があります。
com.sun.am.policy.agents.anonRemoteUserEnabled=TRUE
このプロパティ値を TRUE に設定すると、REMOTE_USER の値は、AMAgent.properties ファイルの次のプロパティに含まれる値 (デフォルトでは、anonymous) に設定されます。
com.sun.am.policy.agents.unauthenticatedUser=anonymous
クライアント IP アドレスの検証
この機能を使用して、SSO トークンの盗難や「ハイジャック」を防ぎ、セキュリティを向上させることができます。
AMAgent.properties ファイルには com.sun.am.policy.agents.client_ip_validation_enable というプロパティが含まれており、デフォルトでは、このプロパティは false に設定されています。
このプロパティの値を true に設定すると、SSO トークンを含む各着信要求に対して、クライアント IP アドレスの検証が有効になります。要求の生成元の IP アドレスが SSO トークンの発行先の IP アドレスと一致しない場合、要求は拒否されます。これは基本的に、拒否ポリシーの適用と同じです。
ただし、クライアントブラウザが Web プロキシを使っている場合、またはクライアントブラウザとエージェントが保護する Web サーバとの間に負荷均衡アプリケーションがある場合は、この機能を使用しないでください。そのような場合、要求に現れる IP アドレスは、クライアントブラウザが稼動している実際の IP アドレスを反映しません。
共有シークレットの暗号化ユーティリティ
ポリシーエージェントは、共有シークレットを AMAgent.properties ファイルに保存します。このパスワードのデフォルトは、Indentity Server の内部 LDAP 認証ユーザのパスワードです。これは、サーバ側で AMConfig.Properties ファイルを編集することで変更できます。
AMConfig.Properties ファイルの com.sun.am.policy.am.password プロパティには、エージェントのインストール時に暗号化された共有シークレットを設定できます。
共有シークレットをリセットまたは変更するときは、次のユーティリティを使ってプロパティに値を設定します。
- 次のディレクトリに移動します。
Agent_Install_Dir/bin
- コマンド行から次のスクリプトを実行します。
crypt_util shared_secret
- 手順 2 の出力をコピーして次のプロパティに貼り付けます。
com.sun.am.policy.am.password
- Web サーバを再起動し、エージェントが保護するリソースにアクセスしてみます。エージェントが Sun ONE Identity Server にリダイレクトされるようであれば、上記手順は適切に実行されています。
トラブルシューティング
起動時にエラーメッセージが表示される
エージェントをインストールすると、Apache サーバの起動時に次のエラーメッセージが表示されます。
解決法 : これは、Apache サーバの mod_so が無効で、ダイナミックな共有オブジェクトに対応できていないことを意味します。mod_so を有効にする方法については、http://httpd.apache.org/ に用意されている Apache サーバのマニュアルを参照してください。