Sun Java System Access Manager 7 2005Q4 配備計画ガイド

Access Manager でのロードバランサの使用法

ロードバランサは、複数サーバー配備の環境で、クライアント要求を複数の Access Manager インスタンスに分散します。この節の情報を利用する前に、「サイトとしての Access Manager 配備の設定」の説明に従って Access Manager 配備をサイトとして設定してください。1 つのサイトには、異なるホストサーバーにインストールされた、Access Manager の複数 (2 つ以上) のインスタンスが含まれます。すべての Access Manager インスタンスが 同じ Directory Server にアクセスし、同じパスワード暗号化鍵を使用する必要があります。Access Manager のインストールについては、「複数のホストサーバーへの Access Manager のインストール」を参照してください。

この節には、ロードバランサの使用法に関する次の情報が含まれています。

ロードバランサ用の SSL ターミネーションの設定

ロードバランサを設定して SSL 要求を処理できるようにする前に、まず、Access Manger Web コンテナの SSL を設定します。手順については、『Sun Java System Access Manager 7 2005Q4 管理ガイド』の第 3 章「Access Manager を SSL モードに設定する」を参照してください。

ロードバランサと Access Manager サーバー用に SSL を設定するには、次の場合につ いて考慮してください。

SSL パススルー設定を除き、標準のサーバー証明書を使用してロードバランサの SSL ターミネーションを有効にすることができます。ただし、ロードバランサと Access Manager サーバー用に SSL パススルーを設定し、ロードバランサがクライアントから Access Manager サーバーへのすべての要求をバイパスする場合は、標準のサーバー証明書では SSL に関する次の問題が発生します。

これらの問題を解決するために、Access Manager には次のプロパティーが用意されています。

SubjectAltName 拡張機能を使用した CSR の生成

SubjectAltName 拡張機能を使用して証明書署名要求 (CSR) を生成するには、証明書データベースツール (certutil) を使用します。certutil/usr/sfw/bin ディレクトリにない場合、まず、Solaris システムの場合は SUNWtlsu パッケージを、Linux システムの場合は sun-nss-sun-nss-devel RPM をインストールします。必要に応じて、 LD_LIBRARY_PATH 環境変数に、適切な certutil のパスを設定します。

certutil については、次のサイトを参照してください。http://www.mozilla.org/

ここでは、Web コンテナとして Web Server または Application Server を使用している場合の certutil の使用方法について説明します。Web コンテナとして BEA WebLogic Server または IBM WebSphere Application Server を使用している場合は、それぞれの BEA または IBM 製品のマニュアルを参照してください。

SubjectAltName 拡張機能を使用して CSR を生成するには、次の手順に従います。

  1. スーパーユーザー (root) としてログインするか、スーパーユーザーになります。

  2. certutil -N オプションを使用して、新しい証明書データベース (cert8.db) を作成します。必要に応じて、最初に、データベース用のディレクトリを作成します。次に例を示します。

    # mkdir certdbdir 
    # cd certdbdir 
    # certutil -N -d .

    certutil から入力を求められたら、鍵を暗号化するためのパスワードを入力します。

    Enter a password which will be used to encrypt your keys. 
    The password should be at least 8 characters long, 
    and should contain at least one non-alphabetic character.
    
    Enter new password: your-password 
    Re-enter password:  your-password
    
  3. SubjectAltName 拡張機能を使用して CSR を生成します。次に例を示します。

    # certutil -R -s "cn=lb.example.com,o=example.com,c=us" 
    -o server.req -d . -a -8 amserv1.example.com,amserv2.example.com

    certutil から入力を求められたら、パスワード (または pin) を入力し、次にランダムシードを生成するための鍵を入力して鍵を作成します。

    Enter Password or Pin for "NSS Certificate DB": your-password
    
    A random seed must be generated that will be used in the  
    creation of your key.  One of the easiest ways to create a  
    random seed is to use the timing of keystrokes on a keyboard.   
    
    To begin, type keys on the keyboard until this progress meter  
    is full.  DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD!   
    
    Continue typing until the progress meter is full:   
    
    |************************************************************|   
    
    Finished.  Press enter to continue:   
    
    Generating key.  This may take a few moments...
  4. CSR (この例では server.req ファイル) を認証局 (CA) に送信します。サーバー証明書を取得し、certutil -A オプションを使用して、それを証明書データベースに追加します。

  5. 証明書データベース (cert8.db) を Web コンテナのディレクトリにコピーします。

    • Web Server。cert8.db および key3.db データベースを /opt/SUNWwbsrv/alias ディレクトリにコピーし、Web Server インスタンスの名前を使用してその名前を変更します。次に例を示します。

      https-webserver.example.com-webserver-cert8.db
      https-webserver.example.com-webserver-key3.db
    • Application Server。cert8.db および key3.db データベースをインスタンスの /config ディレクトリにコピーします。次に例を示します。

      /var/opt/SUNWappserver/domains/domain1/config/cert8.db 
      /var/opt/SUNWappserver/domains/domain1/config/key3.db

ロードバランサ Cookie 用の Access Manager の設定

Access Manager をロードバランサ Cookie 用に設定するには、配備内のすべての Access Manager インスタンスの設定を更新して、インスタンスがロードバランサを認識できるようにします。このシナリオでは、異なるホストサーバーに複数 (2 つ以上) の Access Manager インスタンスが配備されています。ロードバランサが、クライアント要求をさまざまな Access Manager インスタンスに経路指定します。すべての Access Manager インスタンスが、同じ Directory Server を使用します。

  1. Access Manager コンソールで、「サイトとしての Access Manager 配備の設定」の説明に従って Access Manager 配備をサイトとして設定します。配備をサイトとして設定すると、Access Manager はロードバランサを含むようにメモリー内の fqdnMap プロパティーを自動的に設定します。

  2. 各 Access Manager の AMConfig.properties ファイルに次のプロパティーを追加します。

    com.iplanet.am.lbcookie.name=amlbcookie
    com.iplanet.am.lbcookie.value=amserver
    

    amlbcookie はロードバランサの Cookie で、amserver はそのインスタンスで使われる Access Manager ホストサーバーの名前です。

  3. 各 Web コンテナを再起動することによって、すべての Access Manager インスタンスを再起動します。

SAML を使用したロードバランサの設定

このシナリオでは、Access Manager サイトがロードバランサを使用してクライアント要求をさまざまな Access Manager インスタンスに分散しており、サイトには SAML (Security Assertions Markup Language) サービスが実装されています。要求がロードバランサ経由で Access Manager インスタンスに送信された場合、そのインスタンスが SAML 表明を取得するには、配備内のほかのどの Access Manager サーバーによって元の表明またはアーティファクトが発行されたかを認識する必要があります。

まず、配備がサイトとして設定されていることが必要です。ホストサーバーには複数の Access Manager インスタンスがインストールされており、ロードバランサがクライアント要求をさまざまなインスタンスに経路指定します。すべての Access Manager インスタンスが、同じ Directory Server にアクセスします。Access Manager セッションフェイルオーバーはオプションです。

SAML でロードバランサを使用するようにサイトを設定するには、次の手順に従います。

  1. SAML ロードバランスが機能するには、Access Manager 配備がサイトとして設定されていることが必要です。Access Manager 配備をサイトとして設定していない場合は、「サイトとしての Access Manager 配備の設定」の手順に従います。

  2. amadmin として Access Manager コンソールにログインします。

  3. Access Manager コンソールで、「連携」、次に「SAML」をクリックします。

  4. プロパティー」セクションの「SAML プロファイル」で、次のエントリを追加または変更します。

    • サイト ID。配備内の各 Access Manager インスタンスを追加します。すべての Access Manager インスタンスが、同じ「サイト ID とサイト発行者名」を共有する必要があります。

    • 信頼パートナー。パートナーの配備サイトの「ソース ID」(サイト ID)、「発行者名」、および「ホストリスト」を追加します。Access Manager サーバーの一意の「ソース ID」(サイト ID) と「発行者名」、およびロードバランサの URL 、IP アドレス、またはホスト名によって配備が識別され、これらの情報が設定のためにパートナーのサイトに送信されます。

      これらのフィールドの詳細については、『Sun Java System Access Manager 7 2005Q4 Federation and SAML Administration Guide』を参照してください。

  5. 保存」をクリックして変更を保存します。

fqdnMap プロパティーの設定

Access Manager 配備をサイトとして設定した場合は、Access Manager によってメモリー内の fqdnMap プロパティーがロードバランサを含むように自動的に設定されるため、AMConfig.properties ファイルでこのプロパティーを設定する必要はありません。ただし、次の Access Manager 配備の場合は、このプロパティーを明示的に設定 する必要があります。

fqdnMap プロパティーを設定する必要がある場合は、配備内の各 Access Manager インスタンスの AMConfig.properties ファイルで、このプロパティーをロードバランサに設定します。必要に応じて、最初に、このプロパティーのコメント文字 (#) を削除します。 次に例を示します。

com.sun.identity.server.fqdnMap[lb.example.com]=lb.example.com

ロードバランサを経由した Access Manager インスタンスへのアクセス

ロードバランサ経由で Access Manager インスタンスにアクセスする方法は、モード (レルムまたは旧バージョン) と、アクセスするコンソールによって異なります。ロードバランサ経由で Access Manager インスタンスにアクセスするには、次の構文を使用します。

http://loadbalancer.domain:port/amserver/console|/amconsole

旧バージョンモードでは、次の両方のコンソールにアクセスできます。

レルムモードでは、新しい Access Manager 7 2005Q4 コンソールにのみアクセスできます。次に例を示します。

http://loadbalancer.example.com:80/amserver/console