ヘッダーをスキップ

Oracle Containers for J2EE セキュリティ・ガイド
10g(10.1.3.4.0)

B50832-01
目次
目次
索引
索引

戻る 次へ

10 外部LDAPセキュリティ・プロバイダ

この章では、OC4Jを構成してOracle以外の(サード・パーティまたは外部)LDAPサーバーをユーザー・リポジトリとして使用する方法について説明します。この章の内容は次のとおりです。

OC4J 10.1.3.x実装では、次の外部LDAPプロバイダがサポートされています。

外部LDAPプロバイダの構成と管理の概要

Application Server Controlコンソールを使用してアプリケーションをデプロイするときは、外部(サード・パーティ)LDAPプロバイダを指定できます(「Application Server Controlを介したセキュリティ・プロバイダの指定」を参照)。


注意

前提条件として、Sun Java System Directory Server(旧称iPlanet)またはActive Directoryのインストールと構成を完了しているものとします。 


外部LDAPプロバイダを指定すると、自動的にorion-application.xmlファイルに次の設定が生成されます。

<jazn provider="XML">
   <property name="custom.ldap.provider" value="true" />
</jazn>


注意

  • 規則上、<jazn>設定のprovider="XML"は外部LDAPプロバイダで使用されます。

  • 外部LDAPプロバイダを使用する場合、認可用のロールの比較では大/小文字は区別されないので注意してください。ただし、次のプロパティ設定をorion-application.xml<jazn>要素に追加した場合は除きます。

    <property name="role.compare.ignorecase" value="false" />
    
 


トラブルシューティングのヒント

外部LDAPプロバイダの使用でトラブルがあった場合は、次の問題が発生していないか検討してください。

  • LDAPユーザーの識別名(DN)を使用してLDAPサーバーに接続しているかどうか確認してください。このユーザーは、ユーザーとグループの検索権限を持つ管理者である必要があります。

  • ログインで正しいユーザー名とパスワードを入力しても、資格証明が無効なために認証障害が再発する場合は、LDAPホストとポートが正しく構成されているか確認してください。この確認には、ldapbindコマンドを使用して構成済LDAPホストとポートに対してバインドすることをお薦めします。

 

OC4Jでは、ログイン・モジュールLDAPLoginModuleを備えており、外部LDAPプロバイダでの認証と認可に使用されます。(または、カスタム・リポジトリで使用するためのカスタム・ログイン・モジュールを提供できます。)外部LDAPプロバイダには、次の構成可能なオプションがあります。

LDAPLoginModuleを構成するオプション設定は、system-jazn-data.xml内の<jazn-loginconfig>の下の<login-module>要素内に反映されます。


注意

Sun Java System Directory ServerおよびMicrosoft Active Directoryのサンプル・ログイン・モジュール・エントリは、ORACLE_HOME/j2ee/home/jazn/configディレクトリにあります。非プロバイダ固有のログイン・モジュール・エントリは、ORACLE_HOME/j2ee/home/jazn/configディレクトリのファイルldap_login_module.templateに提供されています。 


Application Server Controlでの外部LDAPプロバイダの構成

この項では、Application Server Controlコンソールを使用した外部LDAPプロバイダの管理について説明します。次の項目があります。

デプロイ時の外部LDAPプロバイダの指定および構成

外部LDAPプロバイダの使用とApplication Server Controlを介したアプリケーションのデプロイを計画している場合は、外部LDAPプロバイダをセキュリティ・プロバイダとして指定する際にその構成ができます。

「デプロイ: デプロイ設定」ページで、次の手順を実行します(このページへのナビゲート方法は、「Application Server Controlを介したアプリケーションのデプロイ」を参照してください)。

  1. 「セキュリティ・プロバイダの選択」タスクを選択します。

  2. 表示される「デプロイ設定: セキュリティ・プロバイダの選択」ページで、「セキュリティ・プロバイダ」ドロップダウン・リストから「サード・パーティのLDAPサーバー」を選択します。

  3. 「サード・パーティのLDAPサーバー用のOracleセキュリティ・プロバイダの構成」(「サード・パーティのLDAPサーバー」を選択すると表示される)で、次に記載されているオプションの設定を指定します。

    あるいは、「LDAPディレクトリ・ベンダー」設定で指定されたベンダーに対して「値をベンダーのデフォルトに設定」を選択します。これ以外の場合は、依然として「LDAPロケーション」、「ユーザーDN」、「ユーザー検索ベース」および「グループ検索ベース」を指定する必要があります。

  4. オプションで、デプロイの前に「LDAP認可のテスト」を選択できます。これは、LDAPセッションが正常に作成できるかどうかをテストして、LDAPホスト、ポート、管理ユーザーおよびパスワードなどの主要な設定を確認するものです。

  5. 「OK」を選択し、セキュリティ・プロバイダの選択を終了します。

  6. 「デプロイ: デプロイ設定」ページが再表示されるので、「デプロイ」を選択してデプロイを完了するか、または必要に応じて他のタスクを選択します。タスクのリストは、「Application Server Controlを介したアプリケーションのデプロイ」を参照してください。

    表10-1    Application Server Control外部LDAPプロバイダのオプション 
    オプション  必須
    または設定/デフォルト
     
    表10-5での対応オプション(詳細用参照先) 

    LDAPロケーション 

    Required 

    oracle.security.jaas.ldap.provider.url 

    LDAPディレクトリ・ベンダー 

    「Active Directory」、「Sun Directory Server」または「その他」(ドロップダウン・メニューから選択) 

    oracle.security.jaas.ldap.provider.type 

    ユーザーDN 

    Required 

    oracle.security.jaas.ldap.provider.principal 

    ユーザー・パスワード 

    デフォルトなし 

    oracle.security.jaas.ldap.provider.credential 

    キャッシング有効化(チェック・ボックス) 

    デフォルト: true 

    oracle.security.jaas.ldap.lm.cache_enabled 

    接続プーリング有効化(チェック・ボックス) 

    デフォルト: true 

    oracle.security.jaas.ldap.provider.connect.pool 

    表10-2    Application Server Controlの外部LDAP接続プールのオプション 
    オプション  デフォルト  説明 

    接続プールの初期サイズ 

    初めに各接続ID用にプールに作成される接続の数 

    接続プールの最大サイズ 

    25 

    各接続ID用にプールに同時に保持できる接続の最大数 

    接続プールの最適サイズ 

    10 

    プールにおける各接続ID用接続数の希望値 

    アイドル接続タイムアウト(ミリ秒) 

    300000(5分) 

    アイドル接続が削除されるまでプールに保持される時間 


    注意

    前述の接続プール・プロパティは次のものに相当します。

    com.sun.jndi.ldap.connect.pool.initsize
    com.sun.jndi.ldap.connect.pool.maxsize
    com.sun.jndi.ldap.connect.pool.prefsize
    com.sun.jndi.ldap.connect.pool.timeout

    詳細は、次のサイトを参照してください。

    http://java.sun.com/products/jndi/tutorial/ldap/connect/
    config.html
     

    表10-3    Application Server Control外部LDAPユーザーのオプション 
    オプション  必須
    または設定/デフォルト
     
    表10-6での対応オプション(詳細用参照先) 

    ユーザー検索ベース 

    Required 

    oracle.security.jaas.ldap.user.searchbase 

    ユーザー検索範囲 

    「サブツリー」(デフォルト)または「1レベル」(ドロップダウン・メニューから選択)

    注意: ドロップダウン・メニューのデフォルトは「サブツリー」ですが、ベンダーのデフォルトは「1レベル」です。 

    oracle.security.jaas.ldap.user.searchscope 

    LDAPユーザー名の属性 

    Required 

    oracle.security.jaas.ldap.user.name.attribute 

    LDAPユーザー・オブジェクト・クラス 

    Required 

    oracle.security.jaas.ldap.user.object.class 

    表10-4    Application Server Control外部LDAPのロールおよびメンバーのオプション 
    オプション  必須
    または設定/デフォルト
     
    表10-7での対応オプション(詳細用参照先) 

    グループ検索ベース 

    Required 

    oracle.security.jaas.ldap.role.searchbase 

    グループ検索範囲 

    「サブツリー」(デフォルト)または「1レベル」(ドロップダウン・メニューから選択)

    注意: ドロップダウン・メニューのデフォルトは「サブツリー」ですが、ベンダーのデフォルトは「1レベル」です。 

    oracle.security.jaas.ldap.role.searchscope 

    LDAPグループ名の属性 

    Required 

    oracle.security.jaas.ldap.role.name.attribute 

    LDAPグループ・オブジェクト・クラス 

    Required 

    oracle.security.jaas.ldap.role.object.class 

    LDAPグループ・メンバー属性 

    Required 

    oracle.security.jaas.ldap.member.attribute 

    グループ・メンバーシップ検索範囲 

    「ダイレクト」(デフォルト)または「ネステッド」(ドロップダウン・メニューから選択) 

    oracle.security.jaas.ldap.membership.searchscope 

デプロイ後の外部LDAPプロバイダへの変更

アプリケーションで使用するセキュリティ・プロバイダは、前述の項で説明したようにデプロイ時に選択できます。また、デプロイ後に、異なるセキュリティ・プロバイダに変更することもできます。特に、外部LDAPプロバイダに変更するには、次の手順を実行します。

  1. 「アプリケーションの「セキュリティ・プロバイダ」ページへのナビゲート」の説明に従って、アプリケーションの「セキュリティ・プロバイダ」ページを表示します。

  2. 「セキュリティ・プロバイダ」ページで、「セキュリティ・プロバイダの変更」を選択します。

  3. 「セキュリティ・プロバイダの変更」ページで、「セキュリティ・プロバイダ・タイプ」ドロップダウンから、「サード・パーティのLDAPサーバー用のOracleセキュリティ・プロバイダ」を選択します。

  4. 「セキュリティ・プロバイダ属性: サード・パーティのLDAPサーバー用のOracleセキュリティ・プロバイダ」(ドロップダウンで「サード・パーティのLDAPサーバー」を選択すると表示される)で、前項の次の表に記載されているオプションの設定を指定します。

    あるいは、「LDAPディレクトリ・ベンダー」設定で指定されたベンダーに対して「値をベンダーのデフォルトに設定」を選択します。これ以外の場合は、依然として「LDAPロケーション」、「ユーザーDN」、「ユーザー検索ベース」および「グループ検索ベース」を指定する必要があります。

  5. オプションで、デプロイの前に「LDAP認可のテスト」を選択できます。これは、LDAPセッションが正常に作成できるかどうかをテストして、LDAPホスト、ポート、管理ユーザーおよびパスワードなどの主要な設定を確認するものです。

  6. 「OK」を選択し、変更を終了します。

ここで、「セキュリティ・プロバイダ」ページに戻り、変更を反映するためにアプリケーションを再起動するよう求められます。


重要

ロール・マッピングが適切に設定されていて、デプロイ・ロール(外部LDAPプロバイダで定義されているロール)をJ2EE論理ロールに正しくマップすることも確認します。追加情報は、「セキュリティ・ロールのマッピング」を参照してください。 


system-jazn-data.xml内の外部LDAPプロバイダ設定

外部LDAPプロバイダの構成は、system-jazn-data.xmlファイルの<login-module>要素に反映されます。この要素には、OracleAS JAAS Providerで外部LDAPプロバイダに使用されるログイン・モジュールLDAPLoginModuleが構成されます。すべての<login-module>要素は、<jazn-loginconfig>の下の<login-modules>要素のサブ要素です。

<login-module>要素の各オプション設定は、<option>要素(<options>のサブ要素)で表され、外部LDAPプロバイダの構成設定と対応しています。<option>要素の<name>サブ要素ではオプションの名前を指定し、<value>サブ要素では対応する値を指定します。

これらのオプションの設定は、「デプロイ時の外部LDAPプロバイダの指定および構成」に記載されているように、Application Server Controlを介して指定できます。また、その項では、この項にリストされているオプションとApplication Server Controlコンソールに表示されるオプションとの間の対応関係についても示しています。

表10-5表10-6および表10-7に、サポート対象のオプションを示します。表には、Application Server Controlを介して外部LDAPプロバイダを構成し、「値をベンダーのデフォルトに設定」を選択したときに使用されるデフォルト値が示されています(存在する場合)。特に記述されている場合を除き、これらのオプションは必須です。直接指定するか、ベンダー・デフォルトを使用する必要があります。


注意

<jazn-loginconfig>要素は、orion-application.xmlファイルにも使用できます。使用した場合は、そのファイルからsystem-jazn-data.xmlファイルにコピーされます。 


関連項目

 

表10-5    外部LDAPプロバイダのオプション 
オプション名  意味 

oracle.security.jaas.ldap.provider.url 

ldap://host:port形式のLDAPプロバイダのURL。次に例を示します。

ldap://myhost.example.com:389
 

oracle.security.jaas.ldap.provider.principal 

LDAPサーバーへの接続に使用されるLDAPユーザーの識別名(DN)。このユーザーは、ユーザーおよびロールを検索するための権限と、ユーザー・パスワードに対してldapcompareを起動するための権限(これを起動する機能がターゲット・ディレクトリでサポートされている場合)を持つ管理者であることが必要です。  

oracle.security.jaas.ldap.provider.credential 

次のものに定義されているLDAPユーザーの認証に使用される資格証明(一般にパスワード)。

oracle.security.jaas.ldap.provider.principal
 

oracle.security.jaas.ldap.provider.type 

(オプション)LDAPプロバイダの製品名。サポートされる値は、sun directory serveractive directoryおよびotherです。sun directory serverまたはactive directoryを指定すると、ログイン・モジュールでは一部のLDAPプロパティを推測し、なんらかの最適化を実行できます。 

oracle.security.jaas.ldap.provider.connect.pool 

(オプション)接続プーリングを有効にするかどうかを指定するブール値。true設定(デフォルト)は接続プーリングを有効にし、falseは無効にします。 

oracle.security.jaas.ldap.lm.cache_enabled 

(オプション)ログイン・モジュールのキャッシングを有効にするかどうかを指定するブール値。true(デフォルト)はキャッシングを有効にし、falseは無効にします。 

oracle.security.jaas.ldap.context.referral 

(オプション)指定できる値はfollowthrowまたはignoreのいずれか。ログイン・モジュールによる参照の処理方法を示します。指定されていない場合は、プロバイダのデフォルト値が使用されます。このプロパティはデフォルトで指定されていません。 

oracle.security.jaas.ldap.object.category 

(オプション)Active Directoryでのみ使用され、グループ検索フィルタで使用するobjectCategoryを指定します。指定されていない場合、objectCategoryはフィルタに含まれません。このプロパティはデフォルトで指定されていません。 

表10-6    外部LDAPユーザーのオプション 
オプション名  意味 

oracle.security.jaas.ldap.user.name.attribute 

ユーザー名を一意に識別するLDAP属性の名前。デフォルトは、Sun Java System Directory Serverの場合はuidで、Active Directoryの場合はsAMAccountNameです。 

oracle.security.jaas.ldap.user.object.class 

ユーザーを表すために使用されるLDAPスキーマ・オブジェクト・クラスの、1つ以上の空白で区切られたリスト。デフォルトは、Sun Java System Directory ServerまたはActive Directoryのいずれの場合も、inetOrgPersonです。 

oracle.security.jaas.ldap.user.searchbase 

ユーザーを含むLDAPディレクトリ内の識別名(DN)の空白で区切られたリスト。次にDNのサンプルを示します。

cn=users,dc=us,dc=abc,dc=com
 

oracle.security.jaas.ldap.user.searchscope 

ユーザーを検索するLDAPディレクトリ・ツリーの深さを指定します。サポートされる値はsubtreeまたはonelevel(デフォルト)です。 

表10-7    外部LDAPのロールおよびメンバーのオプション 
オプション名  意味 

oracle.security.jaas.ldap.role.name.attribute 

ロール名を一意に識別するLDAP属性の名前。デフォルトは、Sun Java System Directory ServerまたはActive Directoryのいずれの場合も、cnです。 

oracle.security.jaas.ldap.role.object.class 

ロールを表すために使用されるLDAPスキーマ・オブジェクト・クラスの、1つ以上の空白で区切られたリスト。デフォルトは、Sun Java System Directory Serverの場合はgroupOfUniqueNamesで、Active Directoryの場合はgroupです。 

oracle.security.jaas.ldap.role.searchbase 

ロールを含むLDAPディレクトリ内の識別名(DN)の空白で区切られたリスト。次に例を示します。

cn=groups,dc=us,dc=abc,dc=com
 

oracle.security.jaas.ldap.role.searchscope 

ロールを検索するLDAPディレクトリ・ツリーの深さを指定します。サポートされる値はsubtreeまたはonelevel(デフォルト)です。 

oracle.security.jaas.ldap.membership.searchscope 

ロール・メンバーシップを検索するLDAPディレクトリ・ツリーの深さを指定します。サポートされる値はdirectおよび(デフォルト)またはnestedです。direct設定は、当該のロールまたはユーザーに直接割り当てられたロールのみがランタイムにより取得されることを意味します。ロール内にネストされたロールは取得されません。 

oracle.security.jaas.ldap.member.attribute 

ロールのメンバーの識別名(DN)を指定する静的LDAPロール・オブジェクトの属性。デフォルトは、Sun Java System Directory Serverの場合はuniqueMemberで、Active Directoryの場合はmemberです。 

次に例を示します。


<jazn-data ... >
   ...
   <jazn-loginconfig>
      <application>
         <name>callerInfo</name>
         <login-modules>
            <login-module>
               <class>oracle.security.jazn.login.module.LDAPLoginModule</class>
               <control-flag>required</control-flag>
               <options>

                  <option>
                     <name>oracle.security.jaas.ldap.provider.url</name>
                     <value>ldap://myhost.example.com:389</value>
                  </option>
                  ...more options...
               </options>
            </login-module>
            ...
         </login-modules>
      </application>
      ...
   </jazn-loginconfig>
   ...
</jazn-data>

詳細な例は、「system-jazn-data.xml内のSun Java System Directory Server用設定」を参照してください。

必要なアカウントの作成と必要なパーミッションの付与

この項では、外部LDAPプロバイダを使用して必要なアカウントを作成し、必要なパーミッションを付与するときの手順について説明します。この項の内容は次のとおりです。

管理ユーザーとロールの作成およびRMIパーミッションの付与

外部LDAPプロバイダを使用する場合、管理ユーザー・アカウントと管理ロールを定義し、そのロールをユーザーに付与し、必要なパーミッションをそのロールに付与する必要があります。(この手順は、ファイルベースのセキュリティ・プロバイダとOracle Internet Directoryで自動的に処理されます。)

  1. セキュリティ・プロバイダの適切なツールを使用して、外部LDAPディレクトリに管理ユーザー・アカウントを作成します。(名前oc4jadminは規則上、管理アカウントに使用されますが、任意の名前を使用することができます。)

  2. 適切なツールで、外部LDAPディレクトリに管理者ロールoc4j-administratorsおよびascontrol_adminを作成します。これらのロールは、LDAPプロバイダ用に構成されたグループ検索ベースの下に存在する必要があります。(グループ検索ベースの詳細は、表10-4および表10-7を参照してください。)

  3. これらのロールを適切なツールで管理ユーザーに付与します。

  4. 追加の管理者ロールのoc4j-app-administratorsascontrol_appadminおよびascontrol_monitorを作成します。(これらは管理ユーザーに付与する必要はありません。)

  5. 管理者がEJBにアクセスする必要がある場合、これらのロールにRMIパーミッションのloginを付与します。この場合、次の例に示すようにOracleAS JAAS Provider Admintoolを使用できます。

    % java -jar jazn.jar -grantperm myrealm -role oc4j-administrators \
         com.evermind.server.rmi.RMIPermission login
    
    

    ロールは外部LDAPプロバイダで定義されていますが、これらのパーミッション付与はsystem-jazn-data.xmlファイルに格納されていることに注意してください。

    関連項目

     

LDAPプリンシパルへのRMIパーミッションの付与

EJBアプリケーション用の外部LDAPプロバイダを使用するときに、EJBにアクセスする適切なLDAPプリンシパルにRMIパーミッションのloginを付与する必要があります。

次の例では、OracleAS JAAS Provider Admintoolを使用して、LDAPプリンシパルhobbesに対してパーミッションを付与します。

% java -jar jazn.jar -grantperm oracle.security.jazn.realm.LDAPPrincipal hobbes \
       com.evermind.server.rmi.RMIPermission login 

この例を実行すると、ポリシー・リポジトリであるsystem-jazn-data.xmlファイルに次のような構成が生成されます。

<jazn-policy>
   <grant>
      <grantee>
         <principals>
            <principal>
               <class>oracle.security.jazn.realm.LDAPPrincipal</class>
               <name>hobbes</name>
            </principal>
         </principals>
      </grantee>
      ...
      <permissions>
         <permission>
            <class>com.evermind.server.rmi.RMIPermission</class>
            <name>login</name>
         </permission>
         ...
      </permissions>
      ...
   </grant>
   ...
</jazn-policy>

外部LDAPプリンシパルへの追加のパーミッションの付与

外部LDAPプリンシパルが要求する追加パーミッションがあれば、前項に示したRMIパーミッションと同じ方法で付与できます。

外部LDAPプロバイダでのJAASモードの使用

OC4JのJAASモードは、付与されたパーミッションに関する認可のチェックでアプリケーションが要求する場合に、外部LDAPプロバイダを使用するアプリケーションでサポートされます。次の例に示すようにして構成します。

<orion-application ... >
   ...
   <jazn ... jaas-mode="doAsPrivileged" />
   ...
</orion-application>

このモードをいつどのように使用するかの詳細は、「JAASモードの概要」および「JAASモードの構成と使用」を参照してください。

Sun Java System Directory Server用の構成のサンプル

この項では、外部LDAPプロバイダとしてSun Java System Directory Serverを使用するためのサンプル構成を示します。次があります。

この章で前述したようにApplication Server Controlコンソールを使用すると、orion-application.xmlおよびsystem-jazn-data.xmlの設定は自動的に行われます。


注意

Sun Java System Directory Serverのサンプル・ログイン・モジュール・エントリが含まれるテンプレート・ファイルは、ORACLE_HOME/j2ee/home/jazn/configディレクトリのファイルsample_login_module.sunに提供されています。(同様に、Active Directoryのサンプル・ログイン・モジュール・エントリが含まれるテンプレート・ファイルは、ORACLE_HOME/j2ee/home/jazn/configディレクトリのファイルsample_login_module.adに提供されています。) 


サンプルLDIFの説明

前述のSun Java System Directory Serverの例では、次のLDIF記述が使用されることが想定されています。

例10-1    ユーザーとロールを定義するサンプルLDIF

# An example user object entry
uid= jdoe,dc=us,dc=example,dc=com
uid= jdoe
givenName=John
sn=Doe
cn=John Doe
userPassword={SSHA}zD/44JbZY33osry4mzfLn0du7nBhIIAHKDG5Fg==
uidNumber=1
gidNumber=1
homeDirectory=c:\
objectClass=top
objectClass=person
objectClass=organizationalPerson
objectClass= inetOrgPerson
objectClass=posixAccount
 
# An example role object entry
cn=managers,ou=groups,dc=us,dc=example,dc=com
objectClass=top
objectClass= groupOfUniqueNames
cn=managers
uniqueMember=uid=jdoe,dc=us,dc=example,dc=com

OC4J構成ファイルのサンプル・エントリ

この項では、次に示すファイル内にある、外部LDAPプロバイダ用のOC4J構成を示します。

system-jazn-data.xml内のSun Java System Directory Server用設定

Sun Java System Directory Serverのインストールが、例10-1に示されている一連のLDIFエントリによって記述されているとします。system-jazn-data.xmlファイル内の対応する<jazn-loginconfig>エントリを、次の例に示します。

例10-2    例10-1に対応するJAASログイン・モジュール構成

<jazn-data ... >
   ...
   <jazn-loginconfig>
      <application>
         <name>callerInfo</name>
         <login-modules>
            <login-module>
               <class>oracle.security.jazn.login.module.LDAPLoginModule</class>
               <control-flag>required</control-flag>
               <options>
                  <option>
                     <name>oracle.security.jaas.ldap.provider.url</name>
                     <value>ldap://myhost.example.com:389</value>
                  </option>
                  <option>
                     <name>oracle.security.jaas.ldap.user.name.attribute</name>
                     <value>uid</value>
                  </option>
                  <option>
                     <name>oracle.security.jaas.ldap.user.object.class</name>
                     <value>inetOrgPerson</value>
                  </option>
                  <option>
                     <name>oracle.security.jaas.ldap.user.searchbase</name>
                     <value>dc=us,dc=example,dc=com</value>
                  </option>
                  <option>
                     <name>oracle.security.jaas.ldap.role.name.attribute</name>
                     <value>cn</value>
                  </option>
                  <option>
                     <name>oracle.security.jaas.ldap.role.object.class</name>
                     <value>groupOfUniqueNames</value>
                  </option>
                  <option>
                     <name>oracle.security.jaas.ldap.role.searchbase</name>
                     <value>ou=groups,dc=us,dc=example,dc=com</value>
                  </option>
                  <option>
                     <name>oracle.security.jaas.ldap.member.attribute</name>
                     <value>uniqueMember</value>
                  </option>
               </options>
            </login-module>
         </login-modules>
      </application>
   </jazn-loginconfig>
   ...
</jazn-data>

orion-application.xml内の外部LDAPサーバー用設定

外部LDAPプロバイダ用として、orion-application.xmlの次の設定が使用されます。

<jazn provider="XML">
   <property name="custom.ldap.provider" value="true" />
</jazn>

system-jazn.data.xml内のログイン・モジュール情報を同期化するには、OC4Jを再起動する必要があります。

外部LDAPプロバイダでのSSLの使用

この項では、OC4Jで外部LDAPプロバイダを使用するときに、Secure Sockets Layer通信を使用する方法について説明します。この項の内容は次のとおりです。

外部LDAPプロバイダの初期のSSLの注意事項

「SSL認証」では、Secure Sockets Layer通信の認証、一方向認証、双方向認証の様々な認証モードについて説明しています。大多数のLDAPプロバイダは「認証なし」モードをサポートしていないので注意してください(Oracle Internet Directoryではサポートしています)。

外部LDAPプロバイダでSSLを使用するOC4Jの構成

外部LDAPプロバイダに対してSSL通信を有効にするには、LDAPプロバイダ・オプションoracle.security.jaas.ldap.provider.urlに、LDAPSプロトコル、ホスト名、SSL通信用の適切なポートを示すURL値を設定します。構文は、前述のLDAP URLと似ていますが、LDAPSのデフォルト・ポートは389ではなく636です。

外部LDAPプロバイダ構成のApplication Server Controlコンソールを使用する場合、このオプションは「LDAPロケーション」の設定に対応します(「デプロイ時の外部LDAPプロバイダの指定および構成」を参照)。これは「system-jazn-data.xml内の外部LDAPプロバイダ設定」でも説明しています。

たとえば、「LDAPロケーション」をldaps://myhost.example.com:636に設定すると、system-jazn-data.xml内に設定されているoracle.security.jaas.ldap.provider.urlは次のようになります。

   <login-module>
      <class>oracle.security.jazn.login.module.LDAPLoginModule</class>
      <control-flag>...</control-flag>
      <options>
         <option>
            <name>oracle.security.jaas.ldap.provider.url</name>
            <value>ldaps://myhost.example.com:636</value>
         </option>
         ...more options...
      </options>
   </login-module>


重要

この構成は、「認証なし」モードのSSLには十分ですが、外部LDAPプロバイダは(LDAPサーバーとの通信用に)少なくとも一方向認証を必要とする可能性があります。追加の手順の詳細は、次項の「外部LDAPプロバイダのSSLの構成」で説明します。 


外部LDAPプロバイダのSSLの構成

OC4Jと外部LDAPプロバイダ間でSSL通信を行うには次が必要です。

次に示す汎用的な手順で、標準的なJSSE機能と一方向認証を使用するSSL用にActive DirectoryやSun Java System Directory Serverなどの外部LDAPプロバイダを構成できます(現在のリリースでは外部LDAPプロバイダに双方向認証はサポートされません)。

  1. ディレクトリ・サーバーからローカル・マシンにルートCA証明書をインポートします。たとえば、固有のキーストアを作成し、このキーストアにルートCA証明書をインポートします。これはJSSE keytoolで実行できます。

  2. トラストストアに対して必要に応じてJavaシステム・プロパティを設定します。

    • トラストストアとして機能するWalletまたはキーストアへのパスを示す-Djavax.net.ssl.trustStoreプロパティを設定します。

    • トラストストアをセキュアにする必要がある場合は、-Djavax.net.ssl.trustStorePasswordプロパティも設定します。(通常、トラストストアには公開鍵のみ含まれるため、一方向認証ではこの設定は必須ではありません。)

    スタンドアロンOC4Jでは、JVMコマンドラインでこの設定を行います。Oracle Application Server環境では、opmn.xmlファイル内のOC4JインスタンスのJavaプロパティ設定からこれを実行します。

OC4J homeインスタンスのサンプルopmn.xmlエントリを示します。

<ias-component id="OC4J">
   <process-type id="home" module-id="OC4J" status="enabled">
      <module-data>
         <category id="start-parameters">
            <data id="java-options" value="-Xrs -server
                  -Djava.security.policy=
                      $ORACLE_HOME/j2ee/home/config/java2.policy
                  -Djava.awt.headless=true 
                  -Dhttp.webdir.enable=false"
                  -Djavax.net.ssl.trustStore=pathtotruststore/>
         </category>
         ...
      </module-data>
      ...
   </process-type>
</ias-component>

関連項目

 


戻る 次へ
Oracle
Copyright © 2003, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引