プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Unified Directoryの管理
11g リリース2 (11.1.2.3)
E61945-07
  目次へ移動
目次

前
 
次
 

31 Oracle Enterprise User SecurityへのOracle Unified Directoryの統合

Oracle Enterprise User Security (EUS)により、Oracle DatabaseユーザーはLDAP準拠ディレクトリ・サービスに格納されているアイデンティティに対して認証できます。この章では、Oracle Enterprise User Securityと連携するようにOracle Unified Directoryを有効にするための手順を示します。

この章の構成は、次のとおりです。

31.1 Oracle Enterprise User SecurityとOracle Unified Directoryの連携について

Oracle Enterprise User Securityを使用すると、エンタープライズ全体でデータベース・ユーザーを一元的に管理できます。LDAP準拠ディレクトリ・サービスにエンタープライズ・ユーザーを作成して、ディレクトリに登録された様々なエンタープライズ・データベースのロールや特権を割り当てることができます。

ユーザーは、Oracle Unified DirectoryまたはOracle Unified Directoryプロキシ・サーバーによってフロントエンド処理された外部LDAP準拠のディレクトリに格納されている資格証明を指定して、Oracle Databaseに接続します。データベースはLDAP検索操作を実行して、ユーザー固有の認証および認可情報について問い合せます。詳細は、第3.2.6項「構成6: エンタープライズ・ユーザー・セキュリティ」を参照してください。

Oracle Unified Directoryとエンタープライズ・ユーザー・セキュリティとを統合すると、追加の同期を行うことなく、LDAP準拠ディレクトリ・サービスに格納されているユーザーIDを活用できるため、認証機能と認可機能が強化され、かつ簡素化されます。

Oracle Enterprise User Securityの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。

31.2 始める前に

Oracle Unified DirectoryとOracle Enterprise User Securityを統合する前に、Oracle Unified Directoryがトポロジでどのような役割を果たすのかを検討してください。また、会社全体の他のビジネス要件についても検討してください。統合を始める前に、様々な統合オプションに必要なすべてのタスクおよびステップをレビューします。

OUDは、トポロジでディレクトリ・サーバーまたはディレクトリ・プロキシとして使用されますか。

OUDをディレクトリ・サーバーとして使用する場合、インストールは簡単で、構成はOUDに含まれています。詳細は、第31.3.1項「エンタープライズ・ユーザー・セキュリティ向けディレクトリとしてのOracle Directory Serverの構成」を参照してください。

OUDをディレクトリ・プロキシとして使用する場合、ユーザー・エントリを格納する外部LDAP準拠ディレクトリを構成するために追加のステップを実行する必要があります。詳細は、第31.3.2項「外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directory Proxyの構成」を参照してください。

既存のディレクトリまたはプロキシ・インスタンスを構成していますか、あるいは新しいインスタンスをインストールしていますか。

エンタープライズ・ユーザー・セキュリティと連携するように既存のディレクトリまたはプロキシ・インスタンスを構成している場合、一部の構成ステップを手動で完了する必要があります。詳細は、次を参照してください:

新しいディレクトリまたはプロキシ・インスタンスをインストールしている場合、設定中にエンタープライズ・ユーザー・セキュリティ・オプションを選択できます。新しいインスタンスは、EUS統合用に自動的に構成されます。詳細は、次を参照してください:

追加でビジネス要件を検討する必要があります。

詳細は、次を参照してください:

31.3 Oracle Unified DirectoryとOracle Enterprise User Securityの連携の有効化

この項では、次のステップを段階的に示します。


注意:

エンタープライズ・ユーザー・セキュリティの統合を有効にするために、匿名検索アクセスをOracle Unified Directoryで有効化します。Oracle Net Configuration Assistant (NetCA)が構成中にOracle Unified Directoryに対して匿名検索を実行するため、これが必要です。NetCAを使用して構成した後、匿名アクセスを無効化できます。第28.5.1項「匿名アクセスの無効化」を参照してください。

始める前に

これらの手順では、複数のOracle製品に加え、トポロジに配置する外部LDAP準拠ディレクトリも構成する必要があります。始める前に、次のコンポーネントとそれぞれに添付されている最新のドキュメントにアクセスできることを確認してください。

  • Oracle Unified Directory、ODSM、oud-setupコマンドおよびoud-proxy-setupコマンド

  • Oracle Enterprise User Security Net Configuration Assistant

  • Database Configuration Assistant for Oracle Database

  • Enterprise Manager for Oracle Database

  • トポロジに存在する、サポートされるLDAPディレクトリ(Microsoft Active Directory、Novell eDirectory、Oracle Unified Directory、またはOracle Directory Server Enterprise Edition)

31.3.1 エンタープライズ・ユーザー・セキュリティ向けディレクトリとしてのOracle Directory Serverの構成

エンタープライズ・ユーザー・セキュリティのディレクトリとしてOracle Directory Serverを構成するには、次の項のタスクを完了します。

31.3.1.1 タスク1: エンタープライズ・ユーザー・セキュリティと連携するようにOracle Unified Directoryを構成する

31.3.1.1.1 新しいOracle Unified Directoryインスタンスのインストールおよびエンタープライズ・ユーザー・セキュリティと連携するための構成

oud-setupプログラムを実行します。コマンド行またはグラフィカル・ユーザー・インタフェースを使用できます。

  • 次の--cliオプションを指定してoud-setupを実行します。例:

    $ oud-setup --cli --integration eus --no-prompt --ldapPort 1389\
     --adminConnectorPort 4444 -D "cn=directory manager"\
     --rootUserPasswordFile pwd.txt --ldapsPort 1636\
     --generateSelfSignedCertificate --baseDN "dc=example,dc=com"
    

    oud-setupとそのすべてのオプションを使用する方法の詳細は、Oracle Fusion Middleware Oracle Unified Directoryインストレーション・ガイドのディレクトリ・サーバーの設定に関する項を参照してください。

    設定中に、--baseDNオプションに指定したベースDNがEUSのために準備されます。複数のベースDNを指定した場合は、そのすべてがEUSのために準備されます。


  • グラフィカル・ユーザー・インタフェースを使用するには、次のようにします。

    1. oud-setupコマンドを実行します。

    2. 「ようこそ」ページで、「次へ」をクリックします。

    3. 「サーバー設定」ページで、次の情報を指定します。

      1. ホスト名

        これは、ユーザーおよびグループが格納されるOracle Unified Directoryインスタンスのホストとなるサーバーです。

      2. 管理コネクタ・ポート

        これは、dsconfigなどのOUDツールによって使用される管理ポートです。

      3. LDAPリスナー・ポート

        OUDによって使用されるポートを指定します。

      4. LDAPセキュア・アクセス

        「構成」をクリックして、セキュア・アクセスを有効にします。

        「セキュア・アクセスの構成」ウィンドウで、「SSLを有効にするポート」チェック・ボックスをクリックしてマークします。次に、LDAPSのポート番号を入力し、「OK」をクリックして続行します。

      5. ルート・ユーザーDN

        これは、サーバー管理者のIDです。

      6. パスワード

        サーバー管理者が使用するパスワードを入力します。

      7. パスワード(確認)

        確認のためもう一度パスワードを入力します。

      「次へ」をクリックして続行します。

    4. 「トポロジ・オプション」ページで、「これはスタンドアロン・サーバーになります」オプションが選択されていることを確認し、「次へ」をクリックします。

    5. 「ディレクトリ・データ」ページで、次の情報を指定します。

      1. ディレクトリ・ベースDN

        ユーザー・エントリを格納するベースDNを入力します。

      2. ディレクトリ・データ

        「データベースを空のままにする」オプションを選択しないでください。次のいずれかのオプションを選択します。

        「ベース・エントリのみを作成する」は、以前指定したベースDNでエントリを作成します。

        「LDIFファイルからデータをインポートする」は、「パス」フィールドで指定したファイルからLDIFデータをインポートします。

        「自動生成されたサンプル・データのインポート」は、「ユーザー・エントリの数」フィールドで指定した数のサンプル・エントリを生成します。

        「次へ」をクリックします。

    6. 「Oracleコンポーネントの統合」ページで、「EUS (エンタープライズ・ユーザー・セキュリティ)、EBS、Database Net ServicesおよびDIPで有効にする」オプションを選択します。このオプションにより、Database Net Servicesのサーバーも有効になります。

      「次へ」をクリックして続行します。

    7. 「サーバー・チューニング」ページで、チューニングを構成するか、または「次へ」をクリックできます。

      チューニング構成については、インストレーション・ガイドを参照してください。

    8. 「確認」ページで設定を確認し、「完了」をクリックします。

      Oracle Unified Directoryの新しいインスタンスがインストールされ、構成されたうえで起動されます。

31.3.1.1.2 コマンド行を使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directoryサーバーの構成

EUSの既存のネーミング・コンテキストを構成したり、EUSの新しいネーミング・コンテキストを作成および構成できます。

  • EUSの既存のネーミング・コンテキストを使用するには、manage-suffix updateコマンドを実行します。例:

    $ manage-suffix update -h host -p adminPort -D "cn=directory manager" -j pwd.txt -X -n -b baseDN --integration eus
    

    このコマンド行は、EUSのベースDNとして指定されたネーミング・コンテキストを構成します。

  • EUSの新しいネーミング・コンテキストを作成するには、manage-suffix createコマンドを実行します。例:

    $ manage-suffix create -h host -p adminPort -D "cn=directory manager" -j pwd.txt -X -n -b baseDN --integration eus
     
    

manage-suffixコマンドの詳細は、第17.2項「manage-suffixを使用した接尾辞の管理」を参照してください。

31.3.1.1.3 ODSMを使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directoryサーバーの構成

始める前に、SSLが有効化されたLDAP接続ハンドラがサーバー・インスタンスに存在することを確認します。SSLが有効でない場合は、LDAP接続ハンドラを追加します。LDAP接続ハンドラの追加については、第17.1項「dsconfigを使用したサーバー構成の管理」および第17.1.5.2項「LDAP接続ハンドラの構成」を参照してください。

EUSの既存のネーミング・コンテキストを構成したり、EUSの新しいネーミング・コンテキストを作成および構成できます。

  • ODSMを使用してEUSの既存のネーミング・コンテキストを構成するには、次のようにします。

    1. ODSMからディレクトリ・サーバーに接続します。

    2. 「構成」タブをクリックします。

    3. 左側のナビゲーション・ペインの「ネーミング・コンテキスト」の下で、使用するネーミング・コンテキストを選択します。

    4. 右側のペインの「Oracleコンポーネント統合」セクションで、「エンタープライズ・ユーザー・セキュリティ(EUS)に使用可能」を選択し、「適用」をクリックします。

  • ODSMを使用してEUSの新しいネーミング・コンテキストを作成および構成するには、次のようにします。

    1. 第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。

    2. 「ホーム」タブをクリックします。

    3. 「構成」メニューで、「ローカル・ネーミング・コンテキストの作成」を選択します。

    4. 「新規ローカル・ネーミング・コンテキスト」ウィンドウで、次の情報を指定します。

      1. ベースDN

        作成する接尾辞の名前を入力します。ユーザー・データがすでに移入されている既存の接尾辞では、EUSの有効化はできません。

      2. ディレクトリ・データ・オプション

        次のいずれかを選択します。

        「ベース・エントリの作成のみ」では、接尾辞のベース・エントリとともにデータベースが作成されます。その他のエントリは、接尾辞の作成後に追加する必要があります。

        「データベースを空のままにする」では、空のデータベースが作成されます。このオプションは選択しないでください。

        このオプションを使用するときは、接尾辞の作成後にベース・エントリおよびその他のエントリを追加する必要があります。ただし、この構成の場合、接尾辞にはエントリが1つ以上含まれている必要があります。

        「生成されたサンプル・データのインポート」を選択すると、接尾辞にサンプル・エントリが移入されます。

        「ユーザー・エントリ数」フィールドに、生成するエントリ数を指定します。ODSMを使用してインポートできるサンプル・エントリ数は、最大30,000です。30,000を超える数のエントリを追加する場合は、import-ldifコマンドを使用する必要があります。

      3. Oracleコンポーネント統合

        新しい接尾辞を有効にするには、エンタープライズ・ユーザー・セキュリティ(EUS)に対して「有効化」を選択します。

      4. ネットワーク・グループ

        1つ以上のネットワーク・グループに接尾辞をアタッチします。

        接尾辞を既存のネットワーク・グループにアタッチするには、「既存のものを使用」を選択し、リストから必要なネットワーク・グループを選択します。

        接尾辞を新しいネットワーク・グループにアタッチするには、「新規作成」を選択し、作成するネットワーク・グループの名前を「名前」フィールドに入力します。

        同じ接尾辞を複数のネットワーク・グループにアタッチできます。

      5. ワークフロー要素

        接尾辞をワークフロー要素にアタッチします。

        接尾辞を既存のワークフロー要素にアタッチするには、次のようにします。

        「既存のものを使用」を選択し、リストから必要なワークフロー要素を選択します。

        接尾辞は、同じデータベース・ローカル・バックエンド・ワークフロー要素内に格納され、Berkeley DBファイルへのインスタンス・パスなどの同じプロパティを持ちます。

        接尾辞を新しいワークフロー要素にアタッチするには、次のようにします。

        「新規作成」を選択し、作成するワークフロー要素の名前を「名前」フィールドに入力します。

        この新しいワークフロー要素をBerkeley DBファイルやデータベース・キャッシュ・サイズなどのその他の値とともに構成できます。

    5. 「作成」をクリックします。

      次の確認メッセージが表示されます:

      ネーミング・コンテキストは正常に作成されました。

31.3.1.2 タスク2: ユーザーおよびグループの場所を構成する

EUSまたはOracle E-Business Suiteに対するOracle Unified Directoryの構成後、次のステップを実行してユーザーおよびグループの格納に使用されるネーミング・コンテキストを構成する必要があります。

  1. LDIFテンプレート・ファイル(install_directory/config/EUS/modifyRealm.ldif)を見つけます。

  2. modifyRealm.ldifファイルを次のように編集します:

    • dc=example,dc=comをサーバー・インスタンスの現在のネーミング・コンテキストに置き換えます。

    • ou=peopleou=groupsをDIT内のユーザー・エントリとグループ・エントリの現在の場所にそれぞれ置き換えます。

  3. ldapmodifyコマンドを使用して、編集済のLDIFテンプレート・ファイルで構成を更新します。例:

    $ ldapmodify -h localhost -p 1389 -D "cn=directory manager" -j pwd-file -f modifyRealm.ldif
    

    注意:

    LDAP接続ハンドラがクライアントからの接続をリスニングするポート番号(例:1389)を指定してください。4444の管理ポート番号は指定しないでください。

31.3.1.3 タスク3: エンタープライズ・ユーザー・セキュリティによって使用されるOracleコンテキストを選択する

エンタープライズ・ユーザー・セキュリティは、EUSメタデータとも呼ばれる自身の構成をOracleコンテキストに格納します。これはディレクトリ情報ツリーの一部に対応しています。ユーザー・エントリがdc=example,dc=comの下に格納されている場合、EUSは通常Oracleコンテキストとしてcn=OracleContext,dc=example,dc=comを使用するように構成されます。

EUSが自身の構成を読み取る場所を示すには、Oracle Net Configuration Assistantを使用します。

  1. Oracle Net Configuration Assistantを起動するには、データベースがインストールされているホストでnetcaコマンドを実行します。

  2. 「ようこそ」ページで、「ディレクトリ使用構成」を選択し、「次へ」をクリックします。

    後続のページで、次の情報を指定します。

    • ディレクトリ・タイプ

      LDAPサーバーがOracle Virtual DirectoryまたはOracle Unified Directoryである場合でも、「Oracle Internet Directory」を選択します。

      「次へ」をクリックします。

    • ホスト名

      LDAPサーバーのホストとなっているサーバーのホスト名またはIPアドレスを入力します。

    • ポート

      LDAPポート番号を入力します。

    • SSLポート

      LDAPSポート番号を入力します。

    • Oracleコンテキスト

      cn=OracleContextを選択しないでください。そのかわり、矢印をクリックして、OracleContextの場所を表示および選択します。

      「次へ」をクリックします。

  3. 「ディレクトリ使用構成が完了しました。」というメッセージが表示されたら、「次へ」をクリックします。

  4. 「ようこそ」ページが表示されたら、「終了」をクリックします。

  5. LDAPサーバー情報が含まれている構成ファイルをNet Configuration Assistantが正常に作成したことを検証するには、次のコマンドを実行します。

    # cat $ORACLE_HOME/network/admin/ldap.ora
    # ldap.ora Network Configuration File: /app/oracle/product/db/product/11.2.0/dbhome_1/network/admin/ldap.ora
    # Generated by Oracle configuration tools.
    DIRECTORY_SERVERS= (oudhost:1389:1636)
    DEFAULT_ADMIN_CONTEXT = "dc=example,dc=com"
    DIRECTORY_SERVER_TYPE = OID
    

    データベースによって使用される構成ファイルには、LDAPサーバーのホスト名およびポートが含まれています。この例では、情報は(oudhost:1389:1636)として表されます。高可用性のデプロイメントを実現するために複数のサーバーをカンマで区切って指定できます。第31.4.2項「高可用性トポロジでのOracle Unified Directoryおよびエンタープライズ・ユーザー・セキュリティの使用」を参照してください。

    この例では、dc=example,dc=comはEUSメタデータとも呼ばれるEUS構成の格納に使用されるOracleコンテキストを表しています。

31.3.1.4 タスク4: LDAPサーバーにデータベースを登録する

このタスクを完了するには、Oracle DatabaseのDatabase Configuration Assistantを使用します。

  1. データベースがインストールされているホストでdbcaコマンドを実行します。

    Oracle DatabaseのDatabase Configuration Assistantが表示されます。「次へ」をクリックし、後続のページで次の情報を指定します。

    • 実行する操作を選択してください。

      「データベース・オプションの構成」を選択し、「次へ」をクリックします。

    • データベース

      リスト・ボックスで、登録するデータベースを選択します。次に、「次へ」をクリックします。

      Database Configuration Assistantは、データベースがLDAPサーバーにすでに登録されているかどうかを判別します。

    • このデータベースをディレクトリ・サービスに登録しますか。

      「データベースを登録する」を選択します。Database Configuration Assistantは、Oracleコンテキストにデータベースのエントリを作成します。

    • ユーザーDN

      ユーザーDNは、LDAPサーバーに対して認証するために使用します。ユーザーDNは、Oracleコンテキストにデータベース・エントリを作成する追加操作でも使用されます。ユーザーは、LDAPサーバーへの書込みアクセス権を持っている必要があります。

    • パスワード

      Database Configuration Assistantは、データベースのウォレットを作成します。データベース・エントリDNおよびパスワードは、ウォレットに格納されます。データベースは、LDAPサーバーに接続するとき、このウォレットに格納されている資格証明を使用して認証されます。

    • データベース・コンポーネント

      このページには何も変更を加えず、「次へ」をクリックします。

    • 接続モード

      「専用サーバー・モード」を選択し、「終了」をクリックします。

    • 確認

      「OK」をクリックして、データベースを登録します。

    • 別の操作を実行しますか。

      「いいえ」をクリックして、Database Configuration Assistantアプリケーションを終了します。

  2. Database Configuration Assistantがデータベースの新しいエントリを正常に作成したことを検証するには、次のコマンドを実行します。cn=orcl11gは、前のステップで指定したデータベースの名前です。

    $ ldapsearch -h oudhost -p 1389 -D "cn=directory manager" -j pwd.txt -b cn=oraclecontext,dc=example,dc=com "(cn=orcl11g)"
    dn: cn=orcl11g,cn=OracleContext,dc=example,dc=com
    orclVersion: 112000
    orclcommonrpwdattribute: {SASL -MD5}eW5+2LTPRKzFmHxmMZQmnw==
    objectClass: orclApplicationEntity
    objectClass: orclService
    objectClass: orclDBServer_92
    objectClass; orclDBServer
    objectClass: top
    orclServiceType: DB
    orclSid: orcl11g
    oracleHome: /app/oracle/product/db/product/11.2.0/dbhome_1
    cn: orcl11g
    orclSystemName: oudhost 
    userPassord: {SSHA}oNeBEqkUMtDusjXNXJPpa7qa+Yd0b9RHvA==
    orclNetDescString: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST)=oudhost)
    (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl11g)))
    orclDBGLOBALNAME: orcl11g
    orclNetDescName: 000:cn= DESCRIPTION_0
    

31.3.1.5 タスク5: ロールおよび権限を構成する

このタスクのステップを完了するには、Oracle Enterprise Managerを使用します。

31.3.1.5.1 ステップA: データベースに共有スキーマを作成する

次のSQLコマンドを実行します。

SQL> CREATE USER global_ident_schema_user IDENTIFIED GLOBALLY;
User created.
SQL> GRANT CONNECT TO global_ident_schema_user;
Grant succeeded.
31.3.1.5.2 ステップB: 新しいユーザー・スキーマ・マッピングを作成する
  1. Webブラウザで、Enterprise Managerに接続します。例:

    https://localhost:1158/em

    次を指定し、「ログイン」をクリックします。

    • ユーザー名

      データベースの管理を許可されているユーザーの名前を入力します。

    • パスワード

      管理者パスワードを入力します。

    • 接続モード

      SYSDBAを選択します。

      「ログイン」をクリックします。

  2. 「サーバー」タブをクリックします。

    「サーバー」タブの「セキュリティ」セクションで、「エンタープライズ・ユーザー・セキュリティ」をクリックします。

  3. 「Oracle Internet Directoryログイン: エンタープライズ・ユーザー・セキュリティ」ページで、次の情報を指定します。

    • ユーザー

      Oracleコンテキストへの書込みアクセス権を持つユーザーのユーザー名(たとえば、cn=directory manager)を入力します。

    • パスワード

      同じユーザーのパスワードを入力します。

    「ログイン」をクリックします。

  4. 「エンタープライズ・ユーザー・セキュリティ」ページで、「エンタープライズ・ドメインの管理」をクリックします。

    エンタープライズ・ドメインには、1つ以上のデータベースを含めることができます。エンタープライズ・ドメインの設定は、そのドメインに含まれているすべてのデータベースに適用されます。

  5. 「エンタープライズ・ドメインの管理」ページで、構成するドメインを選択し、「構成」をクリックします。

  6. 「ドメインの構成」ページで、「ユーザー・スキーマ・マッピング」をクリックします。

  7. 「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。

  8. ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。

    1. グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。

      グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。

      1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。

      2. 「ユーザーの選択」ページで、サブツリーを選択します。

      3. 選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。「選択」をクリックします。

      グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。

      1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。

      2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。「選択」をクリックします。

    2. 宛先

      1. 「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。

      2. たとえば、global_ident_schema_userとします。

    「続行」をクリックします。

  9. 「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。

31.3.1.5.3 ステップC: データベースにロールを作成する

この例の場合、hr_accessという名前のロールが作成されます。ロールにより、hr.employees表への読取りアクセス権が付与されます。

データベースにロールを作成するには、次のようにします。

SQL> CREATE ROLE hr_access IDENTIFIED GLOBALLY;
Role created.
SQL> GRANT SELECT ON hr.employees TO hr_access;
Grant succeeded.

詳細は、Oracle Databaseのドキュメントを参照してください。

31.3.1.5.4 ステップD: ドメインに新しいロールを作成する
  1. 「エンタープライズ・ドメインの管理」ページで、ロールを作成するドメインを選択し、「構成」をクリックします。

  2. 「ドメインの構成」ページで、「エンタープライズ・ロール」をクリックします。「作成」をクリックします。

  3. 「エンタープライズ・ロールの作成」ページで、次の情報を指定します。

    1. 「名前」フィールドに、エンタープライズ・ロールの名前を指定します。

    2. 「DBグローバル・ロール」タブで、「追加」をクリックします。

  4. 「検索と選択: データベース・グローバル・ロール」ページで、次の情報を指定します。

    • データベース

      ドロップダウン・リストからデータベースを選択します。

    • ユーザー名

      Enterprise Managerは、データベースから使用可能なロールを取得します。ロールへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA)を入力します。

    • パスワード

      管理者パスワードを入力します。

    「実行」をクリックします。

  5. 「検索と選択: データベース・グローバル・ロール」ページで、エンタープライズ・ユーザーに付与するグローバル・ロールを選択します。

    「選択」をクリックします。

  6. 「エンタープライズ・ロールの作成」ページで、エンタープライズ・ロールを付与するエンタープライズ・ユーザーまたはグループを選択し、「権限受領者」タブをクリックします。

  7. 「権限受領者」タブで、エンタープライズ・ユーザーまたはグループを選択するには、「追加」をクリックします。

  8. 選択: ユーザーおよびグループ・ページで、「実行」をクリックします。Enterprise Managerは、使用可能なユーザーおよびグループを取得します。

    • 表示

      ユーザーまたはグループを検索できます。

    • 検索ベース

      Enterprise Managerは、このDNで検索を開始します。

    • 名前

      ここに文字列を入力して、検索を絞り込みます。たとえば、名前がjoで始まるユーザーを検索する場合は、「jo」と入力し、「実行」をクリックします。

      表には、関連するエントリが表示されます。リストから、エンタープライズ・ロールを付与するユーザーおよびグループを選択し、「選択」をクリックします。

      「続行」をクリックします。

  9. 「ドメインの構成」ページで、「OK」をクリックして続行します。

  10. 「エンタープライズ・ロールの編集」ページで、「続行」をクリックします。

  11. 「ドメインの構成」ページで、「OK」をクリックします。

    ロールが正常に作成された後、「構成」をクリックします。

31.3.1.5.5 ステップE: データベースにプロキシ権限を定義する

ユーザーSHにプロキシ権限を定義するには、次のコマンドを実行します。

SQL> ALTER USER SH GRANT CONNECT THROUGH ENTERPRISE USERS;
User altered.
 

このコマンドは、ユーザーSHのプロキシ権限を定義します。

31.3.1.5.6 ステップF: 新しいプロキシ権限を作成する
  1. ドメイン情報の構成ページで、構成するドメインを選択し、「構成」をクリックします。

  2. 「ドメインの構成」ページで、「プロキシ権限」をクリックします。

  3. 新しいプロキシ権限を作成するには、「プロキシ権限」タブで「作成」をクリックします。

  4. 「プロキシ権限の作成」ページで、「名前」フィールドに、プロキシ権限の名前を指定します。

  5. 「ターゲットDBユーザー」タブで、「追加」をクリックします。

  6. 「検索と選択: データベース・ターゲット・ユーザー」ページで、次の情報を指定します。

    • データベース

      ドロップダウン・リストからデータベースを選択します。

    • ユーザー名

      ユーザーへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA)を入力します。

    • パスワード

      管理者パスワードを入力します。

    「実行」をクリックします。

    Enterprise Managerは、データベースから使用可能なターゲット・ユーザーを取得します。

  7. 「検索と選択」ページで、プロキシ権限のターゲット・ユーザーを選択し、「選択」をクリックします。

  8. 「プロキシ権限の作成」ページで、「権限受領者」タブをクリックします。

  9. 「権限受領者」タブで、「追加」をクリックします。

  10. ユーザーおよびグループの選択ページで、「実行」をクリックします。Enterprise Managerは、使用可能なエンタープライズ・ユーザーを取得します。

    選択: ユーザーおよびグループ・ページで、プロキシ権限を付与するユーザーを選択します。次に、「選択」をクリックして続行します。

  11. 「プロキシ権限の作成」ページで、「続行」をクリックします。

  12. 「ドメインの構成」ページで、「OK」をクリックして続行します。

31.3.1.5.7 ステップG: 特定のデータベース用にマッピングを構成する
  1. 「エンタープライズ・ユーザー・セキュリティ」ページで、「データベースの管理」をクリックします。

  2. 「データベースの管理」ページで、構成するデータベースを選択し、「構成」をクリックします。

  3. 「データベースの構成」ページで、「ユーザー・スキーマ・マッピング」タブをクリックします。

  4. 「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。

  5. ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。

    1. グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。

      グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。

      1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。

      2. 「ユーザーの選択」ページで、サブツリーを選択します。

      3. 選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。「選択」をクリックします。

      グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。

      1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。

      2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。「選択」をクリックします。

    2. 宛先

      1. 「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。

      2. たとえば、global_ident_schema_userとします。

    「続行」をクリックします。

  6. 「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。

31.3.1.6 タスク6: データベース構成をテストする

この時点でエンタープライズ・ユーザー・セキュリティには次の構成が含まれています。

  • dc=example,dc=comの下のすべてのユーザーにグローバル・スキーマを付与するユーザー・スキーマ・マッピング

  • uid=user.0,ou=people,dc=example,dc=comHR_ACCESSを付与するエンタープライズ・ロール

  • プロキシ・ユーザーSHuid=user.1,our=people,dc=example,dc=comを許可するプロキシ権限

データベース構成をテストするには、次のようにします。

  1. sqlplusを実行して、user.0でデータベースに接続します。

    次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.0,ou=people,dc=example,dc=com用に構成されたパスワードをLDAPサーバーに指定します。

    # sqlplus user.0
     
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014
     
    Copyright  (c) 1982, 2010, Oracle. All rights reserved.
     
    Enter password:
     
    Connected to: 
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> select * from session_roles;
     
     
    Role
    -------------------------------
    CONNECT
    HR_ACCESS
     
    SQL>
    

    この例では、次の内容から、データベースがuser.0などのユーザーに対して正しく構成されていることがわかります。

    • Connected to:で始まる行は、認証が正常に完了したことを示しています。

    • SQL> select * from session_roles;
      で始まる行により、ユーザーは自身に付与されたロールを確認できます。

    • データベース・ロールHR_ACCESSは、エンタープライズ・ロールによって付与されます。

  2. sqlplusを実行して、user.1資格証明でデータベースに接続します。

    次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com用に構成されたパスワードをLDAPサーバーに指定します。

    # sqlplus user.1
     
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014
     
    Copyright  (c) 1982, 2010, Oracle. All rights reserved.
     
    Enter password:
     
    Connected to: 
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> select * from session_roles;
     
     
    Role
    -------------------------------
    CONNECT
     
     
    SQL>
    

    この例では、次の内容から、データベースがuser.1などのユーザーに対して正しく構成されていることがわかります。

    • Connected to:で始まる行は、認証が正常に完了したことを示しています。

    • SQL> select * from session_roles;
      で始まる行により、ユーザーは自身に付与されたロールを確認できます。

    • 唯一のデータベース・ロールがCONNECTで、これはグローバル・スキーマによって付与されます。

  3. プロキシ権限をユーザーSHとして使用し、sqlplusを実行してuser.1資格証明でデータベースに接続します。

    次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com用に構成されたパスワードをLDAPサーバーに指定します。

    # sqlplus user.1[sh]
     
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014
     
    Copyright  (c) 1982, 2010, Oracle. All rights reserved.
     
    Enter password:
     
    Connected to: 
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> select * from session_roles;
     
     
    Role
    -------------------------------
    RESOURCE
    SELECT_CATALOG_ROLE
    HS_ADMIN_SELECT_ROLE
    CWM_USER
     
     
    SQL>
    

    この例では、次の内容から、データベースがuser.1などのユーザーに対して正しく構成されていることがわかります。

    • Connected to:で始まる行は、認証が正常に完了したことを示しています。

    • SQL> select * from session_roles;
      で始まる行により、ユーザーは自身に付与されたロールを確認できます。

    • ユーザーuser.1は、プロキシ認証によってユーザーSHのロールを継承します。

31.3.2 外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するようにOracle Unified Directory Proxyを構成する

外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するようにOracle Unified Directory Proxyを構成するには、次の項で説明するタスクを完了します。

31.3.2.1 タスク1: 外部LDAPディレクトリにユーザー・アイデンティティを構成する

既存のユーザーおよびグループのアイデンティティをエンタープライズ・ユーザー・セキュリティによって認識されるように構成します。外部LDAPディレクトリに基づいて次の中から選択します。

31.3.2.1.1 Microsoft Active Directoryにユーザー・アイデンティティを構成する手順
  1. Active Directoryイメージのバックアップ・コピーを作成します。Active Directory内部のスキーマ拡張は永続的で、キャンセルできません。バックアップ・イメージがあると、必要になったときに変更をすべてリストアできます。

  2. Oracle Unified Directoryに組み込まれているJavaクラスを使用してエンタープライズ・ユーザー・セキュリティの必須スキーマであるExtendADをActive Directoryにロードするために、次のコマンドを実行します。

    ExtendADファイルは、$ORACLE_HOME/config/EUS/ActiveDirectory/ディレクトリ(UNIXの場合)またはORACLE_HOME\config\EUS\ActiveDirectory\ディレクトリ(Windowsの場合)にあります。ORACLE_HOME/jdk/binディレクトリのjava実行可能ファイルを使用できます。

    java ExtendAD -h Active_Directory_Host_Name -p Active_Directory_Port 
    -D Active_Directory_Admin_DN -w Active_Directory_Admin_Password
    –AD Active_Directory_Domain_DN -commonattr
    

    例:

    java ExtendAD -h myhost -p 389 -D cn=administrator,cn=users,dc=example,dc=com -w <pwd> -AD dc=example,dc=com -commonattr
    
  3. 次のステップに従って、Oracle Unified Directoryパスワード変更通知プラグインoidpwdcn.dllをインストールします:

    1. Windowsのタイプに応じて、次の操作を行います:

      Windows 32ビット

      OUD_HOME\config\EUS\ActiveDirectory\win\oidpwdcn.dllファイルをActive DirectoryのWINDOWS\system32ディレクトリにコピーします。

      Windows 64ビット

      OUD_HOME\config\EUS\ActiveDirectory\win64\oidpwdcn.dllファイルをActive DirectoryのWINDOWS\system32ディレクトリにコピーします。

    2. regedt32またはregedt64を使用してレジストリを編集し、oidpwdcn.dllを有効にします。コマンド・プロンプトでregedt32と入力して、regedt32を起動します。

    3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\レジストリにあるNotification Packagesエントリの末尾にoidpwdcnを追加します。例:

      RASSFM
      KDCSVC
      WDIGEST
      scecli
      oidpwdcn
      

      このステップによって、パスワードDLLが有効化され、EUSで必要なパスワード検証がorclCommonAttribute属性に移入されます。

    4. 変更したら、Active Directoryシステムを再起動します。

  4. すべてのActive Directoryユーザーのパスワードをリセットすることで、プラグインがパスワード変更を取得して、パスワード検証を生成および格納できるようにします。

  5. 次のステップに従って、Active Directoryの設定を検証します:

    1. Active Directoryユーザーのパスワードを変更します。

    2. パスワードを変更したユーザーをActive Directoryで検索します。orclCommonAttribute属性に、生成されたハッシュ・パスワード値が含まれることを確認します。

      この値は、Active DirectoryにorclCommonAttribute属性定義を追加します。


注意:

エンタープライズ・ユーザーとエンタープライズ・グループの詳細を格納するOracle Unified Directoryのデフォルトのパスワード・ポリシーを変更します。プロキシ・サーバーとして機能するOracle Unified Directoryインスタンスのデフォルトのパスワード・ポリシーは変更しないでください。

31.3.2.1.2 Oracle Directory Server Enterprise Editionにユーザー・アイデンティティを構成する手順

Oracle Directory Server Enterprise Editionからldapmodifyコマンドを次のように実行して、アカウント・ロックの拡張操作を有効化します:

ldapmodify -h <ODSEE Server> -p <ODSEE port> -D <ODSEE Admin ID> -w <ODSEE Admin password>
dn: oid=1.3.6.1.4.1.42.2.27.9.6.25,cn=features,cn=config
changetype: add
objectclass: directoryServerFeature
oid: 1.3.6.1.4.1.42.2.27.9.6.25
cn: Password Policy Account Management
31.3.2.1.3 Novell eDirectoryにユーザー・アイデンティティを構成する手順

eDirectoryでユニバーサル・パスワードを有効化し、管理者がユーザー・パスワードを取得できるようにします。詳細は、Novell eDirectoryのパスワード管理に関するドキュメントを参照してください。

31.3.2.1.4 Oracle Unified Directoryにユーザー・アイデンティティを構成する手順

dsconfigコマンドを次のように実行して、パスワード記憶スキームとしてSalted SHA-1を使用するようにデフォルトのパスワード・ポリシーを変更します。

./dsconfig -h <OUD host> -p <OUD admin port> -D <OUD dirmgr> -j <pwdfile>
-X -n set-password-policy-prop\
--policy-name "Default Password Policy"\ 
--set default-password-storage-scheme:"Salted SHA-1"

注意:

エンタープライズ・ユーザーとエンタープライズ・グループの詳細を格納するOracle Unified Directoryのデフォルトのパスワード・ポリシーを変更します。プロキシ・サーバーとして機能するOracle Unified Directoryインスタンスのデフォルトのパスワード・ポリシーは変更しないでください。

31.3.2.2 タスク2: エンタープライズ・ユーザー・セキュリティと連携するようにOracle Unified Directory Proxyを構成する

31.3.2.2.1 コマンド行を使用した、新しいOracle Unified Directory Proxyのインストールおよび構成
  1. oud-proxy-setupコマンドを実行します。例:

    oud-proxy-setup -i -p 1389 --adminConnectorPort 4444
    -D "cn=directory manager" -j pwd.txt -Z 1636 --generateSelfSignedCertificate 
    --eusContext dc=example,dc=com
    
  2. エンタープライズ・ユーザーおよびグループが含まれているリモートLDAPサーバー用にLDAPサーバー拡張を作成します。例:

    dsconfig create-extension \
              --set enabled:true \
              --set remote-ldap-server-address:serverip \
              --set remote-ldap-server-port:389 \
              --type ldap-server \
              --extension-name proxy1 \
              --hostname localhost \
              --port 4444 \
              --trustAll \
              --bindDN "cn=directory manager" \
              --bindPasswordFile pwd.txt \
              --no-prompt
    
  3. 前のステップで作成したLDAPサーバー拡張を使用して、リモートLDAPサーバー用にプロキシ・ワークフロー要素を作成します。

    use-specific-identityモードまたはuse-client-identityモードを使用するようにこのプロキシ・ワークフロー要素を構成できます。

    • 外部LDAPサーバーで匿名アクセスが許可されていない場合、use-specific-identityモードを使用します。これは、Active Directoryが外部LDAPサーバーとして使用されている場合は特に、最も一般的なエンタープライズ・ユーザー・セキュリティ構成です。

      use-specific-identityモードを使用してプロキシ・ワークフロー要素を作成するには、次のようにdsconfigコマンドを実行します。

      dsconfig create-workflow-element \
                --set client-cred-mode:use-specific-identity \
                --set enabled:true \
                --set ldap-server-extension:proxy1 \
                --set remote-ldap-server-bind-dn: \
      cn=administrator,cn=users,dc=example,dc=com \ --set remote-ldap-server-bind-password:******** \ --set remote-root-dn:cn=administrator,cn=users,dc=example,dc=com\ --set remote-root-password:******** \ --type proxy-ldap \ --element-name proxy-we1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt

      この例では、remote-root-dnおよびremote-ldap-server-bind-dnが、リモート・サーバーに接続する際にOUDプロキシによって使用される資格証明です。

    • 外部LDAPサーバーで匿名アクセスが許可されている場合、use-client-identityモードを使用します。

      use-client-identityモードを使用する場合は、外部LDAPサーバー資格証明を構成し、除外リストを構成する必要があります。

      通常、データベースはそれ自体の資格証明を使用して、Oracle Unified Directoryプロキシ・サーバーに接続し、外部LDAPサーバーで検索を実行します。EUSが有効化されている場合、外部LDAPサーバー上にはデータベース・エントリは存在しないため、データベースは代替IDを使用して外部LDAPサーバーにバインドする必要があります。データベース・エントリは、Oracle Unified Directoryプロキシ・サーバー上にローカルで格納されます。

      use-client-identityモードを使用してプロキシ・ワークフロー要素を作成するには、次のようにdsconfigコマンドを実行します。

      dsconfig create-workflow-element \
                --set client-cred-mode:use-client-identity \
                --set enabled:true \
                --set ldap-server-extension:proxy1 \
                --set exclude-list:"cn=directory manager" \
                --set exclude-list:cn=oraclecontext,dc=example,dc=com \
                --set remote-ldap-server-bind-dn: \
      cn=administrator,cn=users,dc=example,dc=com \ --set remote-ldap-server-bind-password:******** \ --set remote-root-dn:cn=administrator,cn=users,dc=example,dc=com\ --set remote-root-password:******** \ --type proxy-ldap \ --element-name proxy-we1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt

      この例では、remote-root-dnおよびremote-ldap-server-bind-dnが、リモートLDAP管理者によって使用される資格証明です。

      重要。use-client-identityモードでActive Directoryと統合されている場合、次のコマンドを使用して匿名ログインを許可する必要があります(この場合のdc=example,dc=comは、Active DirectoryサーバーのベースDNです)。

      ldapmodify -h ADhost -p ADport -D ADdirmgr -w pwd
      dn: cn=directory service,cn=windows nt,cn=services,cn=configuration,dc=example,dc=com
      changetype: modify
      replace: dsHeuristics
      dsHeuristics: 0000002
      
  4. 前のステップで作成したプロキシ・ワークフロー要素を使用して、EUSワークフロー要素を作成します。

    dsconfig create-workflow-element \
              --set enabled:true \
              --set eus-realm:dc=example,dc=com \
              --set next-workflow-element:proxy-we1 \
              --set server-type:ad \
              --type eus \
              --element-name eus-we1 \
              --hostname localhost \
              --port 4444 \
              --trustAll \
              --bindDN "cn=directory manager" \
              --bindPasswordFile pwd.txt \
              --no-prompt
    

    注意: server-typeには、エンタープライズ・ユーザーおよびグループが含まれているリモートLDAPサーバーを定義します。次の値のいずれかを使用します。Active Directoryの場合はad、Novell eDirectoryの場合はedir、Oracle Unified Directoryの場合はoud、Oracle Directory Server Enterprise Editionの場合はodseeです。

  5. 前のステップで作成したEUSワークフロー要素を使用して、ネーミング・コンテキストのワークフローを作成します。

    dsconfig create-workflow \
              --set base-dn:dc=example,dc=com \
              --set enabled:true \
              --set workflow-element:eus-we1 \
              --type generic \
              --workflow-name workflow1 \
              --hostname localhost \
              --port 4444 \
              --trustAll \
              --bindDN "cn=directory manager" \
              --bindPasswordFile pwd.txt \
              --no-prompt
    
  6. 前のステップで作成したワークフローをネットワーク・グループに追加します。

    dsconfig set-network-group-prop \
              --group-name network-group \
              --add workflow:workflow1 \
              --hostname localhost \
              --port 4444 \
              --trustAll \
              --bindDN "cn=directory manager" \
              --bindPasswordFile pwd.txt \
              --no-prompt
    
31.3.2.2.2 グラフィカル・ユーザー・インタフェースを使用した、新しいOracle Unified Directory Proxyのインストールおよびエンタープライズ・ユーザー・セキュリティと連携するための構成
  1. oud-proxy-setupプログラムを実行します。

    1. 「ようこそ」ページで、「次へ」をクリックします。

    2. 「サーバー設定」ページで、次の情報を指定します。

      ホスト名。OUDプロキシ・ホストの名前を入力します。

      管理コネクタ・ポート。これは、dsconfigなどのOUDツールによって使用される管理ポートです。

      LDAPリスナー・ポート。OUDプロキシによって使用されるポートを指定します。

      LDAPセキュア・アクセス。「構成」をクリックして、セキュア・アクセスを有効にします。

      「セキュア・アクセスの構成」ウィンドウで、「SSLを有効にするポート」チェック・ボックスをクリックしてマークします。次に、LDAPSのポート番号を入力し、「OK」をクリックして続行します。

      ルート・ユーザーDN。これは、サーバー管理者のIDです。

      パスワード。サーバー管理者が使用するパスワードを入力します。

      パスワード(確認)。確認のためもう一度パスワードを入力します。

      「次へ」をクリックして続行します。

    3. 「デプロイメント・オプション」ページの「構成オプション」フィールドで、「EUS (エンタープライズ・ユーザー・セキュリティ)の構成」を選択し、「次へ」をクリックします。

      Oracle Unified Directoryは、プロキシとして使用され、EUSユーザーおよびグループが含まれているLDAPサーバーの前にデプロイされます。

    4. 「バックエンド・サーバー・タイプ」ページで、サポートされているサーバー・タイプのいずれかを選択します。これは、エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているLDAP準拠のサーバーです。

      「次へ」をクリックして続行します。

    5. 次のページで、「サーバーの追加」をクリックします。

      「サーバーの追加」ページで、次の情報を指定します。

      ホスト名。エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているLDAPサーバーのホスト名を入力します。

      プロトコル。Novell eDirectoryを使用している場合は、LDAPSを選択する必要があります。

      他のすべての外部ディレクトリの場合、LDAP、LDAPS、LDAPとLDAPS、のいずれかを選択できます。これにより、OUDproxyがリモートLDAPサーバーに接続する方法が決まります。

      ポート番号。エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているLDAPサーバーのポート番号を入力します。

      「追加」をクリックして、別のLDAPサーバーを追加できます。LDAPサーバーの追加を完了した後、「閉じる」をクリックして続行します。

    6. 「サーバー」ページでリストを確認します。

      「サーバー」ページには、この時点で、エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているサーバーが1つ以上リストされています。「次へ」をクリックして続行します。

    7. 「ネーミング・コンテキスト」ページで、ベースDNの横にあるチェック・ボックスをクリックしてマークして、ネーミング・コンテキストのベースDNを選択します。

      表にネーミング・コンテキストが表示されていない場合は、リモートLDAPサーバーのベースDNを「追加のネーミング・コンテキストDN」フィールドに入力し、「追加」を選択します。

      「次へ」をクリックして続行します。

    8. サーバーの実行時オプションを構成します。

      「変更」をクリックして特定のJVM設定を構成するか、または「次へ」をクリックしデフォルトのJVM設定でサーバーを実行できます。

      「次へ」をクリックします。

    9. 「確認」ページで設定を確認し、「完了」をクリックします。

      Oracle Unified Directory Proxyの新しいインスタンスがインストールされ、構成されたうえで起動されます。

      「閉じる」をクリックします。

  2. 次のようにOUDプロキシでdsconfigコマンドを実行し、リモート・ルートDNおよびリモート・ルート・ユーザー・アカウントを設定します。

    dsconfig set-workflow-element-prop \
              --element-name proxy-we1 \
              --set remote-root-dn:cn=directory manager \
              --set remote-root-password:******** \
              --hostname localhost \
              --port 4444 \
              --trustAll \
              --bindDN "cn=directory manager" \
              --bindPasswordFile pwd.txt \
              --no-prompt
    

    注意:

    前述のコマンドの--element-nameプロパティは、プロキシ・ワークフロー要素の名前に対応し、外部LDAPディレクトリ・サーバーとの接続に使用されます。

    OUDプロキシ設定ウィザードでプロキシを構成すると、プロキシ・ワークフロー要素のデフォルト名はproxy-we1になります。また、CLIからdsconfig コマンドを使用してプロキシを構成すると、ワークフロー要素の名前は、コマンドの入力しとして指定した値に基づいて設定されます。

    次のように、dsconfigコマンドを実行して、ワークフロー要素を検索できます。

    dsconfig -h localhost -p administration port number -D "cn=Directory Manager" -X -n list-workflow-elements --bindPasswordFile password.txt
    

    次のような出力が表示されます。

    Workflow Element  : Type               : enabled
    ----------------- :--------------------:--------
    adminRoot         : ldif-local-backend : true
    load-bal-we1      : load-balancing     : true
    proxy-we1         : proxy-ldap         : true
    

    前述の例で、proxy-ladpタイプを見ると、それに対応するワークフロー要素名(proxy-we1)を特定できます。


  3. 外部LDAP準拠ディレクトリのプロキシ・ワークフロー要素のモードを設定します。

    デフォルトで、構成はuse-client-identityモードに設定されます。

    • 外部LDAPサーバーで匿名アクセスが許可されている場合、use-client-identityモードを使用します。

      use-client-identityモードを使用する場合は、外部LDAPサーバー資格証明および除外リストを構成する必要があります。

      通常、データベースはそれ自体の資格証明を使用して、Oracle Unified Directoryプロキシ・サーバーに接続し、外部LDAPサーバーで検索を実行します。EUSが有効化されている場合、外部LDAPサーバー上にはデータベース・エントリは存在しないため、データベースは代替IDを使用して外部LDAPサーバーにバインドする必要があります。データベース・エントリは、Oracle Unified Directoryプロキシ・サーバー上にローカルで格納されます。

      use-client-identityモードを使用するには、次のようにdsconfigコマンドを実行します。

      dsconfig set-workflow-element-prop \
                --element-name proxy-we1 \
                --set client-cred-mode:use-client-identity \
                --add exclude-list:cn=directory manager \
                --add exclude-list:cn=oraclecontext,dc=example,dc=com \
                --set remote-ldap-server-bind-dn: \
      cn=administrator,cn=users,dc=example,dc=com \ --set remote-ldap-server-bind-password:******** \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt

      この例では、remote-root-dnおよびremote-ldap-server-bind-dnが、リモートLDAP管理者によって使用される資格証明です。

      重要。use-client-identityモードでActive Directoryと統合されている場合、次のコマンドを使用して匿名ログインを許可する必要があります(この場合のdc=example,dc=comは、Active DirectoryサーバーのベースDNです)。

      ldapmodify -h <ADhost> -p <AD port> -D <AD dirmgr> -w <pwd>
      dn: cn=directory service,cn=windows nt,cn=services,cn=configuration,dc=example,dc=com
      changetype: modify
      replace: dsHeuristics
      dsHeuristics: 0000002
      
    • 外部LDAPサーバーで匿名アクセスが許可されていない場合、use-specific-identityモードを使用します。これは、Active Directoryが外部LDAPサーバーとして使用されている場合は特に、最も一般的なエンタープライズ・ユーザー・セキュリティ構成です。

      モード設定をuse-specific-identityに変更する場合、外部LDAPサーバー資格証明を構成する必要があります。

      use-specific-identityモードを使用するには、次のようにdsconfigコマンドを実行します。

      dsconfig set-workflow-element-prop \
                --element-name proxy-we1 \
                --set client-cred-mode:use-specific-identity \
                --set remote-ldap-server-bind-dn: \
      cn=administrator,cn=users,dc=example,dc=com\ --set remote-ldap-server-bind-password:******** \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt

      この例では、remote-root-dnおよびremote-ldap-server-bind-dnが、リモートLDAP管理者によって使用される資格証明です。

31.3.2.2.3 ODSMを使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directory Proxyの構成
  1. ODSMからOracle Unified Directory Proxyに接続します。

  2. 「ホーム」タブを選択します。

  3. 「構成」セクションで、「リモートEUSネーミング・コンテキストの設定」を選択します。

  4. 「リモートEUSネーミング・コンテキストの作成」ページで、次の情報を指定します。

    ベースDN。これは、リモートLDAPサーバーから提供される接尾辞です。

    ネットワーク・グループ。1つ以上のネットワーク・グループに接尾辞をアタッチします。リストから必要なネットワーク・グループを選択します。

    サーバー・タイプ。リストからユーザーおよびグループが含まれているLDAPサーバーのタイプを選択します。

    ホスト名。リモートLDAPサーバーが実行されているマシンの名前を入力します。

    使用可能なポート。OUDプロキシが、LDAPかLDAPS、またはLDAPとLDAPSの両方を使用して、リモートLDAPサーバーに接続できるようにするかどうかを示します。

    選択したオプションに応じて、LDAPポート、LDAPSポート、またはLDAPポートとLDAPポートの両方のポート番号を入力します。これは、リモートLDAPサーバーによって使用されるポートである必要があります。

    LDAPSを選択した場合は、すべてを信頼するようにSSLを構成するか、または信頼マネージャを構成します。

    「作成」をクリックします。

  5. 「構成」タブを選択します。

  6. 「ネーミング・コンテキスト」リストで、先ほど作成したネーミング・コンテキストの下にあるプロキシを選択します。

  7. プロキシLDAPワークフロー要素ウィンドウで、次のようにします。

    1. バインドDNおよびバインド・パスワードを入力します。

      これらは、リモートLDAPサーバー管理者の資格証明に一致する必要があります。

    2. 「リモート・ルート・プロパティ」を展開し、リモート・ルートDNおよびパスワードを入力します。

      これらは、リモートLDAPサーバー管理者の資格証明に一致する必要があります。

    3. 「資格証明モード」フィールドに、外部LDAP準拠ディレクトリのプロキシ・ワークフロー要素のモードを設定します。

      • 外部LDAPサーバーで匿名アクセスが許可されていない場合、use-specific-identityモードを使用します。これは、Active Directoryが外部LDAPサーバーとして使用されている場合は特に、最も一般的なエンタープライズ・ユーザー・セキュリティ構成です。

        use-specific-identityモードを使用するには、次のようにします。

        「資格証明モード」フィールドで、「特定のアイデンティティの使用」を選択します。次に、バインドDNおよびバインド・パスワードの値を入力します。確認のためにもう一度バインド・パスワードを入力します。

      • 外部LDAPサーバーで匿名アクセスが許可されている場合、use-client-identityモードを使用します。

        use-client-identityモードを使用するには、次のようにします。

        「資格証明モード」フィールドで、まず「クライアント・アイデンティティの使用」を選択し、「クライアント・アイデンティティ・モード・プロパティ」を展開します。次に、"cn=directory manager"および"cn=OracleContext,dc=example,dc=com"を「除外バインドDN」表に追加します。

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

31.3.2.3 タスク3: ユーザーおよびグループの場所を構成する

EUSまたはOracle E-Business Suiteに対するOracle Unified Directoryの構成後、次のステップを実行してユーザーおよびグループの格納に使用されるネーミング・コンテキストを構成する必要があります。

  1. LDIFテンプレート・ファイル(install_dir/config/EUS/modifyRealm.ldif)を見つけます。

  2. modifyRealm.ldifファイルを次のように編集します:

    • dc=example,dc=comをサーバー・インスタンスの現在のネーミング・コンテキストに置き換えます。

    • ou=peopleou=groupsをDIT内のユーザー・エントリとグループ・エントリの現在の場所にそれぞれ置き換えます。

  3. ldapmodifyコマンドを使用して、編集済のLDIFテンプレート・ファイルで構成を更新します。例:

    $ ldapmodify -h localhost -p 1389 -D "cn=directory manager" -j pwd-file -f modifyRealm.ldif
    

    注意:

    LDAP接続ハンドラがクライアントからの接続をリスニングするポート番号(例:1389)を指定してください。4444の管理ポート番号は指定しないでください。

  4. Active Directoryを統合している場合、次のコマンドを実行して、dc=example,dc=comを構成の適切なベースDNで置換します。

    $ ldapmodify -h localhost -p 1389 -D "cn=directory manager" -j pwd-file
    dn:cn=Common,cn=Products,cn=OracleContext,dc=example,dc=com
    changetype: modify
    replace: orclCommonNickNameAttribute
    orclCommonNickNameAttribute: samaccountname
    

31.3.2.4 タスク4: エンタープライズ・ユーザー・セキュリティによって使用されるOracleコンテキストを選択する

エンタープライズ・ユーザー・セキュリティは、EUSメタデータとも呼ばれる自身の構成をOracleコンテキストに格納します。これはディレクトリ情報ツリーの一部に対応しています。ユーザー・エントリがdc=example,dc=comの下に格納されている場合、EUSは通常Oracleコンテキストとしてcn=OracleContext,dc=example,dc=comを使用するように構成されます。

このタスクでは、Oracle Net Configuration AssistantはEUSに構成を読み取る場所を通知します。

  1. Oracle Net Configuration Assistantを起動するには、データベースがインストールされているホストでnetcaコマンドを実行します。

    Oracle Net Configuration Assistantが表示されます。

  2. 「ようこそ」ページで、「ディレクトリ使用構成」を選択し、「次へ」をクリックします。

    後続のページで次の情報を入力します。

    1. ディレクトリ・タイプ

      LDAPサーバーがOracle Virtual DirectoryまたはOracle Unified Directoryである場合でも、「Oracle Internet Directory」を選択します。

      「次へ」をクリックします。

    2. ホスト名

      LDAPサーバーのホストとなっているサーバーのホスト名またはIPアドレスを入力します。

    3. ポート

      LDAPポート番号を入力します。

    4. SSLポート

      LDAPSポート番号を入力します。

    5. Oracleコンテキスト

      cn=OracleContextを選択しないでください。そのかわり、矢印をクリックして、OracleContextの場所を表示および選択します。

      Oracle Net Configuration Assistantは、LDAPサーバーに接続して、使用可能なOracleコンテキストを取得します。エンタープライズ・ユーザー・セキュリティ構成は、OracleContext内に格納されます。

      「次へ」をクリックします。

    6. 「ディレクトリ使用構成が完了しました。」

      「次へ」をクリックします。

    「ようこそ」ページが表示されたら、「終了」をクリックします。

  3. LDAPサーバー情報が含まれている構成ファイルをNet Configuration Assistantが正常に作成したことを検証するには、次のコマンドを実行します。

    # cat $ORACLE_HOME/network/admin/ldap.ora
    # ldap.ora Network Configuration File: /app/oracle/product/db/product/11.2.0/dbhome_1/network/admin/ldap.ora
    # Generated by Oracle configuration tools.
    DIRECTORY_SERVERS= (oudhost:1389:1636)
    DEFAULT_ADMIN_CONTEXT = "dc=example,dc=com"
    DIRECTORY_SERVER_TYPE = OID
    

    データベースによって使用される構成ファイルには、LDAPサーバーのホスト名およびポートが含まれています。この例では、情報は(oudhost:1389:1636)として表されます。高可用性のデプロイメントを実現するために複数のサーバーをカンマで区切って指定できます。

    この例では、dc=example,dc=comはEUSメタデータとも呼ばれるEUS構成の格納に使用されるOracleコンテキストを表しています。

31.3.2.5 タスク5: LDAPサーバーにデータベースを登録する

  1. データベースがインストールされているホストでdbcaコマンドを実行します。

    Oracle DatabaseのDatabase Configuration Assistantが表示されます。「次へ」をクリックし、後続のページで次の情報を指定します。

    1. 実行する操作を選択します。

      「データベース・オプションの構成」を選択し、「次へ」をクリックします。

    2. データベース

      リスト・ボックスで、登録するデータベースを選択します。次に、「次へ」をクリックします。

      Database Configuration Assistantは、データベースがLDAPサーバーにすでに登録されているかどうかを判別します。

    3. このデータベースをディレクトリ・サービスに登録しますか。

      「データベースを登録する」を選択します。Database Configuration Assistantは、Oracleコンテキストにデータベースのエントリを作成します。

    4. ユーザーDN

      ユーザーDNは、LDAPサーバーに対して認証するために使用します。

      ユーザーDNは通常cn=directory managerで、OUDプロキシのディレクトリ・マネージャになります。ユーザーDNは、Oracleコンテキストにデータベース・エントリを作成する追加操作でも使用されます。ユーザーは、LDAPサーバーへの書込みアクセス権を持っている必要があります。

    5. パスワード

      Database Configuration Assistantは、データベースのウォレットを作成します。データベース・エントリDNおよびパスワードは、ウォレットに格納されます。データベースは、LDAPサーバーに接続するとき、このウォレットに格納されている資格証明を使用して認証されます。

    6. データベース・コンポーネント

      このページには何も変更を加えず、「次へ」をクリックします。

    7. 接続モード

      「専用サーバー・モード」を選択し、「終了」をクリックします。

    8. 確認

      「OK」をクリックして、データベースを登録します。

    9. 別の操作を実行しますか。

      「いいえ」をクリックして、Database Configuration Assistantアプリケーションを終了します。

  2. Database Configuration Assistantがデータベースの新しいエントリを正常に作成したことを検証するには、次のコマンドを実行して、orcl11gをデータベースの名前に置き換えます。

    $ ldapsearch -h oudhost -p 1389 -D "cn=directory manager" -j pwd.txt -b cn=oraclecontext,dc=example,dc=com "(cn=orcl11g)"
    dn: cn=orcl11g,cn=OracleContext,dc=example,dc=com
    orclVersion: 112000
    orclcommonrpwdattribute: {SASL -MD5}eW5+2LTPRKzFmHxmMZQmnw==
    objectClass: orclApplicationEntity
    objectClass: orclService
    objectClass: orclDBServer_92
    objectClass; orclDBServer
    objectClass: top
    orclServiceType: DB
    orclSid: orcl11g
    oracleHome: /app/oracle/product/db/product/11.2.0/dbhome_1
    cn: orcl11g
    orclSystemName: oudhost
    userPassord: {SSHA}oNeBEqkUMtDusjXNXJPpa7qa+Yd0b9RHvA==
    orclNetDescString: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST)=oudhost)
    (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl11g)))
    orclDBGLOBALNAME: orcl11g
    orclNetDescName: 000:cn= DESCRIPTION_0
    

31.3.2.6 タスク6: ロールおよび権限を構成する

このタスクのステップを完了するには、Oracle Enterprise Managerを使用します。

31.3.2.6.1 ステップA: データベースに共有スキーマを作成する

次のSQLコマンドを実行します。

SQL> CREATE USER global_ident_schema_user IDENTIFIED GLOBALLY;
User created.
SQL> GRANT CONNECT TO global_ident_schema_user;
Grant succeeded.
31.3.2.6.2 ステップB: 新しいユーザー・スキーマ・マッピングを作成する
  1. Webブラウザで、Enterprise Managerに接続します。例:

    https://localhost:1158/em

    次の情報を指定します。

    ユーザー名。データベースの管理を許可されているユーザーの名前を入力します。

    パスワード。管理者パスワードを入力します。

    接続モード。SYSDBAを選択します。

    「ログイン」をクリックします。

  2. 「サーバー」タブをクリックします。

    「サーバー」タブの「セキュリティ」セクションで、「エンタープライズ・ユーザー・セキュリティ」をクリックします。

  3. 「Oracle Internet Directoryログイン: エンタープライズ・ユーザー・セキュリティ」ページで、次の情報を指定します。

    ユーザー。Oracleコンテキストへの書込みアクセス権を持つユーザーのユーザー名(たとえば、cn=directory manager)を入力します。

    パスワード。同じユーザーのパスワードを入力します。

    「ログイン」をクリックします。

  4. 「エンタープライズ・ユーザー・セキュリティ」ページで、「エンタープライズ・ドメインの管理」をクリックします。

    エンタープライズ・ドメインには、1つ以上のデータベースを含めることができます。エンタープライズ・ドメインの設定は、そのドメインに含まれているすべてのデータベースに適用されます。

  5. 「エンタープライズ・ドメインの管理」ページで、構成するドメインを選択し、「構成」をクリックします。

  6. 「ドメインの構成」ページで、「ユーザー・スキーマ・マッピング」をクリックします。

  7. 「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。

  8. ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。

    1. グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。

      グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。

      1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。

      2. 「ユーザーの選択」ページで、サブツリーを選択します。選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。

      3. 「選択」をクリックします。

      グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。

      1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。

      2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。

      3. 「選択」をクリックします。

    2. 宛先

      「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。たとえば、global_ident_schema_userとします。

      「続行」をクリックします。

  9. 「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。

31.3.2.6.3 ステップC: データベースにロールを作成する

この例の場合、hr_accessという名前のロールが作成されます。ロールにより、hr.employees表への読取りアクセス権が付与されます。

データベースにロールを作成するには、次のようにします。

SQL> CREATE ROLE hr_access IDENTIFIED GLOBALLY;
Role created.
SQL> GRANT SELECT ON hr.employees TO hr_access;
Grant succeeded.

詳細は、Oracle Databaseのドキュメントを参照してください。

31.3.2.6.4 ステップD: ドメインに新しいロールを作成する
  1. ドメインに新しいロールを作成するには、「エンタープライズ・ドメインの管理」ページで、ロールを作成するドメインを選択し、「構成」をクリックします。

  2. 「ドメインの構成」ページで、「エンタープライズ・ロール」をクリックします。「作成」をクリックします。

  3. 「エンタープライズ・ロールの作成」ページで、次の情報を指定します。

    1. 「名前」フィールドに、エンタープライズ・ロールの名前を指定します。

    2. 「DBグローバル・ロール」タブで、「追加」をクリックします。

  4. 「検索と選択: データベース・グローバル・ロール」ページで、次の情報を指定します。

    データベース。ドロップダウン・リストからデータベースを選択します。

    ユーザー名。Enterprise Managerは、データベースから使用可能なロールを取得します。ロールへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA)を入力します。

    パスワード。管理者パスワードを入力します。

    「実行」をクリックします。

  5. 「検索と選択: データベース・グローバル・ロール」ページで、エンタープライズ・ユーザーに付与するグローバル・ロールを選択します。

    「選択」をクリックします。

  6. 「エンタープライズ・ロールの作成」ページで、エンタープライズ・ロールを付与するエンタープライズ・ユーザーまたはグループを選択し、「権限受領者」タブをクリックします。

  7. 「権限受領者」タブで、エンタープライズ・ユーザーまたはグループを選択するには、「追加」をクリックします。

  8. 選択: ユーザーおよびグループ・ページで、「実行」をクリックします。Enterprise Managerは、使用可能なユーザーおよびグループを取得します。

    表示。ユーザーまたはグループを検索できます。

    検索ベース。Enterprise Managerは、このDNで検索を開始します。

    名前。ここに文字列を入力して、検索を絞り込みます。たとえば、名前がjoで始まるユーザーを検索する場合は、「jo」と入力し、「実行」をクリックします。

    表には、関連するエントリが表示されます。リストから、エンタープライズ・ロールを付与するユーザーおよびグループを選択し、「選択」をクリックします。

    「続行」をクリックします。

  9. 「ドメインの構成」ページで、「OK」をクリックして続行します。

  10. 「エンタープライズ・ロールの編集」ページで、「続行」をクリックします。

  11. 「ドメインの構成」ページで、「OK」をクリックします。

    ロールが正常に作成された後、「構成」をクリックします。

31.3.2.6.5 ステップE: データベースにプロキシ権限を定義する

ユーザーSHにプロキシ権限を定義するには、次のコマンドを実行します。

SQL> ALTER USER SH GRANT CONNECT THROUGH ENTERPRISE USERS;
User altered.
 
This command defines a proxy permission on user SH.
31.3.2.6.6 ステップF: 新しいプロキシ権限を作成する
  1. ドメイン情報の構成ページで、構成するドメインを選択し、「構成」をクリックします。

  2. 「ドメインの構成」ページで、「プロキシ権限」をクリックします。

  3. 新しいプロキシ権限を作成するには、「プロキシ権限」タブで「作成」をクリックします。

  4. 「プロキシ権限の作成」ページで、「名前」フィールドに、プロキシ権限の名前を指定します。

  5. 「ターゲットDBユーザー」タブで、「追加」をクリックします。

  6. 「検索と選択: データベース・ターゲット・ユーザー」ページで、次の情報を指定します。

    データベース。ドロップダウン・リストからデータベースを選択します。

    ユーザー名。ユーザーへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA)を入力します。

    パスワード。管理者パスワードを入力します。

    「実行」をクリックします。

    Enterprise Managerは、データベースから使用可能なターゲット・ユーザーを取得します。

    「検索と選択」ページで、プロキシ権限のターゲット・ユーザーを選択し、「選択」をクリックします。

  7. 「プロキシ権限の作成」ページで、「権限受領者」タブをクリックします。

  8. 「権限受領者」タブで、「追加」をクリックします。

  9. ユーザーおよびグループの選択ページで、「実行」をクリックします。Enterprise Managerは、使用可能なエンタープライズ・ユーザーを取得します。

    選択: ユーザーおよびグループ・ページで、プロキシ権限を付与するユーザーを選択します。次に、「選択」をクリックして続行します。

  10. 「プロキシ権限の作成」ページで、「続行」をクリックします。

  11. 「ドメインの構成」ページで、「OK」をクリックして続行します。

31.3.2.6.7 ステップG: 特定のデータベース用にマッピングを構成する
  1. 「エンタープライズ・ユーザー・セキュリティ」ページで、「データベースの管理」をクリックします。

  2. 「データベースの管理」ページで、構成するデータベースを選択し、「構成」をクリックします。

  3. 「データベースの構成」ページで、「ユーザー・スキーマ・マッピング」タブをクリックします。

  4. 「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。

  5. ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。

    1. グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。

      グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。

      1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。

      2. 「ユーザーの選択」ページで、サブツリーを選択します。選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。

      3. 「選択」をクリックします。

      グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。

      1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。

      2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。

      3. 「選択」をクリックします。

    2. 宛先

      「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。たとえば、global_ident_schema_userとします。

      「続行」をクリックします。

  6. 「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。

31.3.2.7 タスク7: データベース構成をテストする

この時点でエンタープライズ・ユーザー・セキュリティには次の構成が含まれています。

  • dc=example,dc=comの下のすべてのユーザーにグローバル・スキーマを付与するユーザー・スキーマ・マッピング

  • uid=user.0,ou=people,dc=example,dc=comHR_ACCESSを付与するエンタープライズ・ロール

  • プロキシ・ユーザーSHにuid=user.1,our=people,dc=example,dc=comを許可するプロキシ権限

データベース構成をテストするには、次のようにします。

  1. プロキシ権限をユーザーSHとして使用し、sqlplusを実行してuser.1資格証明でデータベースに接続します。

    次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.0,ou=people,dc=example,dc=com用に構成されたパスワードをLDAPサーバーに指定します。

    # sqlplus user.0
     
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014
     
    Copyright  (c) 1982, 2010, Oracle. All rights reserved.
     
    Enter password:
     
    Connected to: 
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> select * from session_roles;
     
     
    Role
    -------------------------------
    CONNECT
    HR_ACCESS
     
    SQL>
    

    この例では、次の内容から、データベースがuser.0などのユーザーに対して正しく構成されていることがわかります。

    • Connect to:で始まる行は、認証が正常に完了したことを示しています。

    • SQL> select * from session_roles;
      で始まる行により、管理者はエンタープライズ・ユーザーに付与されたロールを確認できます。

    • データベース・ロールHR_ACCESSは、エンタープライズ・ロールによって付与されます。

  2. プロキシ権限をユーザーSHとして使用し、sqlplusを実行してuser.1資格証明でデータベースに接続します。

    次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com用に構成されたパスワードをLDAPサーバーに指定します。

    # sqlplus user.1
     
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014
     
    Copyright  (c) 1982, 2010, Oracle. All rights reserved.
     
    Enter password:
     
    Connected to: 
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> select * from session_roles;
     
     
    Role
    -------------------------------
    CONNECT
     
     
    SQL>
    

    この例では、次の内容から、データベースがuser.1などのユーザーに対して正しく構成されていることがわかります。

    • Connect to:で始まる行は、認証が正常に完了したことを示しています。

    • SQL> select * from session_roles;
      で始まる行により、管理者はエンタープライズ・ユーザーに付与されたロールを確認できます。

    • 唯一のデータベース・ロールがCONNECTで、これはグローバル・スキーマによって付与されます。

  3. プロキシ権限をユーザーSHとして使用し、sqlplusを実行してuser.1資格証明でデータベースに接続します。

    次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com用に構成されたパスワードをLDAPサーバーに指定します。

    # sqlplus user.1[sh]
     
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014
     
    Copyright  (c) 1982, 2010, Oracle. All rights reserved.
     
    Enter password:
     
    Connected to: 
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> select * from session_roles;
     
     
    Role
    -------------------------------
    RESOURCE
    SELECT_CATALOG_ROLE
    HS_ADMIN_SELECT_ROLE
    CWM_USER
     
     
    SQL>
    

    この例では、次の内容から、データベースがuser.1などのユーザーに対して正しく構成されていることがわかります。

    • Connect to:で始まる行は、認証が正常に完了したことを示しています。

    • SQL> select * from session_roles;
      で始まる行により、現在ログインしているユーザーは自身に付与されたロールを確認できます。

    • ユーザーuser.0は、プロキシ認証によってユーザーSHのロールを継承します。

31.4 追加のエンタープライズ・ユーザー・セキュリティ構成オプションの使用

次に、Oracle Unified Directoryとエンタープライズ・ユーザー・セキュリティの基本的な統合を超えた共通構成を示します。

31.4.1 複数のエンタープライズ・ユーザー・セキュリティ・ドメインをサポートするためのOUDの構成

ユーザーおよびグループが複数のドメインに格納されている場合は、複数のEUSドメインをサポートするようにOUDを構成する必要があります。たとえば、1つのOUDインスタンスに2つのEUSドメインが含まれているとします。1つのEUSドメインでは、Active Directoryのcn=users,dc=ad1,dc=comの下にユーザー・エントリを格納しています。もう1つのEUSドメインでは、別のActive Directoryインスタンスのcn=users,dc=ad2,dc=comの下にユーザー・エントリを格納しています。各EUSドメインをサポートするようにOUDを構成する必要があります。

複数のEUSドメインをサポートするようにOUDを構成するには、次のようにします。

  1. プライマリ・ドメインがすべてのユーザーおよびグループを含む単一のドメインであるかのように、OUDを構成します。

    この例では、プライマリ・ドメインはdc=ad1,dc=comです。

    第31.3.2項「外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directory Proxyの構成」のタスクを完了します。

  2. セカンダリ・ドメインを構成します。

    この例では、セカンダリ・ドメインはdc=ad2,dc=comです。

    このセカンダリ・ドメインについて、第31.3.2.1項「タスク1: 外部LDAPディレクトリにユーザー・アイデンティティを構成する」のステップを完了します。

  3. EUSドメイン(この例ではdc=ad2,dc=com)の新しいネーミング・コンテキストを作成します。

    第31.3.2.2.3項「ODSMを使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directory Proxyの構成」のステップを完了します。

  4. 新しいネーミング・コンテキストでOracleコンテキストを更新します。

    1. LDIFファイルを作成します。

      次のmyconfig.ldifの例で、次の置換を行います。

      • dc=ad1,dc=comを1つ目のドメインのDNに置き換えます。

      • orclcommonusersearchbaseをセカンダリ・ドメインでのユーザーの場所に置き換えます。

      • orclcommongroupsearchbaseをセカンダリ・ドメインでのグループの場所に置き換えます。

      dn: cn=Common,cn=Products,cn=OracleContext,dc=ad1,dc=com
      changetype: modify
      add: orclcommonusersearchbase
      orclcommonusersearchbase: cn=users,dc=ad2,dc=com
      orclcommongroupsearchbase: cn=groups,dc=ad2,dc=com
      
    2. ステップ4aで作成したLDIFファイルを使用して、OUD構成を更新します。

      ldapmodify -h oudhost -p 1389 -D "cn=directory manager" -w password -f myconfig.ldif
      

31.4.2 高可用性トポロジでのOracle Unified Directoryおよびエンタープライズ・ユーザー・セキュリティの使用

エンタープライズ・ユーザー・セキュリティと統合された2つ以上のOUDインスタンスの間で高可用性を実現できます。まず、OUDをエンタープライズ・ユーザー・セキュリティと統合します。次に、統合されたOUDインスタンス間にレプリケーションを構成します。構成が完了すると、エンタープライズ・ユーザー・セキュリティ・メタデータ(ディレクトリ・サーバーまたはディレクトリ・プロキシにあります)とOUDサーバー・ユーザーおよびグループとの間でレプリケーションが発生します。

レプリケーションに対応するように統合OUD LDAPサーバーを構成することは、レプリケートされる接尾辞のリストが異なるという1つの例外を除き、統合OUDプロキシ・サーバーを構成することとまったく同じです。

統合OUDインスタンスがLDAPサーバーとして構成されている場合、次の接尾辞がレプリケートされます。


cn=oraclecontext
cn=oraclecontext,dc=example,dc=com
dc=example,dc=com

統合OUDインスタンスがプロキシ・サーバーとして構成されている場合、次の接尾辞がレプリケートされます。


cn=oraclecontext
cn=oraclecontext,dc=example,dc=com

注意:

Oracle Data Guard、Oracle Real Application Clustersまたは高可用性を使用している場合、各データベース・インスタンスはNetCAおよびDBCAを使用して構成されている必要があります。

高可用性向けにOUD-EUS統合インスタンスを構成するには、次のようにします。

  1. 1つ目のOracle Unified DirectoryおよびOracle Enterprise User Securityが連携するようにします。

  2. 2つ目のOracle Unified DirectoryインスタンスおよびOracle Enterprise User Securityが連携するようにします。

  3. 1つ目のOUDインスタンスと2つ目のOUDインスタンスとの間でレプリケーションを有効にします。

    • OUDインスタンスがLDAPサーバーである場合は、このコマンドを実行します。

      # dsreplication enable --host1 oud-proxy-source --port1 4444 --bindDN1
       "cn=Directory Manager"  --bindPasswordFile1 /tmp/pwd1.txt
       --replicationPort1 repl1 --host2 oud-proxy-dest --port2 4444 --bindDN2
       "cn=Directory Manager"  --bindPasswordFile2 /tmp/pwd2.txt
       --replicationPort2 repl2 --adminUID admin --adminPasswordFile
       /tmp/pwd3.txt --baseDN "cn=OracleContext,dc=example,dc=com" --baseDN
       "cn=OracleContext" --baseDN "dc=example,dc=com" -X -n
      
    • OUDインスタンスがディレクトリ・プロキシである場合は、このコマンドを実行します。

      # dsreplication enable --host1 oud-proxy-source --port1 4444 --bindDN1
       "cn=Directory Manager"  --bindPasswordFile1 /
      tmp/pwd1.txt --replicationPort1 repl1 --host2 oud-proxy-dest --port2 4444
       --bindDN2 "cn=Directory Manager"  --bindPasswordFile2 /tmp/pwd2.txt
       --replicationPort2 repl2 --adminUID admin --adminPasswordFile
       /tmp/pwd3.txt --baseDN "cn=OracleContext,dc=example,dc=com" --baseDN
       "cn=OracleContext" -X -n
      

      注意:

      ディレクトリ・プロキシの例には、--baseDN "dc=example,dc=com"オプションは含まれていません。

    レプリケーションは、この時点で、1つ目のOUDインスタンス(ステップ1から)と2つ目のOUDインスタンス(ステップ2から)で有効になります。

  4. レプリケーションを初期化します。例:

    • OUDインスタンスがディレクトリ・サーバーである場合は、このコマンドを実行します。

      dsreplication initialize  --baseDN "cn=OracleContext,dc=example,dc=com"
        --baseDN "cn=OracleContext" --baseDN "dc=example,dc=com" \
        --adminUID admin --adminPasswordFile /tmp/pwd3.txt \
        --hostSource <oud-proxy-source> --portSource 4444 \
        --hostDestination <oud-proxy-dest>  --portDestination 4444 -X -n
      
    • OUDインスタンスがディレクトリ・プロキシである場合は、このコマンドを実行します。

      dsreplication initialize  --baseDN "cn=OracleContext,dc=example,dc=com" \
        --baseDN "cn=OracleContext" \ 
        --adminUID admin --adminPasswordFile /tmp/pwd3.txt \
        --hostSource <oud-proxy-source> --portSource 4444 \
        --hostDestination <oud-proxy-dest>  --portDestination 4444 -X -n
      

      注意:

      ディレクトリ・プロキシの例には、--baseDN "dc=example,dc=com"オプションは含まれていません。

    両方のOUDインスタンスには、この時点で、同じデータが含まれています。詳細は、第32.6項「データによるレプリケート対象サーバーの初期化」を参照してください。

  5. 両方のOUDインスタンスをデータベースldap.ora構成ファイルで宣言します。

    # ldap.ora Network Configuration File: /app/oracle/product/db/product/11.2.0/dbhome_1/network/admin/ldap.ora
    # Generated by Oracle configuration tools.
    DIRECTORY_SERVERS= (oudhost1:1389:1636,oudhost2:1389:1636)
    DEFAULT_ADMIN_CONTEXT = "dc=example,dc=com"
    DIRECTORY_SERVER_TYPE = OID
    

31.5 エンタープライズ・ユーザー・セキュリティ・パスワード警告について

パスワード・ポリシーは、アイデンティティ管理レルム内のユーザー・パスワードすべてに適用されるルール・セットです。パスワード・ポリシーには、パスワードの複雑性、パスワードの最低文字数などの設定が含まれます。アカウントのロックアウトとパスワード有効期限の設定も含まれます。

データベースはOracle Unified Directoryと通信し、パスワード・ポリシー違反についてレポートするようにOracle Unified Directoryにリクエストします。データベースは、Oracle Unified Directoryからポリシー違反に関するレスポンスを取得すると、適切な警告またはエラー・メッセージをユーザーに表示します。次の表に、パスワード警告とその意味を示します。

表31-1 パスワード警告

警告の状態 メッセージの例

ユーザー・パスワードはまもなく期限切れになります。メッセージは、ユーザーが各自のパスワードを変更するまでの残り日数を示しています。

SQL> connect joe/Admin123
ERROR:
ORA-28055: the password will expire within 1 days
 
Connected.

パスワードは期限切れになり、残っている猶予期間ログインの数をユーザーに通知します。

SQL> connect joe/Admin123
ERROR:
ORA-28054: the password has expired. 1 Grace logins are left
 
Connected.

ユーザー・パスワードは期限切れになり、ユーザーには猶予期間ログインが残っていません。

SQL> connect joe/Admin123
ERROR:
ORA-28049: the password has expired

ログイン試行に繰り返し失敗したために、ユーザー・アカウントはロックされています。

SQL> connect joe/Admin123
ERROR:
ORA-28051: the account is locked

ユーザー・アカウントは管理者によって無効にされました。

SQL> connect joe/Admin123
ERROR:
ORA-28052: the account is disabled

ユーザー・アカウントは非アクティブです。

SQL> connect joe/Admin123
ERROR:
ORA-28053: the account is inactive

エンタープライズ・ユーザーによってデータベースへのログイン試行が行われると、Oracle Unified Directoryまたはサポートされている外部LDAP準拠ディレクトリでそのユーザー・アカウントのステータスが更新されます。たとえば、データベースへのログイン試行が連続して失敗すると、ディレクトリのパスワード・ポリシーに従って、そのアカウントはディレクトリでロックされます。

31.6 トラブルシューティング

この項では、OUDとエンタープライズ・ユーザー・セキュリティを統合した後で発生する可能性がある問題の解決策を示します。トラブルシューティングのヒントは、次のカテゴリにグループ化されています。

31.6.1 Net Configuration Assistant (NetCA)ツールの問題と解決策

31.6.1.1 LDAPサーバー接続エラー

NetCAによるディレクトリへの接続に失敗すると、「Oracle Net Configuration Assistant」画面に次のエラー・メッセージが表示されます。

図31-1 接続エラー

図31-1の説明が続きます
「図31-1 接続エラー」の説明

このエラーを解決するには、コマンド行で次のコマンドを実行して、ホスト名とポート番号が正しいかどうかを確認します。

$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT  -b "" -s base "(objectclass=*)"
dn: 
objectClass: top
objectClass: ds-root-dse
 
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X  -b "" -s base "(objectclass=*)"
dn: 
objectClass: top
objectClass: ds-root-dse

31.6.1.2 スキーマのエラー

必要なスキーマを使用できなかったり、バージョン番号が正しくない場合に、「Oracle Net Configuration Assistant」画面に次のエラー・メッセージが表示されます。

図31-2 Oracle スキーマ

図31-2の説明が続きます
「図31-2 Oracleスキーマ」の説明

このエラーを解決するには、Oracle Unified Directoryに匿名でアクセスできることと、次のcn=subschemasubentryエントリが含まれていることを確認します。

$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X  -b cn=subschemasubentry -s base "(objectclass=*)"
dn: cn=subschemasubentry
objectClass: top
objectClass: ldapSubentry
objectClass: subschema

Oracle Unified Directoryがエンタープライズ・ユーザー・セキュリティに対して有効化されていない場合、cn=subschemasubentryエントリは使用できません。エンタープライズ・ユーザー・セキュリティを有効にするには、Oracle Unified DirectoryのインストールのGUIを使用したディレクトリ・サーバーの設定に関する項を参照してください。

cn=subschemasubentryに匿名でアクセスできない場合は、次のACIがOracle Unified DirectoryでグローバルACIとして定義されているかどうかを確認します。

(target="ldap:///cn=subschemasubentry")(targetscope="base") \
(targetattr="objectClass||attributeTypes||dITContentRules||dITStructureRules| \
|ldapSyntaxes||matchingRules||matchingRuleUse||nameForms||objectClasses") \ 
(version 3.0; acl "User-Visible SubSchemaSubentry Operational Attributes"; \
allow (read,search,compare) userdn="ldap:///anyone";)

詳細は、第28.1項「dsconfigを使用したグローバルACIの管理」を参照してください。

31.6.1.3 ネーミング・コンテキスト・エラー

cn=OracleContextネーミング・コンテキストおよびcn=OracleContext,<your baseDN>ネーミング・コンテキストを使用できない場合、「Oracle Net Configuration Assistant」画面にエラー・メッセージが表示されます。

このエラーを解決するには、次の手順を完了します。

  1. コマンド行で次のコマンドを実行して、baseDNを使用できるかどうかを確認します。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X  -b "" -s base "(objectclass=*)" namingContexts
    dn: 
    namingContexts: cn=OracleContext
    namingContexts: cn=OracleSchemaVersion
    namingContexts: dc=eusovd,dc=com
    

    前述のように3つのネーミング・コンテキストが使用可能であることを確認します。ベースDNが見つからない場合は、Oracle Unified DirectoryのインストールのGUIを使用したディレクトリ・サーバーの設定に関する項の説明に従って、エンタープライズ・ユーザー・セキュリティを有効にする必要があります。

  2. コマンド行で次のコマンドを実行して、baseDNにOracleコンテキストが含まれているかどうかを確認します。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X  -b ""  "(objectclass=orclcontext)"
    dn: cn=OracleContext
    orclVersion: 90600
    cn: OracleContext
    objectClass: orclContext
    objectClass: orclContextAux82
    objectClass: top
    objectClass: orclRootContext
     
    dn: cn=OracleContext,dc=eusovd,dc=com
    orclVersion: 90600
    cn: OracleContext
    objectClass: orclContext
    objectClass: orclContextAux82
    objectClass: top
    

    注意:

    NetCAは匿名で検索を実行します。Oracle Unified Directoryが匿名検索を拒否するように構成されていたり、ACIがcn=OracleContext,<baseDN>へのアクセスを制限している場合、NetCAはOracleコンテキストを見つけることができません。

  3. NetCAの構成が完了すると、$ORACLE_HOME/network/adminディレクトリ(UNIXの場合)またはORACLE_HOME\network\adminディレクトリ(Windowsの場合)にldap.oraファイルが作成されます。次のパラメータが含まれていることを確認します。

    DIRECTORY_SERVERS= (oudhost:1389:1636) 
    DEFAULT_ADMIN_CONTEXT = "dc=eusovd,dc=com"
    DIRECTORY_SERVER_TYPE = OID
    

31.6.2 Database Configuration Assistant (DBCA)の問題と解決策

31.6.2.1 TNS-04409エラー/TNS-04427: ディレクトリ・サーバーへのSSLアクセス

このエラー・メッセージは、SSLがOracle Unified Directoryに対して有効化されていない場合に表示されます。

このエラーを解決するには、コマンド行で次のコマンドを実行して、SSLがOracle Unified Directoryに対して有効化されているかどうかを確認します。

$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X  -b "" -s base "(objectclass=*)"
dn: 
objectClass: top
objectClass: ds-root-dse

詳細は、第26章「クライアント/サーバー間のセキュリティ構成」を参照してください。

31.6.2.2 TNS-04409エラー/TNS-04431: 接尾辞が必要

このエラー・メッセージは、接尾辞が使用できない場合に表示されます。

このエラーを解決するには、Oracle Unified DirectoryのインストールのGUIを使用したディレクトリ・サーバーの設定に関する項の説明に従って、接尾辞が作成されていることを確認します。

31.6.2.3 DBにcn=directory manager以外のユーザーを登録するときのTNS-04411エラー

このエラー・メッセージは、データベース登録時にcn=directory manager以外のユーザーを指定した場合に表示されます。

このエラーを解決するには、ユーザーがパスワード・リセット権限を持ち、ユーザー・エントリに次のいずれかのuniqueMember属性が含まれていることを確認します。

  • cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com

  • cn=oraclenetadmins,dc=oraclecontext,dc=eusovd,dc=com

    コマンド行で次のコマンドを実行します:

    $ OracleUnifiedDirectory/bin/ldapmodify -h $LDAPSERVER -p $LDAPPORT -D $DN -w $PWD
    dn: cn=newadmin,ou=people,dc=eusovd,dc=com
    changetype: modify
    add: ds-privilege-name
    ds-privilege-name: password-reset
     
    Processing MODIFY request for cn=newadmin,ou=people,dc=eusovd,dc=com
    MODIFY operation successful for DN cn=newadmin,ou=people,dc=eusovd,dc=com
    dn: cn=oraclenetadmins,cn=oraclecontext,dc=eusovd,dc=com
    changetype: modify
    add: uniquemember
    uniquemember:  cn=newadmin,ou=people,dc=eusovd,dc=com
     
    Processing MODIFY request for cn=oraclenetadmins,cn=oraclecontext,dc=eusovd,dc=com
    MODIFY operation successful for DN cn=oraclenetadmins,cn=oraclecontext,dc=eusovd,dc=com
    dn: cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com
    changetype: modify
    add: uniquemember
    uniquemember:  cn=newadmin,ou=people,dc=eusovd,dc=com
     
    Processing MODIFY request for cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com
    MODIFY operation successful for DN cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com
    

31.6.2.4 TNS-04409エラー/TNS-04405

このエラー・メッセージは、DBCAがデータベース・エントリ用に作成するパスワードがOracle Unified Directoryパスワード・バリデータに許可されない場合に表示されます(たとえば、10文字以上の長さのパスワードが必要な場合)。

このエラーを解決するには、次の手順を完了する必要があります。

  1. コマンド行で次のコマンドを実行して、パスワード・バリデータを無効にします。

    $ OracleUnifiedDirectory/bin/dsconfig -h $LDAPSERVER -p $ADMINPORT \
    -D $DN -j pwd.txt set-password-policy-prop \
    --policy-name Default\ Password\ Policy --reset password-validator \
    --trustAll --no-prompt
    
  2. dbcaコマンドを実行します。

  3. コマンド行で次のコマンドを実行して、パスワード・バリデータを有効にします。

    $ OracleUnifiedDirectory/bin/dsconfig -h $LDAPSERVER -p $ADMINPORT -D
     $DN -j pwd.txt set-password-policy-prop --policy-name Default\ 
    Password\ Policy --set password-validator:Length-Based\ Password\ Validator --trustAll --no-prompt
    

31.6.3 Oracle SQLの問題と解決策

31.6.3.1 ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。

このエラー・メッセージは、データベースとディレクトリ間の接続に問題がある場合に表示されます。

この問題を解決するには、次のようにします。

  1. データベース・ウォレットの自動ログインが有効になっていることを確認します。Oracle Wallet Managerを使用するか、$ORACLE_HOME/admin/<ORACLE_SID>/wallet/cwallet.ssoファイルがあることを確認します。

  2. 次のコマンドを実行して、ユーザー・エントリのDNおよびパスワードを確認します。

    $ mkstore -wrl $ORACLE_BASE/admin/$ORACLE_SID/wallet -viewEntry ORACLE.SECURITY.DN
    Oracle Secret Store Tool : Version 11.2.0.2.0 - Production
    Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
    Enter wallet password:   ********   
    ORACLE.SECURITY.DN = cn=orcl11gr2,cn=OracleContext,dc=eusovd,dc=com
     
    $ mkstore -wrl $ORACLE_BASE/admin/$ORACLE_SID/wallet -viewEntry ORACLE.SECURITY.PASSWORD
    Oracle Secret Store Tool : Version 11.2.0.2.0 - Production
    Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
    Enter wallet password:   ********       
    ORACLE.SECURITY.PASSWORD = zQ7v4ek3
    
  3. 次のコマンドを実行して、データベースがディレクトリ・サーバーに接続できるか確認します。

    $ oracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT 
    -b cn=common,cn=products,cn=oraclecontext,$BASEDN  "(objectclass=*)"
    orclcommonusersearchbase orclcommongroupsearchbase orclcommonnicknameattribute
    orclcommonnamingattribute
    dn: cn=Common,cn=Products,cn=OracleContext,dc=eusovd,dc=com
    orclcommonusersearchbase: ou=people,dc=eusovd,dc=com
    orclcommongroupsearchbase: ou=groups,dc=eusovd,dc=com
    orclcommonnicknameattribute: uid
    orclcommonnamingattribute: cn
    

    ディレクトリ・サーバーへの接続に失敗する場合は、次の手順を実行する必要があります。

    1. データベース・エントリがディレクトリ・サーバー内に存在していることを確認します。

    2. 次のコマンドを実行して、orclcommonrpwdattributeにデータベース・エントリのパスワードが含まれていることを確認します。

      $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT 
      -b  cn=oraclecontext,$BASEDN -s one "(objectclass=orcldbserver)" 
       orclcommonrpwdattribute
      dn: cn=orcl11gr2,cn=OracleContext,dc=eusovd,dc=com
      orclcommonrpwdattribute: {SASL-MD5}KvIVAyYahxnHWdlfN649Kw==
      

    エントリが見つからないか、またはエントリにパスワードが含まれていない場合は、「タスク4: LDAPサーバーにデータベースを登録する」の説明に従って、DBCAを使用する必要があります。

31.6.3.2 ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。

このエラー・メッセージは、無効なユーザー名またはパスワードが指定された場合に表示されます。

このエラーを解決するには、正しいユーザー名およびパスワードを指定します。

  1. 次のコマンドを実行して、エンタープライズ・ユーザー・セキュリティの構成を確認します。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -b \
    cn=common,cn=products,cn=oraclecontext,$BASEDN \
    "(objectclass=*)" orclcommonusersearchbase \
    orclcommongroupsearchbase orclcommonnicknameattribute orclcommonnamingattribute
    dn: cn=Common,cn=Products,cn=OracleContext,dc=eusovd,dc=com
    orclcommonusersearchbase: ou=people,dc=eusovd,dc=com
    orclcommongroupsearchbase: ou=groups,dc=eusovd,dc=com
    orclcommonnicknameattribute: uid
    orclcommonnamingattribute: cn
    

    Oracle Unified DirectoryがEUS用に構成されると、ユーザーおよびグループ構成が属性orclcommonusersearchbaseおよびorclusercommongroupsearchbase内に格納されます。

    SQLPLUSに指定するユーザー名は、ユーザー・エントリ内のorclcommonnicknameattributeの値に対応している必要があります。たとえば、値joe/passwordおよびorclcommonnicknameattribute=uidを使用してSQLPLUSに接続する場合、データベースは属性uid=joeを含むエントリを検索します。

    ユーザー・エントリDNは、orclcommonnamingattributeから始まる必要があります。たとえば、orclcommonnamingattribute=cnの場合、ユーザー・エントリはcn=joe,<orclcommonusersearchbase>である必要があります。

  2. ユーザー・コンテナに、SQLPLUSに指定したユーザー名と一致するユーザー・エントリが存在することを確認します。inetorgpersonオブジェクト・クラスには、orclcommonnicknameattributeに定義した属性が含まれます。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT \
    -D $DN -w $PWD -b ou=people,$BASEDN  "(ui \d=joe)"                         
    dn: cn=joe,ou=people,dc=eusovd,dc=com
    userPassword: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA==
    objectclass: person
    objectclass: organizationalPerson
    objectclass: inetorgperson
    objectclass: top
    uid: joe
    cn: joe
    sn: joe
    
  3. Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド共有スキーマへのエンタープライズ・ユーザーのマッピングに関する項の説明に従って、ユーザースキーマ・マッピングが作成されていることを確認します。

31.6.3.3 ORA-28274: ユーザー・ニックネームに対応するORACLEパスワード属性が存在しません。

このエラー・メッセージは、データベースが対応するユーザーを検出したが、そのパスワードをSQLに提供されたパスワードと比較できない場合に表示されます。

この問題を解決するには、次のようにします。

  1. データベース・エントリに、エントリauthpasswordおよびorclguidを読み込むために必要なACIがあることを確認します。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -D $DN 
    -w $PWD -b ou=people,$BASEDN  "(uid=joe)" authpassword orclguid
    dn: cn=joe,ou=people,dc=eusovd,dc=com
    authpassword;orclcommonpwd: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA==
    orclguid: 6458c6945c0a48be92ab35cf71859210
    
  2. データベースがエントリを読み込めない場合は、次のACIがグローバルACIとしてOUDサーバーに定義されていることを確認します(EUSが選択されている場合は、oud-setupによって自動的に追加されます)。

    (target="ldap:///dc=eusovd,dc=com")(targetattr!="userpassword||authpassword
    ||aci")(version 3.0; acl "Anonymous read access to subtree";allow
     (read,search,compare) userdn="ldap:///anyone";)
    (target="ldap:///dc=eusovd,dc=com")(targetattr="authpassword||userpassword")
    (version 3.0; acl "EUS reads authpassword"; allow (read,search,compare)
    userdn="ldap:///??sub?(&(objectclass=orclservice)(objectclass=orcldbserver))";)
    
  3. ユーザー・エントリにauthpasswordが含まれていない場合は、ユーザー・パスワードがあることを確認します。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -D $DN -w $PWD -b ou=people,$BASEDN  "(uid=joe)" userpassword         
    dn: cn=joe,ou=people,dc=eusovd,dc=com
    userpassword: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA==
    
  4. 互換性のあるスキーム(SSHA-512はサポートされていない)を使用してuserpassword属性が格納されていることを確認します。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -D $DN -w $PWD -b ou=people,$BASEDN  "(uid=joe)" userpassword         
    dn: cn=joe,ou=people,dc=eusovd,dc=com
    userpassword: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA==
    

31.6.3.4 ORA-28051: アカウントがロックされています。

このエラー・メッセージは、適切な認証に複数回失敗した場合に表示されます。

この問題を解決するには、次のようにします。

  1. コマンド行で次のコマンドを実行して、Oracle Unified Directoryにアカウント・ロックアウトが構成されていることを確認します。

    $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -X -Z -D $DN 
    -w $PWD -b "cn=Default Password Policy,cn=Password Policies,cn=config" 
    "(objectclass=*)" ds-cfg-lockout-failure-count ds-cfg-lockout-duration  ds-cfg-lockout-failure-expiration-interval
    dn: cn=Default Password Policy,cn=Password Policies,cn=config
    ds-cfg-lockout-failure-expiration-interval: 180 s
    ds-cfg-lockout-failure-count: 3
    ds-cfg-lockout-duration: 180 s
    

    failure-countの値が0の場合、アカウント・ロックアウトが有効になっています。詳細は、第30章「パスワード・ポリシーの管理」を参照してください。

  2. エンタープライズ・ユーザー・セキュリティの構成時に、次のACIが定義されていることを確認します。

    (target="ldap:///dc=eusovd,dc=com")(targetattr="orclaccountstatusevent")
    (version 3.0; acl "EUS write orclaccountstatusenabled"; allow (write) 
    userdn="ldap:///??sub?(&(objectclass=orclservice)(objectclass=orcldbserver))";)
    (targetcontrol="2.16.840.1.113894.1.8.16")(version 3.0; acl "Anonymous control access"; allow(read) userdn="ldap:///anyone";)
    (targetcontrol="2.16.840.1.113894.1.8.2")(version 3.0; acl "Anonymous control
     access"; allow(read) userdn="ldap:///anyone";)