ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Federation管理者ガイド
11g リリース1(11.1.1)
B66693-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

8 セキュリティ

この章では、次に示すような、Oracle Identity Federationのセキュリティに関するトピックについて説明します。

8.1 Oracle Identity FederationでのSSLの構成

Oracle Identity Federationでは、署名と暗号化キーストアに対する1つのパスワードの構成のみサポートされ、そのパスワードを使用してキーストアと秘密鍵の両方を開きます。これは、キーストアが異なるストア・パスワードとキー・パスワードで構成されている場合、Oracle Identity Federationで秘密鍵にアクセスしようとすると、エラーになるということです。

このエラーを回避するには、構成されているキーの別名の秘密鍵パスワードをキーストア・パスワードと同じにします。


注意:

Oracle Identity Federation 11gリリース1(11.1.1)では、キーストア・パスワードに合せてキー・パスワードを変更する場合、古いキーストアやウォレットを構成から削除する必要があります。



注意:

Keystores、信頼できる証明書およびOracle Identity Federationの証明書は、他のOracle Fusion Middlewareコンポーネントでの管理と同様に管理されます。詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。


この項には、次の項目が含まれます。

8.1.1 SSLサーバーとしてのOracle Identity Federationの構成

この項では、Oracle WebLogic ServerでのSSLポートの構成方法、およびSSLを使用する場合のOracle Identity Federationの構成方法について説明します。

8.1.1.1 Oracle WebLogic ServerでのSSLの設定

SSLを設定するOracle WebLogic ServerでSSLポートとキーストアを構成するには、次の手順を実行します。

  1. Oracle WebLogic Server管理コンソールにログインし、「環境」「サーバー」の順に移動します。

  2. SSLを設定するサーバーを選択します。

  3. 「SSLリスニング・ポートの有効化」を選択して、SSLリスニング・ポート番号(443など)を入力します。

    以降では、このポートを$SSL_PORTと呼ぶことにします。

  4. 「保存」をクリックします。

  5. 「キーストア」タブに移動して、「ロックして編集」をクリックします。

  6. 「キーストア」で、カスタムIDを組み込むためのオプションを選択します。

  7. 「ID」セクションで、次のようにプロパティを入力します。

    • カスタムIDキーストア: location of keystore containing the SSL private key and certificate

    • カスタムIDキーストアのタイプ: jks

    • カスタムIDキーストアのパスフレーズ: storepassword

  8. 「保存」をクリックします。

  9. 「SSL」タブに移動します。

  10. 「ID」セクションで、次のようにプロパティを入力します。

    • 秘密鍵の別名: keyalias

    • 秘密鍵のパスフレーズ: keypassword

  11. 保存」をクリックし、「変更のアクティブ化」をクリックします。

  12. サーバーを再起動します。

  13. SSLが正しく設定されていることを確認するために、https://$HOSTNAME:$SSL_PORTに移動すると、証明書が提示されます。この証明書を表示します。サブジェクトは、証明書の作成時に入力したcnと一致している必要があります。


注意:

  • SSLサーバー証明書のCNは、完全修飾ホスト名である必要があります(eaevma1302.de.mycorp.com, not eaevma1302など)。

  • Oracle Weblogic ServerでのSSLの設定方法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』のSSLの構成に関する項を参照してください。


クライアントSSL証明書を要求するようにOracle WebLogic Serverを構成する場合は、次の手順を実行します。

  1. Oracle WebLogic Server管理コンソールにログインし、「環境」→「サーバー」の順に移動します。

  2. SSLを設定するサーバーを選択します。

  3. 「SSL」タブ→「詳細」の順に移動します。

  4. プロパティ「相互クライアント証明書の動作」で、「クライアント証明書をリクエスト(強制する)」を選択します。

  5. 「保存」をクリックします。

  6. 「キーストア」タブに移動します。

  7. 「キーストア」で、構成する信頼キーストアのタイプのオプションを選択して、「信頼」セクションのフィールドに移入します。

  8. 「保存」をクリックし、「変更のアクティブ化」をクリックします。

  9. サーバーを再起動します。

クライアント証明書を発行したCAを、Oracle WebLogic構成で指定した信頼キーストアにインポートする必要があります。Javaキーストアの場合は、次のコマンドを使用できます。

keytool -import -alias aliasfortrustedca -trustcacerts -file trustedcafile.pem -keystore keystorelocation -storepass truststorepassword

8.1.1.2 Oracle Identity Federationの構成

SSLリスニングポートを有効にし、サーバーおよび信頼できる証明書をそれぞれのキーストアにアップロードしている場合は、Oracle Identity FederationでSSLを使用するように構成する必要があります。

手順は次のとおりです。

  1. Fusion Middleware Controlにログインし、Oracle Identity Federationインスタンスを見つけます。

  2. 「サーバー・プロパティ」に移動します。

  3. ポート(および必要に応じてSOAPポート)を更新して、Oracle Weblogic Server管理コンソールで構成したSSLポートを反映させます。

  4. 「SSL有効」チェック・ボックスを選択します。

  5. リクエストが非SSLポートで受信された場合にSSLの使用を強制するには、「強制SSL」ボックスを選択します。それ以外の場合は、チェックを外したままにします。

  6. クライアント認証を強制するには、「クライアント証明書が必要」ボックスを選択します。それ以外の場合は、チェックを外したままにします。

  7. 「適用」をクリックします。

SSLを有効にした後で、メタデータを再生成して、ピア・プロバイダに再配布する必要があります。


注意:

  • ポート(およびSOAPポート)を変更すると、サーバーのメタデータが変更され、適切なサービスURLが反映されます。

  • ピア・プロバイダのサイトにあるメタデータを新しいバージョンで更新する必要があります。


8.1.2 SSLクライアントとしてのOracle Identity Federationの構成

Oracle Identity FederationをSSLクライアントとして構成して、リモートSSLサーバーに接続するには、次の2つの方法があります。

このセクションの内容は次のとおりです。

8.1.2.1 Oracle WebLogic Serverの構成

一部のSSLサーバーでは、SSLハンドシェイク時にクライアントの認証を実行する必要がある場合があります。通常、この操作は、SSLクライアントによるSSLクライアント証明書のSSLサーバーへの提示で実行されます。

この項では、SSLサーバーからリクエストされた際に、クライアントSSL証明書を提示するようにOracle WebLogic ServerとOracle Identity Federationを構成する方法について説明します。これには次の対応が必要です。

  • SSLサーバー証明書を発行したCAの信頼を設定します。

  • Oracle Identity Federation SSLクライアントの証明書を取得します。

これを実行するには、次の手順を実行します。

  1. Oracle WebLogic Server管理コンソールにログインし、「環境」「サーバー」の順に移動します。

  2. SSLを設定するサーバーを選択します。

  3. 「キーストア」 タブに移動して、「ロックして編集」をクリックします。

  4. 「キーストア」で、構成するカスタムIDと信頼キーストアのタイプを含むオプションを選択します。

  5. 「ID」セクションで、次のようにプロパティを入力します。

    • カスタムIDキーストア: location of keystore with SSL private key and certificate

    • カスタムIDキーストアのタイプ: identity keystore type

    • カスタムIDキーストアのパスフレーズ: storepassword

  6. 「信頼」セクションで、信頼キーストアの情報をプロパティに入力します。

  7. 保存」をクリックし、「変更のアクティブ化」をクリックします。

  8. サーバーを再起動します。

8.1.2.2 Oracle Identity Federationでのキーストア・パスワードの構成

Oracle Identity Federationがリモート・プロバイダに接続して、SSLクライアント証明書を提供する必要がある場合は、Oracle WebLogic ServerではなくOracle Identity Federationの設定で、アイデンティティ・キーストアおよび信頼キーストアのパスワードを構成する必要があります。手順は次のとおりです。

  1. Fusion Middleware Controlにログインして、Oracle Identity Federationインスタンスに移動します。

  2. 「管理」「サーバー・プロパティ」の順に移動します。

  3. 「SSL設定」の「アウトバウンド接続」セクションで、次の2つのプロパティの値を入力します。

    • WebLogic Serverのアイデンティティ・キーストアのパスワード - Oracle WebLogic Serverの構成で入力したアイデンティティ・キーストアのパスワードです。

    • WebLogic Serverのトラスト・キーストアのパスワード - Oracle WebLogic Serverの構成で入力した信頼キーストアのパスワードです。このプロパティを空白のままにした場合は、パスワードなしで信頼キーストアがオープンされます。

8.1.2.3 Oracle Identity FederationをSSLクライアントとして構成する別の方法

リモートSSLサーバーに接続する場合に、アイデンティティ・キーストアおよび信頼キーストアの情報をOracle WebLogic Serverの構成に入力しない場合は、別の方法でOracle Identity FederationをSSLクライアントとして構成できます。

このアプローチでは、Oracle Identity FederationのWLSTコマンドまたはMBeanを使用して、特定の構成プロパティを設定する必要があります。また、資格証明ストアでキーストア・パスワードを入力する必要があります。

8.1.2.3.1 Oracle Identity Federation構成のプロパティの設定

次の5つの「serverconfig」プロパティを次の値に設定する必要があります。

  • usewlssslconfig - false

  • clientsslkeystoreloc - アイデンティティ・キーストアのパスとファイル名です。パスにはドメイン・ホームからの絶対パスまたは相対パスを指定できます。

  • clientsslkeystoretype - アイデンティティ・キーストアのタイプです。タイプを指定しない場合はJKSとみなされます。

  • clientssltruststoreloc - 信頼キーストアのパスとファイル名です。パスにはドメイン・ホームからの絶対パスまたは相対パスを指定できます。

  • clientssltruststoretype - 信頼キーストアのタイプです。タイプを指定しない場合はJKSとみなされます。

例: WLSTコマンドの使用

setConfigProperty('serverconfig', 'usewlssslconfig', 'false', 'BOOLEAN')
setConfigProperty('serverconfig', 'clientsslkeystoreloc',    '/usr/local/ssl/keystore', 'STRING')
setConfigProperty('serverconfig', 'clientsslkeystoretype', 'JKS', 'STRING')
setConfigProperty('serverconfig', 'clientssltruststoreloc',    '/usr/local/ssl/truststore', 'STRING')
setConfigProperty('serverconfig', 'clientssltruststoretype', 'JKS', 'STRING')

WLSTコマンドの使用方法の詳細は、第9章「Oracle Identity Federationコマンドライン・ツール」を参照してください。

例: MBeanの使用

「serverconfig」という名前のConfigMXBeanで、次の引数を指定して「putProperty」処理を5回呼び出します。

プロパティ名 プロパティ値 プロパティ・タイプ

usewlssslconfig

false

BOOLEAN

clientsslkeystoreloc

/usr/local/ssl/keystore

STRING

clientsslkeystoretype

JKS

STRING

clientssltruststoreloc

/usr/local/ssl/keystore

STRING

clientssltruststoretype

JKS

STRING


詳細は、付録A「Oracle Identity Federation MBean」を参照してください。

8.1.2.3.2 資格証明ストアへのキーストア・パスワードの入力

アイデンティティ・キーストアおよび信頼キーストアのパスワードは、資格証明ストアに格納する必要があります。資格証明ストアに格納するこれらのパスワードの鍵は次のとおりです。

  • clientsslkeystorepwd - アイデンティティ・キーストアのパスワードです。

  • clientssltruststorepwd - 信頼キーストアのパスワードです。

次の例では、WLSTコマンドを使用して、これらのパスワードを資格証明ストアで作成および更新する方法を示します。この例では、Oracle Identity Federationが「OIF」という名前のアプリケーションでデプロイされていることを前提にしています。アイデンティティ・キーストアおよび信頼キーストアのパスワードはいずれも「mypassword」です。

キーストア資格証明を作成するには、次のようにします。

createCred(map="OIF", key="clientsslkeystorepwd",  
user="UniqueUserNameCredential", password="mypassword", desc="identity keystore pwd")
 
createCred(map="OIF", key="clientssltruststorepwd",  
user="UniqueUserNameCredential", password="mypassword", desc="trust keystore pwd")

キーストア資格証明を更新するには、次のようにします。

updateCred(map="OIF", key="clientsslkeystorepwd",  
user="UniqueUserNameCredential", password="mypassword", desc="identity keystore pwd")
 
updateCred(map="OIF", key="clientssltruststorepwd",  
user="UniqueUserNameCredential", password="mypassword", desc="trust keystore pwd")

詳細は、第4.5項「Oracle Identity Federationの資格証明の管理」を参照してください。

8.1.2.4 SSL経由によるLDAPサーバーへの接続

Oracle Identity FederationがSSLを使用してLDAPサーバーに接続する必要がある場合、まずOracle WebLogic Server管理コンソールで信頼キーストアにLDAPのCA証明書を追加する必要があります。この情報は、Oracle Identity Federationが実行されている管理対象サーバーのサーバー/キーストア構成画面に表示されます。

また、Oracle Identity Federationの構成で信頼キーストアのパスワードを入力する必要があります(第8.1.2.1項「Oracle WebLogic Serverの構成」および第8.1.2.2項「Oracle Identity Federationでのキーストア・パスワードの構成」を参照)。


注意:

  • LDAPサーバーに接続する場合、Oracle Identity Federationではクライアント認証はサポートされません。

  • LDAPサーバーに接続する場合、Oracle Identity FederationはWLS信頼キーストアのみを使用します。


SSL経由でLDAPサーバーを検索する場合

ユーザー・データ・ストアまたはフェデレーション・データ・ストアがSSLを使用するLDAPサーバーにあり、Fusion Middleware Control(「管理」「アイデンティティ」)で検索処理を使用する場合は、LDAPのCA証明書をJVMの cacertキーストアにインポートする必要があります。

検索処理を実行すると、ログに次のようなエラーが表示されます。

SEVERE: NamingException: error while interacting with an LDAP server or JNDI module
javax.naming.NameNotFoundException: remaining name: env/jmx/runtime

これは予期されているもので、検索には影響しません。

8.1.2.5 Fusion Middleware ControlによるOracle Identity Federationターゲットの管理を確実にする方法

管理サーバーと、Oracle Identity Federationをホストする管理対象サーバーに対してSSLを有効にした後、Fusion Middleware Controlで引き続きOracle Identity Federationサーバーを管理できることを確認する必要があります。

Fusion Middleware ControlでOracle Identity Federationサーバー・ターゲットを管理できるようにするには、次の手順を実行します。

  1. $INSTANCE_HOME/EMAGENT/EMAGENT/sysman/emd/targets.xmlを探します。

    'serviceURL'プロパティのプロトコルを正しいプロトコルに変更します。Oracle Identity Federationターゲットが(ホストとoracle_emd以外に)複数ある場合は、各ターゲットの'serviceURL'を変更する必要があります。

  2. $INSTANCE_HOME/EMAGENT/EMAGENT/sysman/config/emd.propertiesを探します。

    必要に応じて、'REPOSITORY_URL'のプロトコルを正しいプロトコルに更新します。EMエージェントは、このプロパティを使用してFusion Middleware Controlに接続します。

  3. 次のコマンドを使用してEMエージェントを停止します。

    $INSTANCE_HOME/bin/opmnctl stopproc ias-component=EMAGNET
    
  4. 次のコマンドを使用してEMエージェントを保護します。

    $INSTANCE_HOME/EMAGENT/EMAGENT/bin/emctl secure fmagent -admin_host
    <host> -admin_port <port> -admin_user <username> [-admin_pwd <pwd>]
    
  5. 次のコマンドを使用してEMエージェントを再起動します。

    $INSTANCE_HOME/bin/opmnctl startproc ias-component=EMAGNET
    

8.2 署名ウォレットおよび暗号化ウォレットの管理

Oracle Identity Federationには、署名ウォレットおよび暗号化ウォレットを、サービスを中断することなくスムーズに更新するための方法が用意されています。

署名または暗号化ウォレットを置き換えて新しいウォレットをアップロードする必要がある場合、Oracle Identity Federationによって古いウォレットが保存されます。その後サーバーは、古いウォレットが削除されるまで、そのウォレットを引き続き使用します。ただし、生成されるメタデータには新しいウォレットの情報と古いウォレットの情報が含まれます。そのため、変更についてリモート・プロバイダに通知するための時間を取ることができます。

新しいメタデータを作成し、すべてのリモート・プロバイダに配布したら、古いウォレットを削除できます。それ以降、Oracle Identity Federationはすべてのトランザクションで新しくアップロードされたウォレットを使用します。

この項は次のトピックで構成されています。

8.2.1 署名パスワードおよび暗号化パスワード

11gリリース1(11.1.1)パッチ・セット3の時点では、キーストア(署名鍵)のパスワードと暗号化鍵のパスワードを同一にする必要はありません。パスワードの扱い方は次のとおりです。

  • ストア・パスワードとキー・パスワードを個別に構成できます。

  • 構成しない場合、キー・パスワードはストア・パスワードと同一であるとみなされます。


関連項目:

『Oracle Fusion Middleware管理者ガイド』のキーストア、ウォレットおよび証明書の管理に関する項を参照してください。


8.2.2 署名ウォレットまたは暗号化ウォレットの置換

署名ウォレットまたは暗号化ウォレットを置き換える場合は、次の手順に従います。

  1. 新しいウォレットをアップロードします。

    1. Fusion Middleware Controlにログインして、Oracle Identity Federationインスタンスに移動します。

    2. 「管理」「セキュリティおよび信頼」の順に移動します。

    3. 「ウォレット」タブで、「更新」をクリックします。

    4. 更新するウォレットの「更新」チェック・ボックスを選択します。

    5. キーストアのタイプ、ウォレットの場所、パスワードおよび別名を選択します。

    6. 「OK」をクリックします。

  2. 新しいメタデータを生成し、配布します。

    1. Fusion Middleware Controlにログインして、Oracle Identity Federationインスタンスに移動します。

    2. 「管理」「セキュリティおよび信頼」の順に移動します。

    3. 「プロバイダ・メタデータ」タブの「メタデータの生成」セクションで、プロバイダのタイプと生成するメタデータのプロトコルを選択して、「生成」をクリックします。

    4. 生成されたメタデータを保存します。

    5. 生成されたメタデータをすべてのリモート・ピア・プロバイダに配布します。

  3. 古いウォレットを削除します。

    1. Fusion Middleware Controlにログインして、Oracle Identity Federationインスタンスに移動します。

    2. 「管理」「セキュリティおよび信頼」の順に移動します。

    3. 「ウォレット」タブで、「更新」をクリックします。

    4. 更新したウォレットで、古いウォレットの削除をクリックします。

8.3 Oracle WebLogic ServerでのJCEポリシー・ファイルの設定

Oracle Identity Federationはデフォルトで、暗号化/復号化処理に対してXML暗号化などの低強度の暗号鍵サイズをサポートしています。

AES-256などの強固な対称暗号化アルゴリズムを使用するには、JVMを変更してJava Cryptography Extension (JCE) Unlimited Strength Jurisdictionポリシーを組み込む必要があります。

次の手順を実行します。

  1. Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Filesを次のURLからダウンロードします。

    http://www.oracle.com/technetwork/java/javase/downloads/index.html
    
  2. $BEA_HOMEの下にあるすべての$JAVA_HOME/jre/lib/securityディレクトリでファイルを解凍します(これらのディレクトリを検索するには、US_export_policy.jarファイルを探します)。それぞれの$JAVA_HOME/jre/lib/securityディレクトリで、デフォルトの低強度のlocal_policy.jarファイルとUS_export_policy.jarファイルをOracleが提供するファイルで上書きします。

  3. 管理サーバーおよびOracle Identity Federationが実行されている管理対象サーバーを再起動します。