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

Oracle Enterprise User Security (EUS)により、Oracle DatabaseユーザーはLDAP準拠ディレクトリ・サービスに格納されているアイデンティティに対して認証できます。

トピック

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

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

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

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

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

31.2 Oracle Enterprise User SecurityにOracle Unified Directoryを統合する前のオプションの理解

Oracle Unified DirectoryとOracle Enterprise User Securityを統合する前に、Oracle Unified Directoryがトポロジで果たす役割について検討してください。また、会社全体の他のビジネス要件についても検討してください。

統合を始める前に、様々な統合オプションに必要なすべてのタスクおよびステップをレビューします。

31.3 Oracle Enterprise User SecurityにOracle Unified Directoryを統合する前の前提条件について

複数のOracle製品やトポロジの外部LDAP準拠ディレクトリ(ある場合)にOracle Unified Directoryを統合する前に、前提条件を必ず確認してください。

始める前に、次のコンポーネントとそれぞれに添付されている最新のドキュメントにアクセスできることを確認してください。

  • Oracle Unified DirectoryOUDSMoud-setupコマンドおよびoud-proxy-setupコマンド

  • Oracle Enterprise User Security Net Configuration Assistant

  • Oracle DatabaseのDatabase Configuration Assistant

  • Enterprise Manager for Oracle Database

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

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

Oracle Enterprise User SecurityにOracle Unified Directoryを統合するためのステップを追った説明に従ってください。

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

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

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

31.4.1.1 エンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directoryの構成
31.4.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のために準備されます。

    前述のコマンドを使用して、OUDインスタンスを構成してSalted SHA-1パスワード記憶スキームを使用できます。ただし、OUDを構成して、SHA-512ベースのアルゴリズムを使用してパスワードをエンコードするよりセキュアなEUS PBKDF2 SHA512パスワード記憶スキームを使用できます。

    これを実行するには、値"sha2"とともにeusPasswordScheme引数を使用して、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" --eusPasswordScheme sha2

    ノート:

    • Oracle RDBMSバージョンがサポートしている場合のみ、Oracle Unified Directoryを構成してEUS PBKDF2 SHA512パスワード記憶スキームを使用できます。データベース管理者に問い合せてRDBMSがMulti-Round SHA-512ベースのパスワード検証をサポートしているかどうかを検証することをお薦めします。

    • CLIオプションのみを使用して、OUDを構成してEUS PBKDF2 SHA512パスワード記憶スキームを使用できます。GUIモードで同様の操作はサポートされていません。

  • グラフィカル・ユーザー・インタフェースを使用するには:

    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.4.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として指定されたネーミング・コンテキストを構成します。

    前述のコマンドを使用して、OUDを構成してSalted SHA-1パスワード記憶スキームを使用できます。ただし、OUDを構成して、SHA-512ベースのアルゴリズムを使用してパスワードをエンコードするよりセキュアなEUS PBKDF2 SHA512パスワード記憶スキームを使用できます。これを実行するには、値"sha2"とともにeusPasswordScheme引数を使用して、manage-suffix updateコマンドを実行します。たとえば:

    $ manage-suffix update -h host -p adminPort -D "cn=directory manager" -j pwd.txt -X -n -b baseDN --integration eus
    --eusPasswordScheme sha2
  • EUSの新しいネーミング・コンテキストを作成するには、manage-suffix createコマンドを実行します。たとえば:

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

    前述のコマンドを使用して、OUDを構成してSalted SHA-1パスワード記憶スキームを使用できます。ただし、OUDを構成して、SHA-512ベースのアルゴリズムを使用してパスワードをエンコードするよりセキュアなEUS PBKDF2 SHA512パスワード記憶スキームを使用できます。これを実行するには、値"sha2"とともにeusPasswordScheme引数を使用して、manage-suffix createコマンドを実行します。たとえば:

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

ノート:

Oracle RDBMSバージョンがサポートしている場合のみ、Oracle Unified Directoryを構成してEUS PBKDF2 SHA512パスワード記憶スキームを使用できます。データベース管理者に問い合せてRDBMSがMulti-Round SHA-512ベースのパスワード検証をサポートしているかどうかを検証することをお薦めします。

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

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

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

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

  • OUDSMを使用してEUSの既存のネーミング・コンテキストを構成するには:

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

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

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

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

  • OUDSMを使用してEUSの新しいネーミング・コンテキストを作成および構成するには:

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

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

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

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

      1. ベースDN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      5. ワークフロー要素

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

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

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

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

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

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

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

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

ノート:

EUSのネーミング・コンテキストを作成および構成した後、Oracle Unified Directory 12c構成を更新して、TNS別名機能を有効化できます。

eus-alias-resolutionワークフロー要素をグローバルcn=OracleContextおよびcn=OracleContext,<EUS Realm>ワークフロー・チェーンに追加することで、dsconfigコマンドを手動で実行してTNS別名機能を設定する必要があります。Oracle Unified DirectoryのインストールEUS対応構成のTNS別名サポートの有効化に関する項を参照してください。

31.4.1.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.4.1.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)として表されます。高可用性のデプロイメントを実現するために複数のサーバーをカンマで区切って指定できます。「高可用性トポロジでのOracle Unified Directoryおよびエンタープライズ・ユーザー・セキュリティの使用」を参照してください。

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

31.4.1.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.4.1.5 ロールと権限の構成
31.4.1.5.1 データベースでの共有スキーマの作成

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

SQL> CREATE USER global_ident_schema_user IDENTIFIED GLOBALLY;
User created.
SQL> GRANT CONNECT TO global_ident_schema_user;
Grant succeeded.
31.4.1.5.2 新しいユーザースキーマ・マッピングの作成

ノート:

この手順に示されているステップを実行する前に、「Oracle Unified Directory管理者用のパスワード・ポリシーの構成」を参照してください。

新しいユーザー・スキーマ・マッピングを作成するには:

  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.4.1.5.3 データベースでのロールの作成

この例の場合、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.4.1.5.4 ドメインでの新しいロールの作成

ドメイン内に新しいロールを作成するには:

  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.4.1.5.5 データベースでのプロキシ権限の定義

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

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

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

31.4.1.5.6 新しいプロキシ権限の作成

新しいプロキシ権限を作成するには:

  1. ドメイン情報の構成ページで、構成するドメインを選択し、「構成」をクリックします。
  2. 「ドメインの構成」ページで、「プロキシ権限」をクリックします。
  3. 新しいプロキシ権限を作成するには、「プロキシ権限」タブで「作成」をクリックします。
  4. 「プロキシ権限の作成」ページで、「名前」フィールドに、プロキシ権限の名前を指定します。
  5. 「ターゲットDBユーザー」タブで、「追加」をクリックします。
  6. 「検索と選択: データベース・ターゲット・ユーザー」ページで、次の情報を指定します。
    • データベース

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

    • ユーザー名

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

    • パスワード

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

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

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

  7. 「検索と選択」ページで、プロキシ権限のターゲット・ユーザーを選択し、「選択」をクリックします。
  8. 「プロキシ権限の作成」ページで、「権限受領者」タブをクリックします。
  9. 「権限受領者」タブで、「追加」をクリックします。
  10. ユーザーおよびグループの選択ページで、「実行」をクリックします。Enterprise Managerは、使用可能なエンタープライズ・ユーザーを取得します。

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

  11. 「プロキシ権限の作成」ページで、「続行」をクリックします。
  12. 「ドメインの構成」ページで、「OK」をクリックして続行します。
31.4.1.5.7 特定のデータベース用のマッピングの構成

特定のデータベース用のマッピングを構成するには:

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

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

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

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

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

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

      グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには:

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

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

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

      グローバル・スキーマを特定のユーザーに関連付けるには:

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

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

    2. 宛先

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

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

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

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

31.4.1.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によりユーザー・パスワードが要求されます。管理者は、LDAPサーバーでuid=user.1,ou=people,dc=example,dc=com用に構成されたパスワードを指定します。

    # 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.4.2 外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するようにOracle Unified Directoryプロキシを構成する

外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するようにOracle Unified Directoryプロキシを構成するには、次のタスクに従います。

31.4.2.1 外部LDAPディレクトリでのユーザー・アイデンティティの構成
31.4.2.1.1 Microsoft Active Directoryのユーザー・アイデンティティの構成
以前のリリースでは、Oracle Enterprise User Securityを構成し、Oracle Unified Directoryをインストールして構成することによって、Oracle Databaseユーザーの認証と認可をActive Directoryに統合しました。ただし、集中管理ユーザー(CMU)を使用して、データベースにより直接、Active Directoryユーザーを認証および認可できるようになりました。

Oracle Unified Directory 12 c (12.2.1.4.0)以降、パスワード通知変更プラグイン(oidpwdcn.dll)は非推奨になりました。Oracleでは、Oracle Databaseが備えるCMU機能を使用することをお薦めします。CMUは、新しい強力なハッシュ・アルゴリズムおよびその他の更新されたセキュリティ拡張機能をすべてサポートします。

現在、パスワード変更通知プラグインを使用しており、CMUへの移行を予定している場合は、次のステップを行ってください:

  1. oidpwdcn.dllをシステム32から削除します(存在する場合)。
  2. エントリoidpwdcnHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\レジストリから削除します。
  3. Microsoft Active Directoryで集中管理ユーザーを構成します。『Oracle Databaseセキュリティ・ガイド』Microsoft Active Directoryによる集中管理ユーザーの構成に関する項を参照してください。
31.4.2.1.2 集中管理ユーザーを使用したMicrosoft Active Directoryでのユーザー・アイデンティティの構成
以前のリリースでは、Oracle Enterprise User Securityを構成し、Oracle Unified Directoryをインストールして構成することによって、Oracle Databaseユーザーの認証と認可をActive Directoryに統合しました。ただし、集中管理ユーザー(CMU)を使用して、データベースにより直接、Active Directoryユーザーを認証および認可できるようになりました。

Oracle Unified Directory 12 c (12.2.1.4.0)以降、パスワード通知変更プラグイン(oidpwdcn.dll)は非推奨になりました。Oracleでは、Oracle Databaseが備えるCMU機能を使用することをお薦めします。CMUは、新しい強力なハッシュ・アルゴリズムおよびその他の更新されたセキュリティ拡張機能をすべてサポートします。

現在、パスワード変更通知プラグインを使用しており、CMUへの移行を予定している場合は、次のステップを行ってください:

  1. oidpwdcn.dllをシステム32から削除します(存在する場合)。
  2. エントリoidpwdcnHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\レジストリから削除します。
  3. Microsoft Active Directoryで集中管理ユーザーを構成します。『Oracle Databaseセキュリティ・ガイド』Microsoft Active Directoryによる集中管理ユーザーの構成に関する項を参照してください。
31.4.2.1.3 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.4.2.1.4 Novell eDirectoryのユーザー・アイデンティティの構成

eDirectoryでユニバーサル・パスワードを有効化し、管理者がユーザー・パスワードを取得できるようにします。

詳細は、Novell eDirectoryのパスワード管理に関するドキュメントを参照してください。

31.4.2.1.5 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 RDBMSバージョンがサポートしている場合はEUS PBKDF2 SHA-512)を使用できます。データベース管理者に問い合せてユーザー側でデプロイされているRDBMSバージョンがMulti-Round SHA-512ベースのパスワード検証をサポートしているかどうかを検証することをお薦めします。

ノート:

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

31.4.2.2 エンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directoryプロキシの構成

Oracle Unified Directory Proxyをまだインストールしていない場合は、次のいずれかの項のステップを完了します。

Oracle Unified Directoryプロキシ・インスタンスをすでにインストールしている場合は、「OUDSMを使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directoryプロキシの構成」のステップを完了します。

31.4.2.2.1 コマンド行を使用した、新しいOracle Unified Directoryプロキシのインストールおよび構成

新しいOracle Unified Directoryプロキシをインストールおよび構成するには:

  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の場合はedirOracle 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.4.2.2.2 グラフィカル・ユーザー・インタフェースを使用した、新しいOracle Unified Directoryプロキシのインストールおよびエンタープライズ・ユーザー・セキュリティと連携するための構成

ノート:

OUDインスタンス作成GUIウィザードは、Oracle Unified Directory 12c (12.2.1.4.0)では非推奨になります。Oracleでは、コマンドライン(CLI)を使用してインスタンスを作成することをお薦めします。詳細は、CLIを使用したプロキシの設定に関する項を参照してください。

グラフィカル・ユーザー・インタフェースを使用して、新しいOracle Unified Directoryプロキシをインストールし、エンタープライズ・ユーザー・セキュリティと連携するように構成するには:

  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]。これは、OUDプロキシからリモート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-ldapタイプを見ると、それに対応するワークフロー要素名(proxy-we1)を特定できます。

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

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

    • 外部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管理者によって使用される資格証明です。

    • 外部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
31.4.2.2.3 OUDSMOUDSMを使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directoryプロキシ・サーバーの構成

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

  1. OUDSMからOracle Unified Directoryプロキシに接続します。

  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.4.2.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.4.2.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.4.2.5 LDAPサーバーへのデータベースの登録

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.4.2.6 ロールと権限の構成
31.4.2.6.1 データベースでの共有スキーマの作成

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

SQL> CREATE USER global_ident_schema_user IDENTIFIED GLOBALLY;
User created.
SQL> GRANT CONNECT TO global_ident_schema_user;
Grant succeeded.
31.4.2.6.2 新しいユーザースキーマ・マッピングの作成

ノート:

この手順に示されているステップを実行する前に、「Oracle Unified Directory管理者用のパスワード・ポリシーの構成」を参照してください。

新しいユーザー・スキーマ・マッピングを作成するには:

  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. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。

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

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

    グローバル・スキーマを特定のユーザーに関連付けるには:

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

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

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

    宛先

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

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

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

31.4.2.6.3 データベースでのロールの作成

この例の場合、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.4.2.6.4 ドメインでの新しいロールの作成

ドメイン内に新しいロールを作成するには:

  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.4.2.6.5 データベースでのプロキシ権限の定義

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

SQL> ALTER USER SH GRANT CONNECT THROUGH ENTERPRISE USERS;
User altered.
 
This command defines a proxy permission on user SH.
31.4.2.6.6 新しいプロキシ権限の作成

新しいプロキシ権限を作成するには:

  1. ドメイン情報の構成ページで、構成するドメインを選択し、「構成」をクリックします。
  2. 「ドメインの構成」ページで、「プロキシ権限」をクリックします。
  3. 新しいプロキシ権限を作成するには、「プロキシ権限」タブで「作成」をクリックします。
  4. 「プロキシ権限の作成」ページで、「名前」フィールドに、プロキシ権限の名前を指定します。
  5. 「ターゲットDBユーザー」タブで、「追加」をクリックします。
  6. 「検索と選択: データベース・ターゲット・ユーザー」ページで、次の情報を指定します。

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

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

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

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

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

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

  7. 「プロキシ権限の作成」ページで、「権限受領者」タブをクリックします。
  8. 「権限受領者」タブで、「追加」をクリックします。
  9. ユーザーおよびグループの選択ページで、「実行」をクリックします。Enterprise Managerは、使用可能なエンタープライズ・ユーザーを取得します。

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

  10. 「プロキシ権限の作成」ページで、「続行」をクリックします。
  11. 「ドメインの構成」ページで、「OK」をクリックして続行します。
31.4.2.6.7 特定のデータベース用のマッピングの構成

特定のデータベース用のマッピングを構成するには:

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

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

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

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

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

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

    グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには:

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

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

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

    グローバル・スキーマを特定のユーザーに関連付けるには:

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

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

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

    宛先

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

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

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

31.4.2.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.3 Oracle Unified Directory管理者用のパスワード・ポリシーの構成

ユーザースキーマ・マッピングを作成する場合、Oracle Unified Directoryサーバーのログインに使用されるcn=directory managerなどのOracle Unified Directory管理者のユーザー名を指定する必要があります。

ユーザースキーマ・マッピングを作成する前に、次のステップを実行する必要があります。
  1. Oracle Unified Directory管理者に関連付けられているパスワード・ポリシーを変更して、デフォルトのパスワード記憶スキームとしてAESを追加し、複数のパスワード値を許可します。たとえば、管理者がcn=directory managerである場合、次のようにパスワード・ポリシーを変更します。
    ./dsconfig -h localhost -p port -D "cn=directory manager" -j pwdfile -X -n set-password-policy-prop \ 
    --policy-name "Root Password Policy" \ 
    --add default-password-storage-scheme:AES
    
    ./dsconfig -h localhost -p port -D "cn=directory manager" -j pwdfile -X -n set-password-policy-prop \
    --policy-name "Root Password Policy" \
    --set allow-multiple-password-values:true
  2. 次のようにOracle Unified Directory管理者のLDAPパスワードを変更します。
    ./ldappasswordmodify -X -Z -h localhost -p port -D "cn=directory manager" -j pwdfile \
    --currentPassword password --newPassword mynewpassword

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

Oracle Unified Directoryとエンタープライズ・ユーザー・セキュリティの基本的な統合を実行した後、複数のEUSドメインをサポートするようにOUDを構成し、高可用性をサポートするようにレプリケーションを構成できます。

31.5.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です。

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

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

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

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

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

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

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

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

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

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

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

        dn: cn=Common,cn=Products,cn=OracleContext,dc=ad1,dc=com
        changetype: modify
        add: orclcommonusersearchbase
        orclcommonusersearchbase: cn=users,dc=ad2,dc=com
        
      • orclcommongroupsearchbaseをセカンダリ・ドメインでのグループの場所に置き換えます。

        dn: cn=Common,cn=Products,cn=OracleContext,dc=ad1,dc=com
        changetype: modify
        add: orclcommongroupsearchbase
        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.5.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インスタンスには、この時点で、同じデータが含まれています。詳細は、「データによるレプリケート対象サーバーの初期化」を参照してください。

  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.6 EUS管理ユーザーを使用するためのベスト・プラクティス

エンタープライズ・ユーザー・セキュリティ(EUS)では、ディレクトリ内のデータベース情報を変更およびユーザーのパスワードをリセットできる権限を持つユーザーが必要です。ディレクトリのルートDNユーザー(OUD/ODSEEではcn=Directory Manager、OID/OVDではcn=orcladmin)はこれを実行できますが、ベスト・プラクティスは、EUSを管理する権限を持つユーザーを少なくとも1人使用することです。このユーザーは、EUS管理ユーザー(cn=eusadmin)と呼ばれます。

関連項目:

31.6.1 EUS管理ユーザーの概要

エンタープライズ・ユーザー・セキュリティ(EUS)では、ディレクトリ内のデータベース情報を変更およびユーザーのパスワードをリセットできる権限を持つユーザーが必要です。ディレクトリのルートDNユーザー(OUD/ODSEEではcn=Directory Manager、OID/OVDではcn=orcladmin)はこれを実行できますが、ベスト・プラクティスは、EUSを管理する権限を持つユーザーを少なくとも1人使用することです。このユーザーは、EUS管理ユーザー(cn=eusadmin)と呼ばれます。

DIT構造内のこのユーザーの場所も重要です。EUS管理ユーザーをOUDの"cn=OracleContext, <Suffix>"分岐を超える任意の分岐に配置すると、EUScontextワークフロー要素の制約により、EUS管理ユーザーは、それらのパスワードを変更できなくなります。パスワードのリセット権限を付与できるように、EUS管理ユーザーはローカル・バックエンドに配置するようにしてください。実装でローカル・バックエンド内にユーザーとグループが格納されている場合、そのバックエンドにEUS管理ユーザーを格納できます。ただし、実装でユーザーとグループが別のバックエンド・ディレクトリ・サービスにプロキシされている場合は、ユーザーをそこに格納しないでください。すべてのOUD EUSデプロイメントに存在するOUDインスタンスには、ローカル・バックエンド接尾辞がもう1つあります。これは、cn=OracleContextローカル・バックエンドです。必要ではありませんが、一貫性のために、EUS管理ユーザーをcn=OracleContextに配置することをお薦めします。

サンプルのEUS管理ユーザーを次に示します。

dn: cn=eusadmin,ou=EUSAdmins,cn=OracleContext 
objectClass: top 
objectClass: organizationalperson 
objectClass: inetorgperson 
uid: cn=eusadmin,ou=EUSAdmins,cn=OracleContext 
cn: eusadmin 
sn: EUS 
givenName: Admin 
userPassword: password 
ds-privilege-name: password-reset 
ds-privilege-name: unindexed-search

31.6.2 監理者権限をEUS管理ユーザーに付与するためのEUSレルムの更新

EUSレルムを更新して、管理者権限をEUS管理ユーザーに付与する必要があります。これを行うには、それぞれのEUS監理者グループのメンバーにします。

次の例に、新しいEUS管理ユーザーcn=eusadmin,ou=EUSAdmins,cn=OracleContextOracleContextAdminsグループに追加する方法を示します。この例は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』に従って、LDIFファイルを作成して、必要なすべてのグループに新しいユーザーを追加するための参照として使用できます。

それぞれのEUS管理グループの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』管理グループに関する項を参照してください。

EUS管理グループをそれぞれのグループに追加するには、次を実行します:
dn: cn=OracleContextAdmins,cn=Groups,cn=OracleContext 
changetype: modify 
add: uniqueMember 
uniqueMember: cn=eusadmin,ou=EUSAdmins,cn=OracleContext 

dn: cn=OracleContextAdmins,cn=groups,cn=OracleContext,dc=example,dc=com 
changetype: modify 
add: uniqueMember 
uniqueMember: cn=eusadmin,ou=EUSAdmins,cn=OracleContext

31.6.3 EUS管理ユーザーのパスワード・ポリシーの作成および適用

EUSでOracle Database 12cを実行する場合、SASL DIGEST-MD5認証スキームをサポートするには管理ユーザーが必要です。これには、ユーザーのUID値をそのユーザーの完全なDNに設定し、AES、Base64、Blowfish、Clear、RC4、TripleDESなど、ユーザーのパスワードの逆暗号化記憶域スキームをEUS管理ユーザーのパスワード・ポリシーに含める必要があります。このため、EUS管理ユーザーのパスワード・ポリシーを作成して、そのポリシーをEUS管理ユーザーに適用する必要があります。

手順:
  1. EUS管理ユーザーのパスワード・ポリシーを作成します。
    dsconfig create-password-policy \ 
              --set password-attribute:userpassword \ 
              --set default-password-storage-scheme:AES \ 
              --set default-password-storage-scheme:Salted\ SHA-512 \ 
              --type generic \ 
              --policy-name EUSAdmins \ 
              --hostname host.example.com \ 
              --port 1444 \ 
              --trustAll \ 
              --bindDN cn=Directory\ Manager \ 
              --bindPasswordFile /oracle/kit/.pw \ 
              --no-prompt 
  2. 次のLDIFを使用して、このパスワード・ポリシーをldapmodifyでEUS管理ユーザーに適用します。
    dn: cn=eusadmin,ou=EUSAdmins,cn=OracleContext 
    changetype: modify 
    add: ds-pwp-password-policy-dn 
    ds-pwp-password-policy-dn: cn=EUSAdmins,cn=Password Policies,cn=config 

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

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

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

表31-3 パスワード警告

警告条件 メッセージの例

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

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.8 OUDとエンタープライズ・ユーザー・セキュリティを統合した後の問題のトラブルシューティング

OUDとエンタープライズ・ユーザー・セキュリティを統合した後に問題が発生し、そのトラブルシューティング方法についての情報が必要な場合があります。

これらのトピックでは、OUDとエンタープライズ・ユーザー・セキュリティを統合した後で発生する可能性がある問題の解決策を示します。

31.8.1 Net Configuration Assistantツールのエラー・メッセージの解決

OUDとエンタープライズ・ユーザー・セキュリティの統合中にNet Configuration Assistant (NetCA)ツールによって報告されるエラー・メッセージを解決する方法について説明します。

次の各トピックでは、Net Configuration Assistant (NetCA)ツールのエラー・メッセージとそれらの解決策について説明します。

31.8.1.1 LDAPサーバー接続エラーの解決

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

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

$ 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.8.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";)

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

31.8.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.8.2 Database Configuration Assistantのエラー・メッセージの解決

OUDとエンタープライズ・ユーザー・セキュリティの統合中にDatabase Configuration Assistant (DBCA)によって報告されるエラー・メッセージを解決する方法について説明します。

次の各トピックでは、Database Configuration Assistant (DBCA)のエラー・メッセージとそれらの解決策について説明します。

31.8.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

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

31.8.2.2 TNS-04409エラー/TNS-04431: 「接尾辞が必要」の解決

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

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

31.8.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.8.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.8.3 Oracle SQLエラー・メッセージの解決

OUDとエンタープライズ・ユーザー・セキュリティの統合中にOracle SQLによって報告されるエラー・メッセージを解決する方法について説明します。

次の各トピックでは、Oracle SQLのエラー・メッセージとそれらの解決策について説明します。

31.8.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==
      

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

31.8.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.8.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.8.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の場合、アカウント・ロックアウトが有効になっています。詳細は、「パスワード・ポリシーの管理」を参照してください。

  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";)

31.9 アップグレードされた環境での既存の匿名ACIの無効化

12.2.1.3.0より前では、Oracle Unified Directoryがエンタープライズ・ユーザー・セキュリティ向けディレクトリとして使用される場合、匿名ACIがEUS統合に付与されていました。そのようなアップグレードされた環境では、Oracle Unified Directoryの既存の匿名グローバルACIを次のように変更して、Oracle Unified Directoryへの匿名検索リクエストを制限できます。

例の中のdc=oracle,dc=comは実際のデプロイメント固有のDNに置き換えてください。

(target="ldap:///dc=oracle,dc=com")(targetattr!="userpassword||authpassword||aci")(targetfilter="(objectclass=orclContext)")(version 3.0; acl "Anonymous read access to subtree";allow (read,search,compare) userdn="ldap:///anyone";)
(target="ldap:///dc=oracle,dc=com")(targetattr="*")(version 3.0; acl "EUS reads authpassword"; allow (read,search,compare) userdn="ldap:///??sub?(&(objectclass=orclservice)(objectclass=orcldbserver))";)

外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティとの連携にOracle Unified Directoryプロキシが使用されている場合は、次の仮想ACIを追加することで、Oracle Unified Directoryプロキシへの匿名検索リクエストを制限できます。例の中のdc=oracle,dc=comは実際のデプロイメント固有のDNに置き換えてください。

(target="ldap:///dc=oracle,dc=com")(targetattr="*")(version 3.0; acl "EUS reads users"; allow (read,search,compare) userdn="ldap:///??sub?(&(objectclass=orclservice)(objectclass=orcldbserver))";)
(target="ldap:///dc=oracle,dc=com")(targetattr="orclaccountstatusevent")(version 3.0; acl "EUS write orclaccountstatusenabled"; allow (write) userdn="ldap:///??sub?(&(objectclass=orclservice)(objectclass=orcldbserver))";)
(target="ldap:///dc=oracle,dc=com")(targetattr="*")(version 3.0; acl "Proxy self entry access"; allow (read,search,compare,write) userdn="ldap:///self";)