2.2 セキュリティ

この項では、次のトピックについて説明します。

2.2.1 セキュリティの概要

運用前段階から運用段階に移行するときは、通常、システムのセキュリティ面を強化する必要があります。サンドボックステスト中、HTTPを使ってユーザアプリケーションドライバとアプリケーションサーバを接続することができます。また、ドライバとアプリケーションサーバ間の通信に、自己署名証明書(一時的な手段として)を使用することもできます。運用環境では、会社のVerisign *(または他の信頼できるプロバイダ)の証明書に基づいたサーバ認証による安全な接続を使用する必要があります。

Identity Managerのユーザアプリケーション環境では、次の図のようにさまざまな部分でX.509証明書が使用されます。

図 2-2 Identity Managerユーザアプリケーション環境

図

デフォルトでは、ユーザアプリケーションとアイデンティティボールト間の通信はすべて、TLS (Transport Layer Security)により保護されます。アイデンティティボールト(eDirectory)証明書は、インストール時にJBossアプリケーションサーバキーストアへ自動的にインストールされます。特に指定しない限り、ユーザアプリケーションのインストーラは、eDirectory証明書のコピーをJREのデフォルトcacertsストアに保存します。WebSphereサーバキーストアへの証明書のインストールは、WebSphereツールを使って手動で行う必要があります。

安全に通信するには、図のようにサーバ証明書を複数の場所に配置する必要があります。図中のJBoss certボックスが表示されている場所で、自己署名付き証明書を使用するか、Verisignなどの認証局(CA)によって発行された証明書を使用するか(代わりに)に応じて、異なる設定手順が必要です。

2.2.2 自己署名付き証明書

有名な信頼できる認証局(Verisignなど)が発行した証明書を使用する場合には、特別な設定手順は必要ありません。自己署名付き証明書を作成して使用する場合は、次の手順に従ってください。

  1. 次のようなコマンドライン構文を使用して、自己署名付き証明書のキーストアを作成します。dnameにはご自分のWebサイトと組織を指定します。必要に応じて他の値も変更してください。

    keytool -genkey -alias IDM -keyalg RSA -storepass changeit -keystore jboss.jks -dname "cn=www.novell.com,o=Novell,s=MA,c=US" -keypass changeit
    

    証明書のほかに「jboss.jks」というファイルも作成します。

  2. キーストアファイル(jboss.jks)を次の例のようなJBossユーザアプリケーションディレクトリにコピーします。

    cp jboss.jks ~/jboss-4.2.0.GA/WAR/conf
    

2.2.3 SSLを有効にする

ユーザアプリケーションは、認証にHTMLフォームを使用します。その結果、ログイン時にユーザ資格情報がさらされてしまいます。これらの重要な情報を保護するために、SSLを有効にすることを強くお勧めします。

表 2-1に、SSL導入に関する説明の参照情報を示します。

表 2-1 SSL導入時の指針

指針

次のトピックを参照してください。

SSLを使用するためのAccess Managerの設定

ユーザアプリケーションへのログインにAccess Managerを使用する場合は、『Novell Access Manager 3.0 SP1セットアップガイド』を参照してください。

SSLを使用するためのアプリケーションサーバの設定

アプリケーションサーバメーカーが提供するドキュメントを参照してください。IDMユーザアプリケーションでSSLの使用を設定する前に、アプリケーションサーバのSSLの使用を設定してください。

SSLを使ってアイデンティティボールトに接続するためのIDMユーザアプリケーション(クライアントとして)の設定

インストール時に[セキュアな管理者接続]と[セキュアなユーザ接続]設定パラメータを設定する方法については、『IDM 3.5.1インストールガイド』の第5章にあるユーザアプリケーションのインストールに関する項目を参照してください。これらのパラメータは、configupdateユーティリティを使って編集することもできます。

2.2.4 SOAPセキュリティの有効化

  1. IDM.warweb.xmlファイルを検索し、テキストエディタで開きます。

  2. ファイルの最後の方にある次のセクションをアンコメントします。

    <security-constraint>
            <web-resource-collection>
                    <web-resource-name>IDMProv</web-resource-name>
                    <url-pattern>/*</url-pattern>
                    <http-method>POST</http-method>
                    <http-method>GET</http-method>
                    <description>IDM Provisioning Edition</description>
                    </web-resource-collection>
            <user-data-constraint>
                    <transport-guarantee>CONFIDENTIAL</transport guarantee>
            </user-data-constraint>
    </security-constraint>
    
  3. ファイルとアーカイブを保存して、JBossを再起動します。

2.2.5 相互認証

Identity Managerユーザアプリケーションは、クライアント証明書ベースの認証はサポートしていません。ただし、Novell® Access Managerを使用すれば、この機能を入手できます。詳細については、Novellの担当者までお問い合わせください。セクション 2.2.6, サードパーティ認証とシングルサインオンも参照してください。

2.2.6 サードパーティ認証とシングルサインオン

Identity Managerユーザアプリケーションでは、Access Managerにログインできる任意のサードパーティ認証サービスを使用して、Access Managerを通じたシングルサインオンをサポートしています。この機能は、非パスワードベースの技術を使用して、Access Managerを通じてユーザアプリケーションにログインすることを有効にします。たとえば、スマートカードを使用したユーザ(クライアント)証明書を介したログインです。

Access Managerは、ユーザをIDMアイデンティティボールト内のDNにマップします。Access Managerを使ってユーザアプリケーションにユーザがログインする際に、Access ManagerはSAMLアサーション(ユーザのDNを識別子として)をHTTPヘッダに挿入し、そのリクエストをユーザアプリケーションに転送することができます。ユーザアプリケーションはSAMLアサーションを使ってアイデンティティボールトとのLDAP接続を確立します。この機能をサポートするためのAccess Managerの設定方法については、Access Managerのマニュアルを参照してください。

リクエストをやり取りするチャネルを保護するには、そのチャネルをファイアウォール内に置くかSSL接続を使用してください。ユーザアプリケーション環境でSSLを設定する場合の参照情報については、表 2-1を参照してください。

現時点でパスワードに基づいたシングルサインオン認証を許可するアクセサリポートレットは、ユーザアプリケーション認証にSAMLアサーションを使用する場合、シングルサインオンをサポートしていません。

2.2.7 重要なユーザアプリケーションデータの暗号化

永続的に保管されるユーザアプリケーションに関連する重要な情報は、AES-128アルゴリズムを使って暗号化されます。マスタキー自身もPBEWithSHA1AndDESedeを使ったパスワードベースの暗号化により保護されます。パスワードがメモリに永続的に保管されることはありません。

次のような情報が暗号化されます(ただし、これ以外にも暗号化される情報があります)。

  • LDAP 管理者のユーザパスワード

  • LDAP ゲストユーザパスワード

  • DSSトラステッドCAキーストアパスワード

  • DSS署名キーキーストアパスワード

  • DSS署名キーエントリパスワード

  • Novell Audit署名キー

ただしクラスタ環境では、セッションのフェイルオーバーを有効にすると、ユーザセッション内の一部の重要なデータ(たとえば、ポートレットシングルサインオン用のログインパスワードなど)がセッションのレプリケーション時にネットワーク上に送信される可能性があります。そのため、機密データがネットワークスニファに見られる可能性があります。このような重要なデータを保護するには、次のいずれかの作業を行ってください。

  • JGroupsの暗号化を有効にします。JGroupsの暗号化を有効にする方法の詳細については、JGroups Encryptを参照してください。

  • クラスタがファイアウォールの背後にあることを確認します。