ヘッダーをスキップ
Oracle® Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド
11gリリース2(11.2)
E50142-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 エンタープライズ・ユーザー・セキュリティの構成タスクとトラブルシューティング

この章では、エンタープライズ・ユーザー・セキュリティの構成方法を順序立てて説明します。これには、初期データベースとディレクトリの準備から、パスワード、KerberosチケットまたはSSLを使用して認証されるエンタープライズ・ユーザーとしてデータベースに接続するまでの手順が含まれます。トラブルシューティングの項は、エンタープライズ・ユーザー・セキュリティの実装をテストする際に役立ちます。

この章では、次の項目について説明します。

4.1 エンタープライズ・ユーザー・セキュリティの構成の概要

エンタープライズ・ユーザー・セキュリティを構成するということは、エンタープライズ・ユーザーがアクセスできるように、共有スキーマとグローバル・ロールをデータベースに作成することを意味します。ディレクトリにアイデンティティ管理レルムを構成してデータベース・ロールとスキーマを反映し、そのデータベース・ロールとスキーマにディレクトリ・ユーザーを関連付けます。これらの手順は、選択した認証方式(パスワード、KerberosまたはSSL)にかかわらず適用されます。

認証タイプによる構成の主な違いは、ネットワーク接続構成です。次の3つの接続タイプを検討する必要があります。

    • クライアントとデータベース間

    • データベースとディレクトリ間

    • データベース間(現行ユーザーのデータベース・リンクを保護できるのはSSLのみ)

エンタープライズ・ユーザー・セキュリティでは、データベース、ディレクトリおよびクライアント間の認証タイプの様々な組合せをサポートしています。この章で説明するエンタープライズ・ユーザー・セキュリティの最も一般的な3つの実装では、クライアントとデータベース間の接続およびデータベースとディレクトリ間の接続に対して、次の認証方式を使用します。

    • 両方の接続にパスワードを使用

    • 両方の接続にSSLを使用

    • クライアントとデータベース間の接続にはKerberosを、データベースとディレクトリ間の接続にはパスワードを使用

エンタープライズ・データのセキュリティと整合性はセキュアなネットワーク接続の作成に依存するため、これらの認証方式のいずれを選択するかは、主にネットワーク環境に基づいて決定します。一般的なネットワーク環境では、すべてのクライアント、データベースおよびディレクトリが、ファイアウォールの内側にある同じネットワーク内に存在する場合や、複数のネットワークに分散されてインターネットに公開される場合があります。エンタープライズ・ユーザー・セキュリティのネットワーク接続を保護するには、環境に応じて認証タイプを選択できます。

次に認証タイプの選択で考慮する点は、SSLやKerberosなどの厳密な認証タイプでは、構成が複雑になり、追加のソフトウェアや継続的なメンテナンスが必要になる点です。

図4-1に、エンタープライズ・ユーザー・セキュリティの構成プロセスを示します。この構成プロセスは、実装とユーザーの認証方法に基づいた判断ポイントを記載した段階的なプロセスです。破線で示されている構成手順はオプションです。

図4-1 エンタープライズ・ユーザー・セキュリティの構成フロー・チャート

図4-1の説明が続きます
「図4-1 エンタープライズ・ユーザー・セキュリティの構成フロー・チャート」の説明

簡潔にするために、このフロー・チャートでは一部の製品名と機能は略語で示されています。次の表に、使用されている略語とその意味を示します。

略語 意味
DBCA Database Configuration Assistant
EM Oracle Enterprise Manager Database ControlまたはGrid Control
IM Realm アイデンティティ管理レルム
Netmgr Oracle Net Manager
ODM Oracle Directory Manager
OID Oracle Internet Directory
OID DAS Oracle Internet Directory Delegated Administration Services
OWM Oracle Wallet Manager
SQL SQL*Plus


関連項目:

レルムOracleコンテキストとその管理グループ、およびエンタープライズ・ユーザー・セキュリティに関連するエントリの詳細は、第1章「エンタープライズ・ユーザー・セキュリティの概要」を参照してください。

4.3 エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)

エンタープライズ・ユーザー・セキュリティの他の部分を構成する前に、この構成フェーズを実行する必要があります。

11gリリース2(11.2)のエンタープライズ・ユーザー・セキュリティには、必要なバージョンのOracleスキーマがインストールされたリリース9.0.4(以上)のOracle Internet Directoryが必要です。このスキーマには下位互換性があります。Oracle Internet Directoryをインストールした後で、次のディレクトリ使用構成タスクを実行します。

タスク1: (オプション)ディレクトリでのアイデンティティ管理レルムの作成

必要に応じて、Oracle Internet Directoryセルフ・サービス・コンソール(Delegated Administration Services)を使用して、ディレクトリにアイデンティティ管理レルムを作成します。また、Oracle Internet Directoryコンフィギュレーション・アシスタントを使用すると、Oracle9iのOracleコンテキストをリリース9.0.4以上のアイデンティティ管理レルムにアップグレードできます。

Oracle Database 10gまたはOracle Database 11gを使用するには、リリース9.0.4 (以上)のアイデンティティ管理レルムが必要です。リリース9.0.4のレルムは、Oracle9iと下位互換性があるため、必要であれば、Oracle9iとOracle Database 11gリリース2(11.2)を同じレルムに登録し、同じドメインに配置できます。


関連項目:

Oracle Internet Directoryにアイデンティティ管理レルムを作成する方法は、『Oracle Identity Management委任管理ガイド』を参照してください。

タスク2: (オプション)アイデンティティ管理レルムのプロパティの設定

表4-1に、リリース9.0.4のアイデンティティ管理レルムのデフォルトを示します。

表4-1 アイデンティティ・レルムのデフォルト

ユーザー検索ベース グループ検索ベース ログイン名属性(ニックネーム)

cn=Users,realm_DN

cn=Groups,realm_DN

uid, ユーザーID


別の設定を使用する場合は、Oracle Internet Directoryセルフ・サービス・コンソールを使用してユーザー検索ベース、グループ検索ベースおよびログイン名属性(ニックネーム)を設定します。ディレクトリで使用する予定のアイデンティティ管理レルムには、必要なコンテキスト管理者も設定できます。

このタスクを実行するには、「アイデンティティ管理レルムのプロパティの設定」を参照してください。


注意:

各アイデンティティ管理レルムには、そのレルムのみのルート・ユーザーであるorcladminユーザーが含まれます。これらのレルム固有のorcladminユーザーは、ディレクトリ・エントリcn=orcladmin,cn=Users,<realm_DN>で表されます。レルム固有のorcladminユーザーとしてエンタープライズ・ユーザー・セキュリティ管理ツールにログインしている場合は、そのレルムのディレクトリ・オブジェクトのみ管理できます。別のレルムのオブジェクトを管理するには、そのレルムのorcladminユーザーとして管理ツールにログインする必要があります。

タスク3: ディレクトリでの管理ユーザーの特定

ディレクトリで次のタスクの実行を認可された管理ユーザーを特定します。

    • データベースの登録

    • データベース・セキュリティの管理

    • エンタープライズ・ドメインの作成および管理

これらのタスクを実行できる管理ユーザーがまだ存在しない場合は、第5章「エンタープライズ・ユーザー・セキュリティの管理」を参照して作成します。


注意:

1人の管理者がエンタープライズ・ユーザー・セキュリティのすべての管理タスクを実行できますが、様々な管理者を作成し、セキュリティ・タスクをそれぞれ別の管理者に割り当てることもできます。このようにセキュリティ・タスクを分離することによってセキュアなエンタープライズ環境が実現しますが、この環境では、各管理者間の連携が必要となります。

タスク4: (オプション)アイデンティティ管理レルムに対するデータベースとディレクトリ間のデフォルト認証タイプの設定

デフォルトでは、アイデンティティ管理レルムに対するデータベースとディレクトリ間の認証タイプはパスワードに設定されます。別のデフォルト設定が必要な場合は、Oracle Enterprise Manager Database ControlまたはGrid Controlのインタフェースを使用して設定を変更します。たとえば、公開鍵インフラストラクチャ(PKI)を使用する場合は、認証タイプをSSLに設定する必要があります。「アイデンティティ管理レルムに対するデータベースとディレクトリ間のデフォルト認証タイプの設定」を参照してください。


注意:

  • このレルム全体のデフォルト設定は、LDAP_DIRECTORY_ACCESS初期化パラメータを設定することで、データベースで上書きできます。このパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

  • SSLを使用する場合、Oracle Internet Directoryに対して双方向SSL認証を設定する方法は、『Oracle Internet Directory管理者ガイド』を参照してください。


タスク5: (オプション)ディレクトリを使用するためのOracleホームの構成

この手順はオプションです。ドメイン・ネーム・システム(DNS)検出機能(ネットワーク上のディレクトリを検索するためのドメイン名自動検索)を使用するユーザーは、この手順を実行する必要はありません。(DNSサーバー検出の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。)

ネットワークにDNS検出を使用していない場合は、Oracle Net Configuration Assistant (NetCA)を使用してOracleホーム用のldap.oraファイルを作成する必要があります。この構成ファイルでは、データベースがディレクトリに接続できるように、ディレクトリ・ホストおよびポートの情報とアイデンティティ管理レルムの場所を指定します。(「Oracle Net Configuration Assistantの起動」を参照してください。)

Oracleホーム用のldap.oraファイルを作成するには、次のようにします。

  1. Oracle Net Configuration Assistantのようこそページで、ディレクトリ・サービス使用構成を選択し、「次へ」をクリックします。

  2. 「ディレクトリ使用構成」ページで、使用している環境に適したオプションを選択します。ウィザードに表示される指示に従い、オンライン・ヘルプを参照して、Oracleホーム用のldap.oraファイルを作成します。


    注意:

    • データベースとディレクトリ間のSSL認証では、ldap.oraファイルに入力したSSLポートにより、クライアントとサーバーの両方が相互に証明書を送信する双方向認証がサポートされている必要があります。そのため、Oracle Internet Directoryに対するPKIデジタル証明書とウォレットを取得し、Oracle Internet DirectoryをSSL相互認証モードで起動する必要があります。ldap.oraファイルの2番目のポートには、SSL相互認証ポートを指定する必要があります。(『Oracle Internet Directory管理者ガイド』を参照してください。)

    • データベースとディレクトリ間の接続にパスワード認証を使用する場合は、ldap.oraファイルに入力したSSLポートで、認証なしのSSLがサポートされている必要があります。Oracle Internet Directoryにウォレットまたは証明書は不要です。ldap.oraファイルの2番目のポートには、認証なしのSSLポートを指定する必要があります。



関連項目:

NetCAを使用してディレクトリ使用を構成する例は、「ディレクトリを使用するためのデータベースの構成」を参照してください。

タスク6: ディレクトリへのデータベースの登録

ディレクトリを使用するようにOracleホームを構成した後は、Database Configuration Assistantを使用してデータベースをディレクトリに登録します。この登録によってディレクトリにエントリが作成され、データベースはディレクトリにバインド(ログイン)できるようになります。


注意:

このタスクを実行するには、ディレクトリ・スーパーユーザーであるか、OracleDBCreatorsグループまたはOracleContextAdminsグループのメンバーであることが必要です。

データベースをディレクトリに登録すると、Database Configuration Assistantによって次の構成タスクが実行されます。

  • 新しいデータベース・サービス・エントリおよびサブツリーを作成し、使用しているアイデンティティ管理レルムのOracleコンテキストでDNを割り当てます。

  • デフォルトのエンタープライズ・ドメインにデータベースを追加します。

  • LDAP_DIRECTORY_ACCESSパラメータを3つの有効値NONEPASSWORDSSLのいずれかに設定して、データベースとディレクトリ間の認証タイプを設定します。Database Configuration Assistantは、アイデンティティ管理レルムに対するデータベースとディレクトリ間のデフォルト認証属性設定を読み取り、データベースに対する認証タイプ設定を判断します。

    データベース初期化パラメータ・ファイルに存在するLDAP_DIRECTORY_ACCESSパラメータにより、データベースがディレクトリに対する認証を試行するかどうかと、その方法が決定されます。管理者は、ALTER SYSTEMコマンドを使用してこの認証タイプ設定を変更できます。

  • 次の形式で、データベースDNを含むデータベース・ウォレットを作成します。

    cn=short_database_name,cn=OracleContext,realm_DN

    short_database_nameは、データベースの完全修飾ドメイン名の最初の部分です。

    たとえば、db1.us.example.comというデータベースがある場合、データベースの短縮名はdb1です。

  • ディレクトリ・アクセス用のデータベース・パスワードをランダムに生成し、データベース・ウォレットとディレクトリに格納します。

  • ORACLE_BASE環境変数が存在する場合、作成されたウォレットは$ORACLE_BASE/admin/Oracle_SID/wallet(UNIX環境の場合)に格納されます。ORACLE_BASE環境変数が存在しない場合は、$ORACLE_HOME/admin/Oracle_SID/walletディレクトリが使用されます。

    Windows環境では、スラッシュ(/)をバックスラッシュ(\)に置き換えます。

    データベース・ウォレットがすでに存在している場合、Database Configuration Assistantはそのウォレットを使用し、ウォレット内のパスワードを更新します。

  • データベース・ウォレットの自動ログインを有効にします。


注意:

Oracle Internet Directoryに対する認証に使用するデータベースのパスワードベースの資格証明は、Oracle Internet DirectoryにOracleデータベースを登録すると、ウォレットに格納されます。

データベースをディレクトリに登録する手順:

このツールを起動するには、「Database Configuration Assistantの起動」を参照してください。

  1. Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。

  2. データベースを選択し、「次へ」をクリックします。

  3. データベースを登録するには、「データベースを登録する」をクリックします。

  4. OracleDBCreatorsグループのユーザーのディレクトリ資格証明を入力します。

  5. データベース・ウォレットのパスワードを入力します。


    注意:

    手順5で入力したデータベース・ウォレット・パスワードを記憶しておいてください。データベースの登録が完了した後でパスワードを取得することはできません。パスワードを忘れた場合、数段階の手順を経て、新しいウォレットを作成し、データベースを再登録する必要があります。詳細は、「データベース・ウォレットとパスワードについて」を参照してください。

  6. データベースの登録のみを行う場合は、「終了」をクリックします。他のデータベース機能を構成する場合は、「次へ」をクリックします。


    関連項目:

    DBCAを使用してデータベースを登録する例は、「ディレクトリへのデータベースの登録」を参照してください。

データベースのディレクトリ・パスワードを変更する手順:

Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。

  1. データベースを選択し、「次へ」をクリックします。

  2. 「データベース・パスワードの再生成」を選択します。

  3. OracleDBCreatorsグループのユーザーのディレクトリ資格証明と、データベース・ウォレットのパスワードを入力します。「OK」をクリックします。

  4. パスワードの再生成のみを行う場合は、「終了」をクリックします。他のデータベース機能を構成する場合は、「次へ」をクリックします。

ディレクトリからデータベースを登録解除する手順:

このツールを起動するには、「Database Configuration Assistantの起動」を参照してください。

  1. Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。

  2. データベースを選択し、「次へ」をクリックします。

  3. データベースを登録解除するには、「登録解除」オプションを選択します。

  4. 適切な権限を持つユーザーのディレクトリ資格証明を入力します。

  5. データベース・ウォレットのパスワードを入力します。

ディレクトリからデータベースを登録解除すると、Database Configuration Assistantによって次の構成タスクが実行されます。

  • ディレクトリからデータベース・エントリおよびサブツリーが削除されます。

  • LDAP_DIRECTORY_ACCESSパラメータがNONEに設定されます。

  • エンタープライズ・ドメインからデータベースが削除されます(ユーザーに十分な権限がある場合)。


    注意:

    ユーザー権限によっては、Database Configuration Assistantがディレクトリ内のドメインからデータベースを削除できない場合があります。削除できない場合は、Oracle Enterprise Manager Database ControlまたはGrid Controlを使用してエンタープライズ・ドメインから削除します。

  • データベース・ウォレットは削除されません。


    関連項目:

    ウォレットの削除方法の詳細は、『Oracle Database Advanced Security管理者ガイド』のOracle Wallet Managerユーザー・インタフェースのナビゲートおよびWallet Managerの管理に関する項を参照してください。


注意:

Database Configuration Assistantを使用してOracle Internet DirectoryからOracle Databaseを登録解除するには、次のいずれかのメンバーであることが必要です。
  • Oracle Context Adminグループ

  • Database Adminグループ(登録解除しているデータベース)とDatabase Security Adminグループの両方

  • Database Adminグループ(登録解除しているデータベース)とDomain Adminグループ(データベースを含むエンタープライズ・ドメイン)の両方


4.3.1 データベース・ウォレットとパスワードについて

データベースとディレクトリ間の接続の保護にSecure Sockets Layer (SSL)を使用していない場合でも、データベースにはウォレットが必要です。SSLが使用されている場合は、このウォレットを使用してデータベースのデジタルPKI証明書を格納する必要があります。

Database Configuration Assistantを使用してデータベースをディレクトリに登録する際に入力するウォレット・パスワードは、ウォレット自体に対するパスワードです。このパスワードは、データベースのディレクトリ・ログイン資格証明ではありません。

このウォレット・パスワードは、後でOracle Wallet Managerを使用して変更できます。ただし、このウォレット・パスワードを忘れた場合は、ウォレットとパスワードをまったく新たに生成する必要があります。生成するには、最初に既存のデータベース・ウォレットを削除し、新しいウォレット(空のウォレットも可)を作成して、デフォルトのウォレット・ロケーションである$ORACLE_HOME/admin/Oracle_SID/wallet(UNIX環境の場合)に配置します。次に、データベースをディレクトリから登録解除し、そのデータベースをディレクトリに再登録します。この登録時に、別のデータベース・ウォレットとパスワードが生成されます。


関連項目:

Oracle Wallet Managerを使用して、ウォレットのパスワードを変更する方法および公開鍵インフラストラクチャ(PKI)資格証明を管理する方法は、『Oracle Database Advanced Security管理者ガイド』のOracle Wallet Managerの使用に関する項を参照してください。

エンタープライズ・ユーザー・セキュリティで使用するディレクトリを準備した後は、エンタープライズ・ユーザー・セキュリティのデータベース・オブジェクトとディレクトリ・オブジェクトを作成できます。詳細は、「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」を参照してください。


関連項目:

  • ディレクトリにアイデンティティ管理レルムを構成する方法は、『Oracle Internet Directory管理者ガイド』を参照してください。

  • LDAP_DIRECTORY_ACCESS初期化パラメータの値を変更する方法は、『Oracle Databaseリファレンス』を参照してください。


4.3.1.1 複数データベース間でのウォレットとsqlnet.oraファイルの共有

ウォレットにはデータベースの識別情報が含まれているため、複数のデータベース(レプリカを除く)でウォレットを共有することはできません。したがって、sqlnet.oraファイルにウォレット・ロケーションが含まれている場合、そのsqlnet.oraファイルは複数のデータベースで共有できません。

1つのsqlnet.oraファイルを複数のデータベース間で共有するには、次の前提条件を満たす必要があります。

  • ユーザー認証でパスワードまたはKerberosを使用する必要があります。

  • パスワードを含むウォレットは、Database Configuration Assistantによって作成されるデフォルトのウォレット・ロケーションに存在する必要があります。

前述の条件を満たした場合、sqlnet.oraファイルにウォレット・ロケーション情報が含まれていないため、複数のデータベースでファイルを共有することができます。

ただし、SSL認証がユーザー(クライアント)とデータベースの間で使用される場合は、sqlnet.oraファイルにウォレット・ロケーションを指定する必要があります。この場合、sqlnet.oraファイルは、SSL認証エンタープライズ・ユーザー用の複数のデータベースで共有できません。

4.4 データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)

これは、エンタープライズ・ユーザー・セキュリティの実装に必要な構成手順の第2フェーズです。この項で説明する構成手順は、次の推奨設定を前提としています。

エンタープライズ・ユーザー・ログインが機能するためには、データベースはアイデンティティ管理レルム内のエンタープライズ・ドメインに存在している必要があります。


関連項目:

OracleDefaultDomainを使用しない場合、またはユーザーをアイデンティティ管理レルムのUsersサブツリーに格納しない場合は、次のドキュメントを参照してください。

  • 新しいアイデンティティ管理レルムの作成方法または既存のアイデンティティ管理レルムの変更方法、およびディレクトリ・オブジェクトに対するアクセス制御リストの設定方法は、『Oracle Internet Directory管理者ガイド』を参照してください。

  • データベースを配置するドメインを別に作成するには、「エンタープライズ・ドメインの作成」を参照してください。続いて、次の構成手順でOracleDefaultDomainを新しいドメイン名で置き換えます。


データベースおよびディレクトリでエンタープライズ・ユーザー・セキュリティ・オブジェクトを構成するには、次のタスクを実行します。

タスク1: データベースでのグローバル・スキーマおよびグローバル・ロールの作成

この手順はOracle Enterprise Managerを使用して実行することもできますが、次の例ではSQL*Plusを直接使用しています。

  1. エンタープライズ・ユーザーに対して共有スキーマを作成します。次の構文例では、guestという共有スキーマを作成します。

    SQL> CREATE USER guest IDENTIFIED GLOBALLY AS '';
    

    共有スキーマを使用しない場合は、一重引用符の間にユーザーDNを指定して排他スキーマを作成します。

  2. 手順1で作成した共有スキーマにCREATE SESSION権限を付与して、ユーザーがこの共有スキーマに接続できるようにします。次の構文例では、guest共有スキーマにCREATE SESSION権限を付与します。

    SQL> GRANT CREATE SESSION TO guest;
    

    あるいは、CREATE SESSION権限をグローバル・ロールに付与できます。このグローバル・ロールは、エンタープライズ・ロールを通じて特定のユーザーに付与します。手順3を参照してください。

  3. 関連する権限を保持するグローバル・ロールをデータベースに対して作成します。次の構文例では、emproleおよびcustroleグローバル・ロールを作成します。

    SQL> CREATE ROLE emprole IDENTIFIED GLOBALLY;
    SQL> CREATE ROLE custrole IDENTIFIED GLOBALLY;
    

    グローバル・ロールは、後で作成するエンタープライズ・ロールに関連付けてから、エンタープライズ・ユーザーに割り当てます。

  4. 手順3で作成した新しいグローバル・ロールに権限を付与します。次の構文例では、SELECT権限をproducts表のemproleおよびcustroleグローバル・ロールに付与します。

    SQL> GRANT select ON products TO custrole, emprole;
    

    関連項目:

    この手順で使用する構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

タスク2: エンタープライズ・ドメインのユーザー・スキーマ・マッピングの構成

Enterprise Managerを使用し、次の手順に従ってOracleDefaultDomainのユーザー・スキーマ・マッピングを構成します。

  1. Enterprise Managerにログインします。

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

    「Oracle Internet Directoryログイン」ページが表示されます。

  3. 「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。

    「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。

  4. 「エンタープライズ・ドメインの管理」をクリックします。

    「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。

  5. 「OracleDefaultDomain」を選択します。「構成」をクリックします。

    「ドメインの構成」ページが表示されます。

  6. 「ユーザー・スキーマ・マッピング」タブをクリックします。ドメイン・レベルで作成されたユーザー・スキーマ・マップがすべて表示されます。データベース・レベルで作成されたユーザー・スキーマ・マップは、ここには表示されません。

  7. 「作成」をクリックして、ドメインに新しいユーザー・スキーマ・マッピングを作成します。

    「マッピングの作成」ページが表示されます。

  8. 「自」セクションで、「ユーザー」を選択して個々のエンタープライズ・ユーザーをデータベース・スキーマにマップします。あるいは、「サブツリー」を選択して複数のユーザーが含まれるディレクトリ・サブツリーをマップします。「検索」アイコンを使用して該当するユーザーまたはサブツリーを検索できます。

  9. 「至」セクションで、ユーザーまたはサブツリーのマップ先となるスキーマの名前を入力します。これは、タスク1で作成したスキーマです。

  10. 「マッピングの作成」ページで「続行」をクリックします。

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


注意:

ユーザー・スキーマ・マッピングは、エンタープライズ・ドメイン内の個々のデータベースに対して作成することもできます。このようなマッピングは、その特定のデータベースに対してのみ適用され、ドメイン内の他のデータベースには適用されません。


関連項目:

ユーザー・スキーマ・マッピングの作成に関する例は、「共有スキーマへのエンタープライズ・ユーザーのマップ」を参照してください。

タスク3: エンタープライズ・ドメインでのエンタープライズ・ロールの作成

Enterprise Managerを使用し、次の手順に従ってOracleDefaultDomainにエンタープライズ・ロールを作成します。

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

    「ドメインの構成」ページが表示されます。

  2. 「エンタープライズ・ロール」タブをクリックします。

  3. 「作成」をクリックして新しいエンタープライズ・ロールを作成します。

    「エンタープライズ・ロールの作成」ページが表示されます。

  4. 「名前」フィールドに、エンタープライズ・ロールの名前を入力します。「続行」をクリックします。

    「ドメインの構成」ページに新しいロールが表示されます。


関連項目:

エンタープライズ・ロールの作成および使用に関する例は、「エンタープライズ・ロールの使用」を参照してください。

タスク4: エンタープライズ・ロールへのグローバル・データベース・ロールの追加

Enterprise Managerを使用し、次の手順に従って、タスク1で作成したグローバル・データベース・ロールをタスク3で作成したエンタープライズ・ロールに追加します。

  1. 「ドメインの構成」ページで作成したエンタープライズ・ロールを選択します。「編集」をクリックします。

    「エンタープライズ・ロールの編集」ページが表示されます。

  2. 「DBグローバル・ロール」タブが選択されていることを確認します。「追加」をクリックし、エンタープライズ・ドメインに属するデータベースからグローバル・ロールを追加します。

    「検索と選択: データベース・グローバル・ロール」ページが表示されます。

  3. 追加するグローバル・ロールを含むデータベースを選択します。ユーザー名およびパスワードを指定して、選択したデータベースにログインします。「ジャンプ」をクリックします。

  4. 追加するグローバル・ロールを選択します。「選択」をクリックします。

    「エンタープライズ・ロールの編集」ページに選択したロールが表示されます。


関連項目:

エンタープライズ・ロールの作成および使用に関する例は、「エンタープライズ・ロールの使用」を参照してください。

タスク5: データベース・アクセスのためのエンタープライズ・ユーザーへのエンタープライズ・ロールの付与

Enterprise Managerを使用し、次の手順に従って、タスク3で作成したエンタープライズ・ロールをエンタープライズ・ユーザーに付与します。

  1. 「エンタープライズ・ロールの編集」ページで「権限受領者」タブをクリックします。

  2. 「追加」をクリックします。

    「選択: ユーザーまたはグループ」ページが表示されます。

  3. 検索ベースを選択するか、ユーザーまたはグループが含まれるサブツリーを選択します。エンタープライズ・ロールをユーザーに付与する場合は、「表示」で「USER」を選択します。ロールをグループに付与する場合は、「表示」で「グループ」を選択します。必要に応じて、「名前」フィールドにユーザーまたはグループの共通名を入力します。「ジャンプ」をクリックします。

  4. エンタープライズ・ロールを付与するユーザーまたはグループを選択します。「選択」をクリックします。

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

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


関連項目:

エンタープライズ・ロールの作成および使用に関する例は、「エンタープライズ・ロールの使用」を参照してください。

4.5 必要な認証方式を使用するためのエンタープライズ・ユーザー・セキュリティの構成(フェーズ3)

第3フェーズでは、選択した認証方式に基づいて、エンタープライズ・ユーザー・セキュリティの構成を完了します。次の項のいずれかに進みます。

4.5.1 パスワード認証を使用するエンタープライズ・ユーザー・セキュリティの構成

デフォルトでは、新しいエンタープライズ・ドメインは、サポートされているすべてのユーザー認証タイプ(パスワード、KerberosおよびSSL)を受け入れるように構成されます。エンタープライズ・ユーザーがパスワードによって認証されるようにする場合は、次のタスクの説明に従ってエンタープライズ・ドメインを構成する必要があります。

この項で説明する構成手順は、次の設定を前提としています。

パスワード認証を使用するエンタープライズ・ユーザー・セキュリティを構成するには、次のタスクを実行します。

タスク1: (オプション)エンタープライズ・ドメインでパスワード認証を受入れ可能にする

デフォルトでは、OracleDefaultDomainはパスワード認証を受け入れるように構成されます。この構成を変更している場合は、Oracle Enterprise Manager Database ControlまたはGrid Controlを使用し、次の手順に従ってOracleDefaultDomainのパスワード認証を有効にします。

  1. Enterprise Managerにログインします。

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

    「Oracle Internet Directoryログイン」ページが表示されます。

  3. 「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。

    「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。

  4. 「エンタープライズ・ドメインの管理」をクリックします。

    「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。

  5. 「OracleDefaultDomain」を選択します。「構成」をクリックします。

    「ドメインの構成」ページが表示されます。

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

  7. 「許容されたユーザー認証タイプ」で、「パスワード」を選択します。

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

タスク2: パスワード認証エンタープライズ・ユーザーとしての接続

ディレクトリ・ログイン名がhscortea、パスワードがEasy2remのエンタープライズ・ユーザーの場合は、次のSQL*Plusコマンドを使用してデータベースに接続します。

SQL> connect hscortea@<Oracle Net Service Name>
Enter password:
/* Enter Easy2rem when prompted for the password*/

データベースでは、エンタープライズ・ユーザー(hscortea)を認証するために、このユーザーに関連付けられているディレクトリ・エントリと照合してユーザー名/パスワードの組合せを検証します。次に、適切なスキーマを特定し、ユーザーのグローバル・ロールを取得します。検証に成功すると、データベースへの接続が確立されます。

接続が成功した場合は、Connected to:...というメッセージが表示されます。このメッセージは、接続と設定が正常に行われたことを示す確認メッセージです。エラー・メッセージが表示された場合は、「パスワード認証エンタープライズ・ユーザーに関するORA-#エラー」を参照してください。

正常に接続された場合は、SQL*Plusプロンプトに次のように入力して、ディレクトリから適切なグローバル・ロールが取得されたことを確認します。

select * from session_roles

グローバル・ロールがディレクトリから取得されなかった場合は、「グローバル・ロールがない場合のチェックリスト」を参照してください。

これで、パスワード認証を使用するエンタープライズ・ユーザー・セキュリティの構成が完了しました。


関連項目:


4.5.2 Kerberos認証を使用するエンタープライズ・ユーザー・セキュリティの構成

この項で説明する構成手順は、次の設定を前提としています。

Kerberos認証を使用するエンタープライズ・ユーザー・セキュリティを構成するには、次のタスクを実行します。

タスク1: Kerberosプリンシパル名属性を表示するためのOracle Internet Directoryセルフ・サービス・コンソールの構成

デフォルトでは、Oracle Internet Directoryセルフ・サービス・コンソールのユーザー・インタフェースには、Kerberosプリンシパル名を構成できるフィールドは表示されません。ディレクトリにKerberos認証ユーザーを初めて作成する場合は、次の手順に従って、「ユーザーの作成」ページにkrbPrincipalName属性が表示されるようにこのツールを構成する必要があります。

  1. Oracle Internet Directoryセルフ・サービス・コンソールにログインします。

    ブラウザ・ウィンドウにOracle Internet Directoryセルフ・サービス・コンソールにアクセスするためのURLを入力します。次に例を示します。

    http://myhost1:7777/oiddas
    

    orcladminユーザーとしてログインします。

  2. 「構成」タブをクリックします。「ユーザー・エントリ」サブタブをクリックします。

  3. 「ユーザー属性の構成」ページが表示されるまで、「次へ」をクリックします。

  4. 「ユーザー属性の構成」ページで、「新規属性の追加」をクリックします。

    「新規属性の追加」ページが表示されます。

  5. 「新規属性の追加」ページで、「ディレクトリ属性名」ボックスから「krbPrincipalName」 (またはアイデンティティ管理レルムのorclCommonKrbPrincipalAttributeに対して構成した属性)を選択し、このページで次の手順を実行します。

    1. 「UIラベル」に、「Kerberosプリンシパル名」などの値を入力します。

    2. 「検索可能」および「表示可能」を選択します。

    3. 「UIタイプ」から「単一行テキスト」を選択します。

    4. 「完了」をクリックします。

  6. 「次へ」をクリックして「属性カテゴリの構成」ページに移動します。「基本情報」を選択し、「編集」をクリックします。

    「カテゴリの編集」ページが表示されます。

  7. 「カテゴリの編集」ページで次の手順を実行します。

    1. 左側のカテゴリ・リストで「krbPrincipalName」を選択します。

    2. 「移動」をクリックし、krbPrincipalNameを右側のリストに移動します。

    3. 「完了」をクリックします。

  8. 最後のステップに到達するまで「次へ」をクリックします。「終了」をクリックして作業内容を保存します。

タスク2: (オプション)アイデンティティ管理レルムのKerberosプリンシパル名ディレクトリ属性の構成

Oracle Internet Directoryセルフ・サービス・コンソールを使用して、ディレクトリで使用するアイデンティティ管理レルムのKerberosプリンシパル名の格納に使用するディレクトリ属性を入力します。デフォルトでは、Kerberosプリンシパル名はkrbPrincipalName属性に格納されますが、アイデンティティ管理レルムのorclCommonKrbPrincipalAttributeを変更することにより、ディレクトリ構成に応じて変更できます。このタスクの詳細は、「アイデンティティ管理レルムのログイン名、Kerberosプリンシパル名、ユーザー検索ベースおよびグループ検索ベースの各属性の設定」を参照してください。


注意:

デフォルトでは、Oracle Internet Directoryセルフ・サービス・コンソールのユーザー・インタフェースには、Kerberosプリンシパル名を構成できるフィールドは表示されません。ディレクトリにKerberos認証ユーザーを初めて作成する場合は、「ユーザーの作成」ウィンドウにkrbPrincipalName属性が表示されるようにコンソールを構成する必要があります。

タスク3: krbPrincipalName属性でのエンタープライズ・ユーザーのKerberosプリンシパル名の指定

Oracle Internet Directoryセルフ・サービス・コンソールを使用して、エンタープライズ・ユーザーのディレクトリ・エントリのkrbPrincipalName属性にエンタープライズ・ユーザーのKerberosプリンシパル名(Kerberos_username@Kerberos_realm)を指定します。このタスクの詳細は、「新規エンタープライズ・ユーザーの作成」を参照してください。

タスク4: (オプション)エンタープライズ・ドメインでKerberos認証を受入れ可能にする

デフォルトでは、OracleDefaultDomainはすべての認証タイプを受け入れるように構成されます。この構成を変更している場合または別のドメインを使用する場合は、Oracle Enterprise Manager Database ControlまたはGrid Controlを使用し、次の手順に従ってエンタープライズ・ドメインのKerberos認証を有効にします。

  1. Enterprise Managerにログインします。

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

    「Oracle Internet Directoryログイン」ページが表示されます。

  3. 「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。

    「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。

  4. 「エンタープライズ・ドメインの管理」をクリックします。

    「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。

  5. 「OracleDefaultDomain」を選択します。「構成」をクリックします。

    「ドメインの構成」ページが表示されます。

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

  7. 「許容されたユーザー認証タイプ」で、「Kerberos」を選択します。

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

タスク5: Kerberos認証エンタープライズ・ユーザーとしての接続

MITのKerberos V5などのKDCがオペレーティング・システムに組み込まれていない場合、ユーザーはokinitユーティリティを使用してFORWARDABLEフラグが設定されている初期チケットを取得する必要があります。『Oracle Database Advanced Security管理者ガイド』のokinitユーティリティを使用した初期チケットの取得に関する項を参照してください。

Windows 2000やLinuxまたはUNIXの一部のバージョンのように、KDCがオペレーティング・システムに組み込まれている場合は、ユーザーがログインすると、オペレーティング・システムによって(FORWARDABLEフラグが設定された)そのユーザーのチケットがキャッシュから自動的に取得されます。

ユーザーは、SQL*Plusを起動し、コマンドラインに次のコマンドを入力してデータベースに接続します。

SQL> connect /@<net_service_name>

データベースは、Kerberosを使用してユーザーを認証します。また、パスワードによってデータベース自体をディレクトリに対して認証します。

接続が成功した場合は、Connected to:...というメッセージが表示されます。このメッセージは、接続と設定が正常に行われたことを示す確認メッセージです。エラー・メッセージが表示された場合は、「Kerberos認証エンタープライズ・ユーザーに関するORA-#エラー」を参照してください。

正常に接続された場合は、SQL*Plusプロンプトに次のように入力して、ディレクトリから適切なグローバル・ロールが取得されたことを確認します。

select * from session_roles

グローバル・ロールがディレクトリから取得されなかった場合は、「グローバル・ロールがない場合のチェックリスト」を参照してください。

これで、Kerberos認証を使用するエンタープライズ・ユーザー・セキュリティの構成が完了しました。


関連項目:


4.5.3 SSL認証を使用するエンタープライズ・ユーザー・セキュリティの構成

この項で説明する構成手順は、次の設定を前提としています。

  • 適切なPKI資格証明を取得し、エンタープライズ・ユーザー・セキュリティ実装に含めるディレクトリ、データベースおよびクライアントのウォレットの作成を、Oracle Wallet Managerを使用して終わらせている。

  • Oracle Internet Directoryの各エンタープライズ・ユーザー・エントリが一意のPKI資格証明でプロビジョニングされていることを確認済である。ただし、このリリースでは、エンタープライズ・ユーザーのPKI証明書とOracle Internet Directoryエントリに異なるDNを指定できます。また、このリリースでは、データベース・エントリ自体のPKI証明書とOracle Internet Directoryエントリに異なるDNを指定できます。

    証明書とディレクトリで異なるDNを使用できるようにするには、それぞれのOracle Internet Directoryユーザー・エントリにユーザー証明書をプロビジョニングする必要があります。ユーザー証明書は、ユーザー・エントリのusercertificate属性にプロビジョニングされます。証明書をプロビジョニングしない場合は、証明書の対象DNがディレクトリのユーザーDNと一致していることを確認する必要があります。

    Oracle Internet Directory 10gリリース2 (10.1.2)には証明書一致ルールがあり、証明書とディレクトリで異なるDNを使用できるようにする新機能をサポートしています。Oracle Internet Directoryのorclpkimatchingrule属性によって、使用する一致タイプが決定します。

    orclpkimatchingruleのデフォルト値は2です。この値により、プロビジョニングされたユーザー・エントリとプロビジョニングされていないユーザー・エントリの両方をサポートできます。データベースでは、ディレクトリにプロビジョニングされたユーザーの証明書を検索し、それに基づいてユーザーのOracle Internet Directory DNを検出します。証明書の検索に失敗すると、ユーザーの証明書DNとOracle Internet Directory DNで完全一致を使用する動作に戻ります。

    すべてのユーザーの証明書がOracle Internet Directoryにプロビジョニングされている場合は、orclpkimatchingruleを1に設定できます。この値により、Oracle Internet Directoryは常に証明書検索を実行します。たとえば、認証局が証明書DNで2つの共通名をサポートしていない場合にディレクトリDNで2つの共通名を使用していると、すべてのユーザー証明書をディレクトリにプロビジョニングする必要があります。その後で、orclpkimatchingruleを1に設定できます。

    PKI証明書とOracle Internet Directoryで異なるDNを使用する機能をサポートしない場合は、orclpkimatchingruleの値を0に設定できます。この設定は、すべての証明書DNがディレクトリDNと一致し、証明書をプロビジョニングしない場合に使用します。

    独自のマッピング・ルールを作成して、証明書DNをOracle Internet Directory 10gリリース2 (10.1.2.0.2)のディレクトリDNにマップすることも可能です。マッピング・ルールを使用するには、orclpkimatchingruleを3または4に設定します。

    すべてのユーザーに対してマッピング・ルールを使用する場合は、orclpkimatchingruleを3に設定します。証明書ベースの検索および完全一致もサポートする必要がある場合は、orclpkimatchingruleを4に設定します。

    表4-2では、orclpkimatchingrule属性の各値について説明します。

    表4-2 Oracle Internet Directoryの一致ルール

    ルール

    orclpkimatchingrule=0

    完全一致。クライアント証明書の対象DNに基づいてバインドが実行されます。このDNは、ディレクトリ内のユーザーのDNと比較されます。

    orclpkimatchingrule=1

    証明書ハッシュ。証明書のハッシュされた値に基づいてバインドが実行されます。

    orclpkimatchingrule=2

    (デフォルト)

    証明書ハッシュ/完全一致。証明書のハッシュされた値に基づいてバインドが実行されます。この操作に失敗すると、クライアント証明書の対象DNに基づいてバインドが実行されます。

    orclpkimatchingrule=3

    マッピング・ルールのみ。

    orclpkimatchingrule=4

    マッピング・ルール/証明書ハッシュ/完全一致。マッピング・ルールに基づいてバインドが実行されます。この操作に失敗すると、証明書のハッシュされた値に基づいてバインドが実行されます。さらに、この操作に失敗すると、証明書の完全一致に基づいてバインドが実行されます。



    関連項目:

    orclpkimatchingrule属性の変更方法は、『Oracle Internet Directory管理者ガイド』およびOracle Identity Managementのユーザー・リファレンス・ガイドを参照してください。


    注意:

    検索対象の証明書を持つユーザー・エントリがレルムのユーザー検索ベースに存在しない場合、または証明書の検索機能をサポートしていない古いバージョンのOracle Internet Directoryを使用している場合は、証明書の検索が失敗します。証明書の検索が失敗すると、データベースは、正常な接続を確立するために、ユーザーDNを証明書DNと照合する従来の動作に戻ります。

  • 『Oracle Database Advanced Security管理者ガイド』のSSLの有効化に関する項の説明に従って、クライアント・データベースのOracle Net接続に対するSSLの有効化が終わっている。SSLを有効にしたときに、次の手順を実行していることを確認してください。

    • TCPSのデータベース・リスナーに対してSSLを有効にし、対応するTNS名を指定した。

    • データベースの登録時にDatabase Configuration Assistantによって自動的に作成されたデータベース・ウォレットに、データベースのPKI資格証明を格納した。

  • 『Oracle Internet Directory管理者ガイド』の説明に従って、Oracle Internet Directoryでの双方向SSL認証インスタンスの構成を終えている。

  • 「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、ディレクトリの準備を終えている。

  • 「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」で説明されているタスクを完了し、データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成を終えている。

SSL認証を使用するエンタープライズ・ユーザー・セキュリティを構成するには、次のタスクを実行します。

タスク1: エンタープライズ・ドメインでSSL認証を受入れ可能にする

デフォルトでは、OracleDefaultDomainはすべての認証タイプを受け入れるように構成されます。この構成を変更している場合または別のドメインを使用する場合は、Oracle Enterprise Manager Database ControlまたはGrid Controlを使用し、次の手順に従ってエンタープライズ・ドメインのSSL認証を有効にします。

  1. Enterprise Managerにログインします。

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

    「Oracle Internet Directoryログイン」ページが表示されます。

  3. 「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。

    「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。

  4. 「エンタープライズ・ドメインの管理」をクリックします。

    「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。

  5. 「OracleDefaultDomain」を選択します。「構成」をクリックします。

    「ドメインの構成」ページが表示されます。

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

  7. 「許容されたユーザー認証タイプ」で、「SSL」を選択します。

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

タスク2: SSLへのLDAP_DIRECTORY_ACCESS初期化パラメータの設定

この初期化パラメータは、データベース初期化パラメータ・ファイルを編集するか、SET句を指定してALTER SYSTEM SQLコマンドを発行することで変更できます。

たとえば、次のALTER SYSTEMコマンドは、サーバー・パラメータ・ファイルのLDAP_DIRECTORY_ACCESSパラメータ値をSSLに変更します。

ALTER SYSTEM SET LDAP_DIRECTORY_ACCESS=SSL SCOPE=SPFILE

関連項目:

  • 初期化パラメータの編集方法は、『Oracle Database管理者ガイド』を参照してください。

  • LDAP_DIRECTORY_ACCESS初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

  • SET句を指定してALTER SYSTEMコマンドを使用する方法は、『Oracle Database SQL言語リファレンス』を参照してください。


タスク3: SSL認証エンタープライズ・ユーザーとしての接続

SSL認証エンタープライズ・ユーザーとして接続する場合は、適切なOracleウォレット機能が構成されており、クライアントのsqlnet.oraファイルにウォレット・ロケーションが指定されていないことを確認します。クライアントのsqlnet.oraファイルにウォレット・ロケーションが含まれている場合、そのファイルは複数のユーザーおよびデータベースで共有できません。ウォレット・ロケーション・パラメータの値を指定する必要があるのは、サーバーのsqlnet.oraファイルのみです。


関連項目:

ユーザーとデータベース間でSSL認証を使用する場合におけるユーザーのウォレットのデフォルトの場所は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

SSL認証エンタープライズ・ユーザーとして接続するには、次の手順を実行します。

  1. Oracle Wallet Managerを使用して、ディレクトリからユーザー・ウォレットをダウンロードします。『Oracle Database Advanced Security管理者ガイド』のLDAPディレクトリからのウォレットのダウンロードに関する項を参照してください。

  2. Oracle Wallet Managerを使用して、ユーザー・ウォレットの自動ログインを有効にします。自動ログインを有効にすると、シングル・サインオン(.sso)ファイルが生成され、SSLアダプタに対する認証が可能になります。Oracle Wallet Managerの自動ログイン機能の使用方法は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

  3. クライアントOracleホームがサーバーOracleホームを指している場合は、そのクライアントに対してTNS_ADMIN環境変数を(クライアントのsqlnet.oraファイルを指すように)設定します。(サーバーのsqlnet.oraファイルにはウォレット・ロケーションが設定されている必要があり、クライアントのsqlnet.oraファイルにはウォレット・ロケーションを指定できないため、サーバーとクライアントはこのファイルを共有できません。)

    別のクライアントOracleホームがある場合は、TNS_ADMIN環境変数を設定する必要はありません。

  4. SQL*Plusを起動し、コマンドラインに次のコマンドを入力します。

    SQL> /@connect_identifier
    

    connect_identiferは、データベース・クライアントに対してSSLを構成したときに設定したOracle Netのサービス名です。

    接続が成功した場合は、Connected to:...というメッセージが表示されます。このメッセージは、接続と設定が正常に行われたことを示す確認メッセージです。エラー・メッセージが表示された場合は、「SSL認証エンタープライズ・ユーザーに関するORA-#エラー」を参照してください。

    正常に接続された場合は、SQL*Plusプロンプトに次のように入力して、ディレクトリから適切なグローバル・ロールが取得されたことを確認します。

    select * from session_roles
    

    グローバル・ロールがディレクトリから取得されなかった場合は、「グローバル・ロールがない場合のチェックリスト」を参照してください。

これで、SSL認証を使用するエンタープライズ・ユーザー・セキュリティの構成が完了しました。


注意:

セキュリティ上の目的で、データベースとのエンタープライズ・ユーザー・セッションからログアウトした後は、ユーザー・ウォレットの自動ログインを無効にしてください。これは、クライアント・コンピュータを複数のユーザーで共有している場合に特に重要です。Oracle Wallet Managerを使用してOracleウォレットの自動ログインを無効にする方法は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

4.5.3.1 ウォレットおよびディレクトリ内のデータベースDNの表示

Database Configuration Assistantを使用してディレクトリにデータベースを登録すると、データベース・ウォレットとデータベース・ディレクトリ・エントリに対して同一のDNが自動的に作成されます。データベースDNを表示するには、次のオプションのいずれかを使用します。

Oracle Directory Managerを使用して、レルムOracleコンテキストの下にあるディレクトリ内で次を検索します。

cn=<short_database_name>,cn=OracleContext,<realm_DN>

short_database_nameは、データベースの完全修飾ドメイン名の最初の部分です。たとえば、db1.us.example.comというデータベースがある場合、データベースの短縮名はdb1です。

4.6 現行ユーザーのデータベース・リンクの有効化

現行ユーザーのデータベース・リンクには、データベース間にSSL対応のネットワーク接続が必要です。現行ユーザーのデータベース・リンクを有効にする前に、関係するすべてのデータベースについて、SSLを有効にし、Oracleウォレットを作成してPKI資格証明を取得する必要があります。

次に、Oracle Enterprise Manager Database ControlまたはGrid Controlを使用し、次の手順に従ってディレクトリのエンタープライズ・ドメイン内のデータベース間で現行ユーザーのデータベース・リンクを有効にします。

  1. Enterprise Managerにログインします。

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

    「Oracle Internet Directoryログイン」ページが表示されます。

  3. 「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。

    「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。

  4. 「エンタープライズ・ドメインの管理」をクリックします。

    「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。

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

    「ドメインの構成」ページが表示されます。

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

  7. 「このドメインの現行ユーザーのデータベース・リンクを有効化します。」を選択します。

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

4.7 エンタープライズ・ユーザー・セキュリティのトラブルシューティング

この項では、発生する可能性のある問題とその対処方法を説明します。項目は次のとおりです。

4.7.1 パスワード認証エンタープライズ・ユーザーに関するORA-#エラー

パスワード認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-#エラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。

ORA-1017: 無効なユーザー名/パスワードです。ログインが拒否されました
原因: エラー・メッセージを参照してください。
ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。
原因: データベースとディレクトリ間の接続に問題があることを示しています。
処置: 次の点を確認します。
  1. デフォルトのウォレット・ロケーションを使用していない場合は、データベースのsqlnet.oraファイルに正しいwallet_location値が指定されていることを確認します。ウォレット・ロケーションは、Oracle Net Managerを使用して入力できます。デフォルトのウォレット・ロケーションを使用している場合は、sqlnet.oraファイルにウォレット・ロケーションを指定する必要はありません。sqlnet.oraファイルにウォレット・ロケーションが指定されている場合は、その値が正しいことを確認する必要があります。

  2. Oracle Internet Directoryのドメイン・ネーム・システム(DNS)サーバー検出を使用していない場合は、$LDAP_ADMIN$ORACLE_HOME/ldap/admin$TNS_ADMINまたは$ORACLE_HOME/network/adminに正しいldap.oraファイルがあることを確認します。(DNSサーバー検出の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。)

  3. (DNS検出またはldap.oraファイルで)使用されているSSLポートが、認証なしのSSLをサポートしていることを確認します。

  4. データベース初期化パラメータ・ファイルのLDAP_DIRECTORY_ACCESSパラメータがPASSWORDに設定されていることを確認します。

  5. Database Configuration Assistantを使用して、Oracle Internet Directoryに対するデータベースの認証に使用するデータベース・パスワードを再設定します。これにより、データベース・パスワードはデータベース・ウォレットでローカルに、またOracle Internet Directoryのデータベース・エントリでリモートに再設定されます。

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

  7. データベース・ウォレットに格納されているパスワードを使用して、データベースをOracle Internet Directoryにバインドできることを確認します。

    • mkstoreコマンドライン・ユーティリティを次の構文で使用し、ウォレットからデータベース・パスワードを取得します。

      mkstore -wrl <database wallet location> -viewEntry ORACLE.SECURITY.PASSWORD
      
    • 次のldapbindmkstoreから戻されたパスワードを使用します。

      ldapbind -h <directory host> -p <non-SSL directory port> -D "<database DN>" -q
      Please enter bind password: Password returned by mkstore
      
  8. データベースが1つのエンタープライズ・ドメインにのみ属していることを確認します。


    注意:

    mkstoreユーティリティは、トラブルシューティングの目的にのみ使用します。このツールの名前および機能は、将来変更される可能性があります。

ORA-28043: DB-OID接続のバインド資格証明が無効です
原因: データベースのディレクトリ・パスワードがディレクトリと同期していません。
処置: Database Configuration Assistantのパスワードの再生成ボタンを使用して、データベースの新規ディレクトリ・パスワードを生成し、ディレクトリと同期させてデータベース・ウォレットに格納します。
ORA-28271: LDAPディレクトリ・サービスのユーザー・エントリを読み込む権限がありません。
原因: エラー・メッセージを参照してください。
処置: 次の点を確認します。
  1. Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているレルムのユーザー検索ベース属性にリストされていることを確認します。

  2. Oracle Internet Directoryでユーザー検索ベースに対するACLをチェックして、verifierServicesグループにユーザー・エントリの読取り権限があり、ディレクトリ・ツリーのユーザー検索ベース・エントリとユーザー・エントリ間でこの権限がACLによって無効になっていないことを確認します。

  3. エンタープライズ・ドメインが、該当するレルムOracleコンテキストのパスワードでアクセス可能なドメイン・グループに含まれていることを確認します。

ORA-28272: ドメイン・ポリシーがパスワード・ベースのGLOBALユーザー認証を制限します。
原因: エラー・メッセージを参照してください。
処置: Oracle Enterprise Managerのインタフェースを使用して、このエンタープライズ・ドメインのユーザー認証ポリシーを「パスワード」または「ALL」に設定します。
ORA-28273: LDAP識別名へのユーザー・ニックネームのマッピングが存在しません。
原因: エラー・メッセージを参照してください。
処置: 次の点を確認します。
  1. ユーザーのユーザー・エントリがOracle Internet Directoryに存在することを確認します。

  2. Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているアイデンティティ管理レルムにリストされていることを確認します。

  3. ユーザー・エントリに正しいログイン名が含まれていることを確認します。

    • Oracle Internet Directoryセルフ・サービス・コンソールを使用して、レルムのディレクトリに対して構成されているログイン名属性を見つけます。

    • ユーザー・データベース・ログインの試行中に指定された名前が、ユーザー・ディレクトリ・エントリのその属性の値であることを確認します。

  4. データベースにグローバル・ユーザーの排他スキーマがある場合は、データベースのDNがOracle Internet Directoryのユーザー・エントリのDNと一致することを確認します。

ORA-28274: ユーザー・ニックネームに対応するORACLEパスワード属性が存在しません。
原因: エラー・メッセージを参照してください。
処置: 次の点を確認します。
  1. ディレクトリ内のユーザー・エントリにorcluserオブジェクト・クラスがあることを確認します。このクラスがない場合は、次の手順を実行します。

    • Oracle Internet Directoryセルフ・サービス・コンソールを使用して、新規ユーザー作成用のデフォルト・オブジェクト・クラスにorcluserが含まれていることを確認してから、次のいずれかを実行します。

    • Oracle Internet Directoryセルフ・サービス・コンソールを使用して、ユーザーを再作成します。

    • orcluserおよびorcluserV2オブジェクト・クラスを追加します。

  2. ユーザー・エントリにorclpassword属性の値があることを確認します。値がない場合は、ユーザーのディレクトリ・パスワード(userpassword属性)を再設定します。これにより、Oracle Internet Directoryはユーザーのデータベース・パスワード検証を再生成します。

  3. Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているレルムのユーザー検索ベース属性にリストされていることを確認します。

  4. ユーザー検索ベース属性に対するACLで、verifierServicesグループによるorclpassword属性への読取りおよび検索アクセスが許可されていることを確認します。これは、デフォルトで正しく設定されますが、変更されている場合があります。

ORA-28275: LDAP識別名へのユーザー・ニックネームのマッピングが複数存在します。
原因: ユーザー検索ベース内のディレクトリに、ユーザーのログイン名がデータベース接続時に指定されたログイン名と一致する複数のユーザーDNがあります。
処置: Oracle Internet Directoryセルフ・サービス・コンソールを使用して、レルムOracleコンテキストと関連付けられているすべてのユーザー検索ベース内でログイン名値を一意にします(2つのユーザーが同じログイン名を共有しないようにします)。
ORA-28277: グローバル・ユーザーのパスワードでの認証中に、LDAP検索が失敗しました。
原因: エラー・メッセージを参照してください。
処置: 関連するディレクトリ・インスタンスが起動および稼働していることを確認します。
ORA-28278: パスワード・ベースのGLOBALユーザーのためのドメイン・ポリシーが登録されていません。
原因: データベースが、必要なエンタープライズ・ドメイン情報を読み取ることができません。
ORA-28862: SSL接続に失敗しました。
原因: エラー・メッセージを参照してください。
処置: SSL以外の接続文字列を使用していることを確認します。

4.7.2 Kerberos認証エンタープライズ・ユーザーに関するORA-#エラー

Kerberos認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-#エラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。

ORA-1017: 無効なユーザー名/パスワードです。ログインが拒否されました
原因: エラー・メッセージを参照してください。
ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。
原因: データベースとディレクトリ間の接続に問題があることを示しています。
処置: パスワード認証エンタープライズ・ユーザーのトラブルシューティングの項の「ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。」を解決するための処置を参照してください。
ORA-28271: LDAPディレクトリ・サービスのユーザー・エントリを読み込む権限がありません。
原因: エラー・メッセージを参照してください。
処置: パスワード認証エンタープライズ・ユーザーのトラブルシューティングの項の「ORA-28271: LDAPディレクトリ・サービスのユーザー・エントリを読み込む権限がありません。」を解決するための処置を参照してください。
ORA-28292: Kerberosベースの認証のためのドメイン・ポリシーが登録されていません
原因: エラー・メッセージを参照してください。
処置: 次の操作を実行します。
  1. Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、このエンタープライズ・ドメインのユーザー認証ポリシーを「Kerberos」または「すべて」に設定します。

  2. 「ドメイン読取りエラーのチェックリスト」を参照してください。

ORA-28290: 同じKerberosプリンシパル名に複数のエントリが見つかりました
原因: このユーザーのKerberosプリンシパル名が、このユーザーを含むユーザー検索ベース内で一意ではありません。
処置: Oracle Internet Directoryセルフ・サービス・コンソールを使用して、Kerberosプリンシパル名を変更するか、そのプリンシパル名が一意になるように他のコピーを変更します。
ORA-28291: Kerberosプリンシパル値が見つかりません。
原因: エラー・メッセージを参照してください。
処置: 次の点を確認します。
  1. ディレクトリ内のユーザー・エントリにkrbprincipalname属性があることを確認します。

    krbprincipalname属性がない場合は、次の点を確認します。

    • Oracle Internet Directoryセルフ・サービス・コンソールを使用して、新規ユーザー作成用のデフォルト属性にkrbprincipalnameが含まれていることを確認してから、次のいずれかを実行します。

    • Oracle Internet Directoryセルフ・サービス・コンソールを使用して、ユーザーを再作成します。

    • orclcommonattributesオブジェクト・クラスを追加します。

  2. ユーザー・エントリにkrbprincipalname属性の値があることを確認します。値がない場合は、Oracle Internet Directoryセルフ・サービス・コンソールを使用して入力します。

  3. Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているレルムOracleコンテキストにリストされていることを確認します。

  4. ユーザー検索ベース属性に対するACLで、verifierServicesグループによるkrbprincipalname属性への読取りおよび検索アクセスが許可されていることを確認します。これは、デフォルトで正しく設定されますが、変更されている場合があります。

ORA-28293: 一致するKerberosプリンシパルが、どのユーザー・エントリにも見つかりません
原因: エラー・メッセージを参照してください。
処置: 次の点を確認します。
  1. ユーザーのユーザー・エントリがOracle Internet Directoryに存在することを確認します。

  2. Oracle Internet Directoryセルフ・サービス・コンソールまたはldapsearchを使用して、このユーザーを含むユーザー検索ベースが、使用しているアイデンティティ管理レルムにリストされていることを確認します。

  3. 次の手順に従って、ディレクトリ内のユーザー・エントリに正しいKerberosプリンシパル名が含まれていることを確認します。

    • Oracle Internet Directoryセルフ・サービス・コンソールを使用して、レルムのディレクトリに対して構成されているKerberosプリンシパル名属性を検索します。

    • 正しいKerberosプリンシパル名がユーザーのディレクトリ・エントリのその属性に表示されることを確認します。

  4. データベースにグローバル・ユーザーの排他スキーマがある場合は、データベースのDNがOracle Internet Directoryのユーザー・エントリのDNと一致することを確認します。

ORA-28300: LDAPディレクトリ・サービスのユーザー・エントリを読み込む権限がありません。
原因: エラー・メッセージを参照してください。
処置: データベース・ウォレットに、データベースとディレクトリ間の接続に使用する正しい資格証明が含まれていることを確認します。ウォレットDNは、Oracle Internet Directory内のデータベースのDNと同じであることが必要です。資格証明を取得するには、次の手順を実行します。
  1. mkstoreコマンドライン・ユーティリティを次の構文で使用し、ウォレットのデータベース・パスワードを取得します。

    mkstore -wrl <database wallet location> -viewEntry ORACLE.SECURITY.PASSWORD -viewEntry ORACLE.SECURITY.DN
    
  2. これらの値が正しくない場合は、Database Configuration Assistantを使用してデータベース・ウォレットを再設定します。

  3. 次のldapbindmkstoreから戻されたDNおよびパスワードを使用します。

    ldapbind -h <directory host> -p <non-SSL directory port> -D "<database DN>" -q
    Please enter bind password: Password returned by mkstore
    

    注意:

    mkstoreユーティリティは、トラブルシューティングの目的にのみ使用します。このツールの名前および機能は、将来変更される可能性があります。

ORA-28302: LDAPディレクトリ・サービスにユーザーが存在しません。
原因: エラー・メッセージを参照してください。
処置: ユーザー・エントリがディレクトリに存在することを確認します。

4.7.3 SSL認証エンタープライズ・ユーザーに関するORA-#エラー

SSL認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-#エラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。

ORA-1017: 無効なユーザー名/パスワードです。ログインが拒否されました
原因: エラー・メッセージを参照してください。
ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。
原因: データベースとディレクトリ間の接続に問題があることを示しています。
処置: 次の点を確認します。
  1. データベースのsqlnet.oraファイルに、正しいwallet_location値があることを確認します。値がない場合は、Oracle Net Managerを使用して入力します。

  2. Oracle Internet Directoryのドメイン・ネーム・システム(DNS)サーバー検出を使用していない場合は、$LDAP_ADMIN$ORACLE_HOME/ldap/admin$TNS_ADMINまたは$ORACLE_HOME/network/adminに正しいldap.oraファイルがあることを確認します。(DNSサーバー検出の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。)

  3. (DNS検出またはldap.oraファイルで)使用されているOracle Internet DirectoryのSSLポートが、双方向SSL認証をサポートしていることを確認します。

  4. データベース初期化パラメータ・ファイルのLDAP_DIRECTORY_ACCESSパラメータがSSLに設定されていることを確認します。

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

  6. mkstoreコマンドライン・ユーティリティを次の構文で使用し、データベース・ウォレットにデータベースDNが含まれていることを確認します。

    mkstore -wrl <database_wallet_location> -viewEntry ORACLE.SECURITY.DN
    

    ウォレットにデータベースDNが含まれていない場合は、Database Configuration Assistantを使用して、データベースをOracle Internet Directoryに再登録します。

  7. 次のldapbindでデータベース・ウォレットを使用して、そのデータベースがOracle Internet Directoryにバインドできることを確認します。

    ldapbind -h <directory_host> -p <directory_SSLport> -U 3 -W "file:<database wallet_location>" -Q
    Please enter SSL wallet password: wallet_password
    
  8. データベースが1つのエンタープライズ・ドメインにのみ属していることを確認します。


    注意:

    mkstoreユーティリティは、トラブルシューティングの目的にのみ使用します。このツールの名前および機能は、将来変更される可能性があります。

ORA-28301: SSL認証のためのドメイン・ポリシーが登録されていません。
原因: エラー・メッセージを参照してください。
処置: Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、このエンタープライズ・ドメインのユーザー認証ポリシーにSSLが含まれるように設定します。
ORA-28862: SSLハンドシェイクに失敗しました
原因: エラー・メッセージを参照してください。
処置: SSL接続の構成方法は、『Oracle Database Advanced Security管理者ガイド』のSecure Sockets Layer(SSL)に関する章を参照してください。

4.7.4 グローバル・ロールがない場合のチェックリスト

エンタープライズ・ユーザーはデータベースに接続できるが、select * from session_rolesでグローバル・ロールが戻されない場合には、次の点を確認します。

  1. グローバル・ロールがデータベースに作成されていることを確認します。グローバル・ロールを作成するには、次の構文を使用します。

    CREATE ROLE <role_name> IDENTIFIED GLOBALLY;
    
  2. Oracle Enterprise Managerを使用して、ディレクトリのエンタープライズ・ロールにグローバル・ロールが含まれていることを確認します。

  3. Oracle Enterprise Managerを使用して、ディレクトリのユーザーにエンタープライズ・ロールが割り当てられていることを確認します。

  4. これらの確認に問題がない場合は、「ドメイン読取りエラーのチェックリスト」を参照してください。

4.7.5 ユーザー・スキーマ・エラーのチェックリスト

データベースがユーザー・スキーマを読み取ることができない場合は、次の点を確認します。

  1. これがSSL認証エンタープライズ・ユーザーである場合、次の両方をチェックして正しいユーザー・ウォレットが使用されていることを確認します。

    • クライアントのsqlnet.oraファイルにWALLET_LOCATIONパラメータ値がないこと。

    • 正しいsqlnet.oraファイルが使用されるように、TNS_ADMINパラメータが適切に設定されていること。

  2. 次の構文を使用して、グローバル・ユーザーとしてデータベースにスキーマが作成されていることを確認します。

    CREATE USER username IDENTIFIED GLOBALLY AS ' ';
    

    または、次の構文を使用します。

    CREATE USER username IDENTIFIED GLOBALLY AS '<DN>';
    
  3. 次に当てはまることを確認します。

    • ユーザー・スキーマが排他スキーマであること(CREATE USER username IDENTIFIED GLOBALLY AS 'user_DN';構文で作成されたスキーマ)。

    • SSL認証ユーザーであること。

    当てはまる場合は、ユーザー・ウォレットのDNがCREATE USER文で使用されたDNと一致していることを確認します。

    Oracle Wallet Managerを使用して、ユーザー・ウォレットのDNを表示します。

    次の構文を使用してCREATE USER文で使用されたDNを表示します。

    SELECT EXTERNAL_NAME FROM DBA_USERS WHERE USERNAME='schema';
    
  4. 共有スキーマを使用している場合は、次の点を確認します。

    • Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、エンタープライズ・ドメイン全体またはデータベースのいずれかに対してユーザー・スキーマ・マッピングを作成していることを確認します。

    • ユーザー・スキーマ・マッピングが(エンタープライズ・ドメイン全体ではなく)このデータベースへの適用を目的としている場合は、そのデータベースがディレクトリ内のそのデータベース自体のエントリまたはサブツリーを読み取ることができることを確認します。

      それを確認するには、データベースとディレクトリ間の接続タイプについて次のldapsearchコマンドを入力します。

      • データベースがSSLを介してディレクトリに接続する場合は、次のコマンドを使用します。

        ldapsearch -h directory_host -p directory_SSLport -U 3 -W "file:database_wallet_path" -Q -b "database_DN" "objectclass=*"
        Please enter SSL wallet password: wallet_password
        

        wallet_passwordは、ウォレットのオープンや変更を可能にするウォレットに対するパスワードです。

      • データベースがパスワード認証を使用してディレクトリに接続する場合は、次のコマンドを使用します。

        ldapsearch -h directory_host -p directory_port -D database_DN -q -b "database_DN" "objectclass=*"
        Please enter bind password: database_directory_password
        

        database_directory_passwordは、mkstoreなどのユーティリティから戻されたデータベースのバインド・パスワードです。

      データベース・エントリおよび関連するマッピングが表示されます。

    • ユーザー・スキーマ・マッピングがこのデータベースだけでなくエンタープライズ・ドメイン全体に適用される場合は、「ドメイン読取りエラーのチェックリスト」を参照してください。

4.7.6 ドメイン読取りエラーのチェックリスト

データベースがOracle Internet Directoryのエンタープライズ・ドメイン情報を読み取ることができない場合は、次の点を確認します。

  1. Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、データベースが正確に1つのエンタープライズ・ドメインのメンバーであることを確認し、メンバーでない場合は追加します。

  2. コマンドラインに次のコマンドのいずれかを入力し、データベースがそれ自体のドメインを参照できることを確認します。

    • データベースがSSLを介してディレクトリに接続する場合は、次のコマンドを使用します。

      ldapsearch -h directory_host -p directory_SSLport -U 3 -W "file:database_wallet_path" -Q -b "cn=OracleContext, realm_DN" "objectclass=orclDBEnterpriseDomain"
      Please enter SSL wallet password: wallet_password
      

      wallet_passwordは、ウォレットのオープンや変更を可能にするウォレットに対するパスワードです。

    • データベースがパスワード認証を使用してディレクトリに接続する場合は、次のコマンドを使用します。

      ldapsearch -h directory_host -p directory_port -D database_DN -q -b "cn=OracleContext, realm_DN" "objectclass=orclDBEnterpriseDomain"
      Please enter bind password: database_directory_password
      

      database_directory_passwordは、データベース・ウォレット内のパスワードで、Oracle Internet Directoryに対するデータベースのパスワードです。

    このldapsearchコマンドが戻すのは、1つのエンタープライズ・ドメインのみです。

    ドメインが戻されず、Oracle Enterprise Managerにデータベースがドメインのメンバーとして表示される場合は、データベースを再起動します。データベースを再起動すると、エンタープライズ・ドメインのキャッシュ値が更新されます。

    複数のドメインが戻された場合は、Oracle Enterprise Managerを使用して他のドメインからデータベースを削除します。

  3. コマンドラインで次のコマンドのいずれかを入力し、データベースがエンタープライズ・ドメインのサブツリーを読み取ることができ、その結果、エンタープライズ・ロールとマッピングを読み取ることができることを確認します。

    • データベースがSSLを介してディレクトリに接続する場合は、次のコマンドを使用します。

      ldapsearch -h directory_host -p directory_SSLport -U 3 -W "file:database_wallet_path" -Q -b "cn=OracleContext, realm_DN" "objectclass=orclDBEnterpriseRole"
      Please enter SSL wallet password: wallet_password
      

      wallet_passwordは、ウォレットのオープンや変更を可能にするウォレットに対するパスワードです。

    • データベースがパスワード認証を使用してディレクトリに接続する場合は、次のコマンドを使用します。

      ldapsearch -h directory_host -p directory_port -D database_DN -q -b "cn=OracleContext, realm_DN" "objectclass=orclDBEnterpriseRole"
      Please enter bind password: database_directory_password
      

      database_directory_passwordは、データベース・ウォレット内のパスワードで、Oracle Internet Directoryに対するデータベースのパスワードです。

    このldapsearchは、このドメインに対して作成したすべてのエンタープライズ・ロールを戻します。戻されない場合は、Oracle Enterprise Managerを使用してエンタープライズ・ロールとマッピングを作成します。

  4. Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、関連するエンタープライズ・ドメインのユーザー認証ポリシーを設定または再設定します。エンタープライズ・ドメインのユーザー認証ポリシーの設定方法は、「ユーザー認証タイプの構成と現行ユーザーのデータベース・リンクの有効化」を参照してください。