この章では、エンタープライズ・ユーザー・セキュリティの構成方法を順序立てて説明します。これには、初期データベースとディレクトリの準備から、パスワード、KerberosチケットまたはSSLを使用して認証されるエンタープライズ・ユーザーとしてデータベースに接続するまでの手順が含まれます。トラブルシューティングの項は、エンタープライズ・ユーザー・セキュリティの実装をテストする際に役立ちます。
この章では、次の項目について説明します。
エンタープライズ・ユーザー・セキュリティを構成するということは、エンタープライズ・ユーザーがアクセスできるように、共有スキーマとグローバル・ロールをデータベースに作成することを意味します。ディレクトリにアイデンティティ管理レルムを構成してデータベース・ロールとスキーマを反映し、そのデータベース・ロールとスキーマにディレクトリ・ユーザーを関連付けます。これらの手順は、選択した認証方式(パスワード、KerberosまたはSSL)にかかわらず適用されます。
認証タイプによる構成の主な違いは、ネットワーク接続構成です。次の3つの接続タイプを検討する必要があります。
クライアントとデータベース間
データベースとディレクトリ間
データベース間(現行ユーザーのデータベース・リンクを保護できるのはSSLのみ)
エンタープライズ・ユーザー・セキュリティでは、データベース、ディレクトリおよびクライアント間の認証タイプの様々な組合せをサポートしています。この章で説明するエンタープライズ・ユーザー・セキュリティの最も一般的な3つの実装では、クライアントとデータベース間の接続およびデータベースとディレクトリ間の接続に対して、次の認証方式を使用します。
両方の接続にパスワードを使用
両方の接続にSSLを使用
クライアントとデータベース間の接続にはKerberosを、データベースとディレクトリ間の接続にはパスワードを使用
エンタープライズ・データのセキュリティと整合性はセキュアなネットワーク接続の作成に依存するため、これらの認証方式のいずれを選択するかは、主にネットワーク環境に基づいて決定します。一般的なネットワーク環境では、すべてのクライアント、データベースおよびディレクトリが、ファイアウォールの内側にある同じネットワーク内に存在する場合や、複数のネットワークに分散されてインターネットに公開される場合があります。エンタープライズ・ユーザー・セキュリティのネットワーク接続を保護するには、環境に応じて認証タイプを選択できます。
次に認証タイプの選択で考慮する点は、SSLやKerberosなどの厳密な認証タイプでは、構成が複雑になり、追加のソフトウェアや継続的なメンテナンスが必要になる点です。
図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-1に示した構成手順を詳しく説明します。この構成手順は、次の順序で実行する必要があります。
必要な認証方式を使用するためのエンタープライズ・ユーザー・セキュリティの構成(フェーズ3)。次の3つの認証方式のいずれかを選択して設定することで、エンタープライズ・ユーザー・セキュリティの構成は完了します。
エンタープライズ・ユーザー・セキュリティの他の部分を構成する前に、この構成フェーズを実行する必要があります。
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 アイデンティティ・レルムのデフォルト
ユーザー検索ベース | グループ検索ベース | ログイン名属性(ニックネーム) |
---|---|---|
|
|
|
別の設定を使用する場合は、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に設定する必要があります。「アイデンティティ管理レルムに対するデータベースとディレクトリ間のデフォルト認証タイプの設定」を参照してください。
注意:
|
タスク5: (オプション)ディレクトリを使用するためのOracleホームの構成
この手順はオプションです。ドメイン・ネーム・システム(DNS)検出機能(ネットワーク上のディレクトリを検索するためのドメイン名自動検索)を使用するユーザーは、この手順を実行する必要はありません。(DNSサーバー検出の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。)
ネットワークにDNS検出を使用していない場合は、Oracle Net Configuration Assistant (NetCA)を使用してOracleホーム用のldap.ora
ファイルを作成する必要があります。この構成ファイルでは、データベースがディレクトリに接続できるように、ディレクトリ・ホストおよびポートの情報とアイデンティティ管理レルムの場所を指定します。(「Oracle Net Configuration Assistantの起動」を参照してください。)
Oracleホーム用のldap.ora
ファイルを作成するには、次のようにします。
Oracle Net Configuration Assistantのようこそページで、ディレクトリ・サービス使用構成を選択し、「次へ」をクリックします。
「ディレクトリ使用構成」ページで、使用している環境に適したオプションを選択します。ウィザードに表示される指示に従い、オンライン・ヘルプを参照して、Oracleホーム用のldap.ora
ファイルを作成します。
注意:
|
タスク6: ディレクトリへのデータベースの登録
ディレクトリを使用するようにOracleホームを構成した後は、Database Configuration Assistantを使用してデータベースをディレクトリに登録します。この登録によってディレクトリにエントリが作成され、データベースはディレクトリにバインド(ログイン)できるようになります。
注意: このタスクを実行するには、ディレクトリ・スーパーユーザーであるか、OracleDBCreators グループまたはOracleContextAdmins グループのメンバーであることが必要です。 |
データベースをディレクトリに登録すると、Database Configuration Assistantによって次の構成タスクが実行されます。
新しいデータベース・サービス・エントリおよびサブツリーを作成し、使用しているアイデンティティ管理レルムのOracleコンテキストでDNを割り当てます。
デフォルトのエンタープライズ・ドメインにデータベースを追加します。
LDAP_DIRECTORY_ACCESS
パラメータを3つの有効値NONE
、PASSWORD
、SSL
のいずれかに設定して、データベースとディレクトリ間の認証タイプを設定します。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の起動」を参照してください。
Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。
データベースを選択し、「次へ」をクリックします。
データベースを登録するには、「データベースを登録する」をクリックします。
OracleDBCreatorsグループのユーザーのディレクトリ資格証明を入力します。
データベース・ウォレットのパスワードを入力します。
注意: 手順5で入力したデータベース・ウォレット・パスワードを記憶しておいてください。データベースの登録が完了した後でパスワードを取得することはできません。パスワードを忘れた場合、数段階の手順を経て、新しいウォレットを作成し、データベースを再登録する必要があります。詳細は、「データベース・ウォレットとパスワードについて」を参照してください。 |
データベースの登録のみを行う場合は、「終了」をクリックします。他のデータベース機能を構成する場合は、「次へ」をクリックします。
データベースのディレクトリ・パスワードを変更する手順:
Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。
データベースを選択し、「次へ」をクリックします。
「データベース・パスワードの再生成」を選択します。
OracleDBCreatorsグループのユーザーのディレクトリ資格証明と、データベース・ウォレットのパスワードを入力します。「OK」をクリックします。
パスワードの再生成のみを行う場合は、「終了」をクリックします。他のデータベース機能を構成する場合は、「次へ」をクリックします。
ディレクトリからデータベースを登録解除する手順:
このツールを起動するには、「Database Configuration Assistantの起動」を参照してください。
Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。
データベースを選択し、「次へ」をクリックします。
データベースを登録解除するには、「登録解除」オプションを選択します。
適切な権限を持つユーザーのディレクトリ資格証明を入力します。
データベース・ウォレットのパスワードを入力します。
ディレクトリからデータベースを登録解除すると、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を登録解除するには、次のいずれかのメンバーであることが必要です。
|
データベースとディレクトリ間の接続の保護に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)」を参照してください。
関連項目:
|
ウォレットにはデータベースの識別情報が含まれているため、複数のデータベース(レプリカを除く)でウォレットを共有することはできません。したがって、sqlnet.ora
ファイルにウォレット・ロケーションが含まれている場合、そのsqlnet.ora
ファイルは複数のデータベースで共有できません。
1つのsqlnet.ora
ファイルを複数のデータベース間で共有するには、次の前提条件を満たす必要があります。
ユーザー認証でパスワードまたはKerberosを使用する必要があります。
パスワードを含むウォレットは、Database Configuration Assistantによって作成されるデフォルトのウォレット・ロケーションに存在する必要があります。
前述の条件を満たした場合、sqlnet.ora
ファイルにウォレット・ロケーション情報が含まれていないため、複数のデータベースでファイルを共有することができます。
ただし、SSL認証がユーザー(クライアント)とデータベースの間で使用される場合は、sqlnet.ora
ファイルにウォレット・ロケーションを指定する必要があります。この場合、sqlnet.ora
ファイルは、SSL認証エンタープライズ・ユーザー用の複数のデータベースで共有できません。
これは、エンタープライズ・ユーザー・セキュリティの実装に必要な構成手順の第2フェーズです。この項で説明する構成手順は、次の推奨設定を前提としています。
「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、データベースとディレクトリの準備を終えている。
ユーザーは、アイデンティティ管理レルムのUsersサブツリーに格納されている。
デフォルトのエンタープライズ・ドメインであるOracleDefaultDomainを使用している。これは、データベースをディレクトリに登録する際に、Database Configuration Assistantで使用されるドメインです。
エンタープライズ・ユーザー・ログインが機能するためには、データベースはアイデンティティ管理レルム内のエンタープライズ・ドメインに存在している必要があります。
関連項目: OracleDefaultDomainを使用しない場合、またはユーザーをアイデンティティ管理レルムのUsersサブツリーに格納しない場合は、次のドキュメントを参照してください。
|
データベースおよびディレクトリでエンタープライズ・ユーザー・セキュリティ・オブジェクトを構成するには、次のタスクを実行します。
タスク1: データベースでのグローバル・スキーマおよびグローバル・ロールの作成
この手順はOracle Enterprise Managerを使用して実行することもできますが、次の例ではSQL*Plusを直接使用しています。
エンタープライズ・ユーザーに対して共有スキーマを作成します。次の構文例では、guestという共有スキーマを作成します。
SQL> CREATE USER guest IDENTIFIED GLOBALLY AS '';
共有スキーマを使用しない場合は、一重引用符の間にユーザーDNを指定して排他スキーマを作成します。
手順1で作成した共有スキーマにCREATE SESSION
権限を付与して、ユーザーがこの共有スキーマに接続できるようにします。次の構文例では、guest共有スキーマにCREATE SESSION
権限を付与します。
SQL> GRANT CREATE SESSION TO guest;
あるいは、CREATE SESSION
権限をグローバル・ロールに付与できます。このグローバル・ロールは、エンタープライズ・ロールを通じて特定のユーザーに付与します。手順3を参照してください。
関連する権限を保持するグローバル・ロールをデータベースに対して作成します。次の構文例では、emprole
およびcustrole
グローバル・ロールを作成します。
SQL> CREATE ROLE emprole IDENTIFIED GLOBALLY; SQL> CREATE ROLE custrole IDENTIFIED GLOBALLY;
グローバル・ロールは、後で作成するエンタープライズ・ロールに関連付けてから、エンタープライズ・ユーザーに割り当てます。
手順3で作成した新しいグローバル・ロールに権限を付与します。次の構文例では、SELECT
権限をproducts表のemprole
およびcustrole
グローバル・ロールに付与します。
SQL> GRANT select ON products TO custrole, emprole;
関連項目: この手順で使用する構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
タスク2: エンタープライズ・ドメインのユーザー・スキーマ・マッピングの構成
Enterprise Managerを使用し、次の手順に従ってOracleDefaultDomainのユーザー・スキーマ・マッピングを構成します。
Enterprise Managerにログインします。
「サーバー」タブをクリックします。「セキュリティ」セクションで「エンタープライズ・ユーザー・セキュリティ」をクリックします。
「Oracle Internet Directoryログイン」ページが表示されます。
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
「OracleDefaultDomain」を選択します。「構成」をクリックします。
「ドメインの構成」ページが表示されます。
「ユーザー・スキーマ・マッピング」タブをクリックします。ドメイン・レベルで作成されたユーザー・スキーマ・マップがすべて表示されます。データベース・レベルで作成されたユーザー・スキーマ・マップは、ここには表示されません。
「作成」をクリックして、ドメインに新しいユーザー・スキーマ・マッピングを作成します。
「マッピングの作成」ページが表示されます。
「自」セクションで、「ユーザー」を選択して個々のエンタープライズ・ユーザーをデータベース・スキーマにマップします。あるいは、「サブツリー」を選択して複数のユーザーが含まれるディレクトリ・サブツリーをマップします。「検索」アイコンを使用して該当するユーザーまたはサブツリーを検索できます。
「至」セクションで、ユーザーまたはサブツリーのマップ先となるスキーマの名前を入力します。これは、タスク1で作成したスキーマです。
「マッピングの作成」ページで「続行」をクリックします。
「ドメインの構成」ページで「OK」をクリックします。
注意: ユーザー・スキーマ・マッピングは、エンタープライズ・ドメイン内の個々のデータベースに対して作成することもできます。このようなマッピングは、その特定のデータベースに対してのみ適用され、ドメイン内の他のデータベースには適用されません。 |
タスク3: エンタープライズ・ドメインでのエンタープライズ・ロールの作成
Enterprise Managerを使用し、次の手順に従ってOracleDefaultDomainにエンタープライズ・ロールを作成します。
「エンタープライズ・ドメインの管理」ページで「OracleDefaultDomain」を選択します。「構成」をクリックします。
「ドメインの構成」ページが表示されます。
「エンタープライズ・ロール」タブをクリックします。
「作成」をクリックして新しいエンタープライズ・ロールを作成します。
「エンタープライズ・ロールの作成」ページが表示されます。
「名前」フィールドに、エンタープライズ・ロールの名前を入力します。「続行」をクリックします。
「ドメインの構成」ページに新しいロールが表示されます。
タスク4: エンタープライズ・ロールへのグローバル・データベース・ロールの追加
Enterprise Managerを使用し、次の手順に従って、タスク1で作成したグローバル・データベース・ロールをタスク3で作成したエンタープライズ・ロールに追加します。
「ドメインの構成」ページで作成したエンタープライズ・ロールを選択します。「編集」をクリックします。
「エンタープライズ・ロールの編集」ページが表示されます。
「DBグローバル・ロール」タブが選択されていることを確認します。「追加」をクリックし、エンタープライズ・ドメインに属するデータベースからグローバル・ロールを追加します。
「検索と選択: データベース・グローバル・ロール」ページが表示されます。
追加するグローバル・ロールを含むデータベースを選択します。ユーザー名およびパスワードを指定して、選択したデータベースにログインします。「ジャンプ」をクリックします。
追加するグローバル・ロールを選択します。「選択」をクリックします。
「エンタープライズ・ロールの編集」ページに選択したロールが表示されます。
タスク5: データベース・アクセスのためのエンタープライズ・ユーザーへのエンタープライズ・ロールの付与
Enterprise Managerを使用し、次の手順に従って、タスク3で作成したエンタープライズ・ロールをエンタープライズ・ユーザーに付与します。
「エンタープライズ・ロールの編集」ページで「権限受領者」タブをクリックします。
「追加」をクリックします。
「選択: ユーザーまたはグループ」ページが表示されます。
検索ベースを選択するか、ユーザーまたはグループが含まれるサブツリーを選択します。エンタープライズ・ロールをユーザーに付与する場合は、「表示」で「USER」を選択します。ロールをグループに付与する場合は、「表示」で「グループ」を選択します。必要に応じて、「名前」フィールドにユーザーまたはグループの共通名を入力します。「ジャンプ」をクリックします。
エンタープライズ・ロールを付与するユーザーまたはグループを選択します。「選択」をクリックします。
「エンタープライズ・ロールの編集」ページで「続行」をクリックします。
「ドメインの構成」ページで「OK」をクリックします。
第3フェーズでは、選択した認証方式に基づいて、エンタープライズ・ユーザー・セキュリティの構成を完了します。次の項のいずれかに進みます。
「SSL認証を使用するエンタープライズ・ユーザー・セキュリティの構成」
関連項目: エンタープライズ・ユーザー・セキュリティでのパスワード認証、Kerberos認証およびSSL認証のそれぞれの利点を比較する場合は、表1-1「エンタープライズ・ユーザー・セキュリティの認証: 選択基準」を参照してください。 |
デフォルトでは、新しいエンタープライズ・ドメインは、サポートされているすべてのユーザー認証タイプ(パスワード、KerberosおよびSSL)を受け入れるように構成されます。エンタープライズ・ユーザーがパスワードによって認証されるようにする場合は、次のタスクの説明に従ってエンタープライズ・ドメインを構成する必要があります。
この項で説明する構成手順は、次の設定を前提としています。
「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、ディレクトリの準備を終えている。
「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」で説明されているタスクを完了し、データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成を終えている。
『Oracle Internet Directory管理者ガイド』の説明に従って、Oracle Internet Directoryに、認証なしのSSLインスタンスを構成してある。ldap.ora
ファイルを使用している場合は、この認証なしのSSLインスタンスのポート番号がディレクトリSSLポートとしてファイルに記載されていることも確認してください。
パスワード認証を使用するエンタープライズ・ユーザー・セキュリティを構成するには、次のタスクを実行します。
タスク1: (オプション)エンタープライズ・ドメインでパスワード認証を受入れ可能にする
デフォルトでは、OracleDefaultDomainはパスワード認証を受け入れるように構成されます。この構成を変更している場合は、Oracle Enterprise Manager Database ControlまたはGrid Controlを使用し、次の手順に従ってOracleDefaultDomainのパスワード認証を有効にします。
Enterprise Managerにログインします。
データベースの「サーバー」タブをクリックします。「セキュリティ」セクションで「エンタープライズ・ユーザー・セキュリティ」をクリックします。
「Oracle Internet Directoryログイン」ページが表示されます。
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
「OracleDefaultDomain」を選択します。「構成」をクリックします。
「ドメインの構成」ページが表示されます。
「構成」タブをクリックします。
「許容されたユーザー認証タイプ」で、「パスワード」を選択します。
「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
グローバル・ロールがディレクトリから取得されなかった場合は、「グローバル・ロールがない場合のチェックリスト」を参照してください。
これで、パスワード認証を使用するエンタープライズ・ユーザー・セキュリティの構成が完了しました。
関連項目:
|
この項で説明する構成手順は、次の設定を前提としています。
『Oracle Database Advanced Security管理者ガイド』の「Kerberos認証の構成」の説明に従ってデータベースをKerberos認証サーバーに登録し、Oracle Net Servicesの構成を終えている。
「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、ディレクトリの準備を終えている。
「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」で説明されているタスクを完了し、データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成を終えている。
『Oracle Internet Directory管理者ガイド』の説明に従って、Oracle Internet Directoryに、認証なしのSSLインスタンスを構成してある。ldap.ora
を使用している場合は、この認証なしのSSLインスタンスのポート番号がディレクトリSSLポートとしてファイルに記載されていることも確認してください。
Kerberos認証を使用するエンタープライズ・ユーザー・セキュリティを構成するには、次のタスクを実行します。
タスク1: Kerberosプリンシパル名属性を表示するためのOracle Internet Directoryセルフ・サービス・コンソールの構成
デフォルトでは、Oracle Internet Directoryセルフ・サービス・コンソールのユーザー・インタフェースには、Kerberosプリンシパル名を構成できるフィールドは表示されません。ディレクトリにKerberos認証ユーザーを初めて作成する場合は、次の手順に従って、「ユーザーの作成」ページにkrbPrincipalName
属性が表示されるようにこのツールを構成する必要があります。
Oracle Internet Directoryセルフ・サービス・コンソールにログインします。
ブラウザ・ウィンドウにOracle Internet Directoryセルフ・サービス・コンソールにアクセスするためのURLを入力します。次に例を示します。
http://myhost1:7777/oiddas
orcladmin
ユーザーとしてログインします。
「構成」タブをクリックします。「ユーザー・エントリ」サブタブをクリックします。
「ユーザー属性の構成」ページが表示されるまで、「次へ」をクリックします。
「ユーザー属性の構成」ページで、「新規属性の追加」をクリックします。
「新規属性の追加」ページが表示されます。
「新規属性の追加」ページで、「ディレクトリ属性名」ボックスから「krbPrincipalName」 (またはアイデンティティ管理レルムのorclCommonKrbPrincipalAttribute
に対して構成した属性)を選択し、このページで次の手順を実行します。
「UIラベル」に、「Kerberosプリンシパル名」などの値を入力します。
「検索可能」および「表示可能」を選択します。
「UIタイプ」から「単一行テキスト」を選択します。
「完了」をクリックします。
「次へ」をクリックして「属性カテゴリの構成」ページに移動します。「基本情報」を選択し、「編集」をクリックします。
「カテゴリの編集」ページが表示されます。
「カテゴリの編集」ページで次の手順を実行します。
左側のカテゴリ・リストで「krbPrincipalName」を選択します。
「移動」をクリックし、krbPrincipalNameを右側のリストに移動します。
「完了」をクリックします。
最後のステップに到達するまで「次へ」をクリックします。「終了」をクリックして作業内容を保存します。
タスク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認証を有効にします。
Enterprise Managerにログインします。
データベースの「サーバー」タブをクリックします。「セキュリティ」セクションで「エンタープライズ・ユーザー・セキュリティ」をクリックします。
「Oracle Internet Directoryログイン」ページが表示されます。
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
「OracleDefaultDomain」を選択します。「構成」をクリックします。
「ドメインの構成」ページが表示されます。
「構成」タブをクリックします。
「許容されたユーザー認証タイプ」で、「Kerberos」を選択します。
「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認証を使用するエンタープライズ・ユーザー・セキュリティの構成が完了しました。
関連項目:
|
この項で説明する構成手順は、次の設定を前提としています。
適切な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の一致ルール
値 | ルール |
---|---|
|
完全一致。クライアント証明書の対象DNに基づいてバインドが実行されます。このDNは、ディレクトリ内のユーザーのDNと比較されます。 |
|
証明書ハッシュ。証明書のハッシュされた値に基づいてバインドが実行されます。 |
(デフォルト) |
証明書ハッシュ/完全一致。証明書のハッシュされた値に基づいてバインドが実行されます。この操作に失敗すると、クライアント証明書の対象DNに基づいてバインドが実行されます。 |
|
マッピング・ルールのみ。 |
|
マッピング・ルール/証明書ハッシュ/完全一致。マッピング・ルールに基づいてバインドが実行されます。この操作に失敗すると、証明書のハッシュされた値に基づいてバインドが実行されます。さらに、この操作に失敗すると、証明書の完全一致に基づいてバインドが実行されます。 |
関連項目: 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認証を有効にします。
Enterprise Managerにログインします。
データベースの「サーバー」タブをクリックします。「セキュリティ」セクションで「エンタープライズ・ユーザー・セキュリティ」をクリックします。
「Oracle Internet Directoryログイン」ページが表示されます。
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
「OracleDefaultDomain」を選択します。「構成」をクリックします。
「ドメインの構成」ページが表示されます。
「構成」タブをクリックします。
「許容されたユーザー認証タイプ」で、「SSL」を選択します。
「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
関連項目:
|
タスク3: SSL認証エンタープライズ・ユーザーとしての接続
SSL認証エンタープライズ・ユーザーとして接続する場合は、適切なOracleウォレット機能が構成されており、クライアントのsqlnet.ora
ファイルにウォレット・ロケーションが指定されていないことを確認します。クライアントのsqlnet.ora
ファイルにウォレット・ロケーションが含まれている場合、そのファイルは複数のユーザーおよびデータベースで共有できません。ウォレット・ロケーション・パラメータの値を指定する必要があるのは、サーバーのsqlnet.ora
ファイルのみです。
関連項目: ユーザーとデータベース間でSSL認証を使用する場合におけるユーザーのウォレットのデフォルトの場所は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
SSL認証エンタープライズ・ユーザーとして接続するには、次の手順を実行します。
Oracle Wallet Managerを使用して、ディレクトリからユーザー・ウォレットをダウンロードします。『Oracle Database Advanced Security管理者ガイド』のLDAPディレクトリからのウォレットのダウンロードに関する項を参照してください。
Oracle Wallet Managerを使用して、ユーザー・ウォレットの自動ログインを有効にします。自動ログインを有効にすると、シングル・サインオン(.sso
)ファイルが生成され、SSLアダプタに対する認証が可能になります。Oracle Wallet Managerの自動ログイン機能の使用方法は、『Oracle Database Advanced Security管理者ガイド』を参照してください。
クライアントOracleホームがサーバーOracleホームを指している場合は、そのクライアントに対してTNS_ADMIN
環境変数を(クライアントのsqlnet.ora
ファイルを指すように)設定します。(サーバーのsqlnet.ora
ファイルにはウォレット・ロケーションが設定されている必要があり、クライアントのsqlnet.ora
ファイルにはウォレット・ロケーションを指定できないため、サーバーとクライアントはこのファイルを共有できません。)
別のクライアントOracleホームがある場合は、TNS_ADMIN
環境変数を設定する必要はありません。
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管理者ガイド』を参照してください。 |
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
です。
コマンドラインで次のmkstore
ユーティリティ構文を使用します。
mkstore -wrl <wallet_location> -viewEntry ORACLE.SECURITY.DN
wallet_location
は、データベース・ウォレットへのパスです。
関連項目:
|
現行ユーザーのデータベース・リンクには、データベース間にSSL対応のネットワーク接続が必要です。現行ユーザーのデータベース・リンクを有効にする前に、関係するすべてのデータベースについて、SSLを有効にし、Oracleウォレットを作成してPKI資格証明を取得する必要があります。
次に、Oracle Enterprise Manager Database ControlまたはGrid Controlを使用し、次の手順に従ってディレクトリのエンタープライズ・ドメイン内のデータベース間で現行ユーザーのデータベース・リンクを有効にします。
Enterprise Managerにログインします。
「サーバー」タブをクリックします。「セキュリティ」セクションで「エンタープライズ・ユーザー・セキュリティ」をクリックします。
「Oracle Internet Directoryログイン」ページが表示されます。
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
構成するエンタープライズ・ドメインを選択します。「構成」をクリックします。
「ドメインの構成」ページが表示されます。
「構成」タブをクリックします。
「このドメインの現行ユーザーのデータベース・リンクを有効化します。」を選択します。
「OK」をクリックします。
この項では、発生する可能性のある問題とその対処方法を説明します。項目は次のとおりです。
パスワード認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-#エラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。
デフォルトのウォレット・ロケーションを使用していない場合は、データベースのsqlnet.ora
ファイルに正しいwallet_location
値が指定されていることを確認します。ウォレット・ロケーションは、Oracle Net Managerを使用して入力できます。デフォルトのウォレット・ロケーションを使用している場合は、sqlnet.ora
ファイルにウォレット・ロケーションを指定する必要はありません。sqlnet.ora
ファイルにウォレット・ロケーションが指定されている場合は、その値が正しいことを確認する必要があります。
Oracle Internet Directoryのドメイン・ネーム・システム(DNS)サーバー検出を使用していない場合は、$LDAP_ADMIN
、$ORACLE_HOME/ldap/admin
、$TNS_ADMIN
または$ORACLE_HOME/network/admin
に正しいldap.ora
ファイルがあることを確認します。(DNSサーバー検出の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。)
(DNS検出またはldap.ora
ファイルで)使用されているSSLポートが、認証なしのSSLをサポートしていることを確認します。
データベース初期化パラメータ・ファイルのLDAP_DIRECTORY_ACCESS
パラメータがPASSWORD
に設定されていることを確認します。
Database Configuration Assistantを使用して、Oracle Internet Directoryに対するデータベースの認証に使用するデータベース・パスワードを再設定します。これにより、データベース・パスワードはデータベース・ウォレットでローカルに、またOracle Internet Directoryのデータベース・エントリでリモートに再設定されます。
データベース・ウォレットの自動ログインが有効になっていることを確認します。Oracle Wallet Managerを使用するか、$ORACLE_HOME/admin/<ORACLE_SID>/wallet/
にcwallet.sso
ファイルがあることを確認します。
データベース・ウォレットに格納されているパスワードを使用して、データベースをOracle Internet Directoryにバインドできることを確認します。
mkstore
コマンドライン・ユーティリティを次の構文で使用し、ウォレットからデータベース・パスワードを取得します。
mkstore -wrl <database wallet location> -viewEntry ORACLE.SECURITY.PASSWORD
次のldapbind
でmkstore
から戻されたパスワードを使用します。
ldapbind -h <directory host> -p <non-SSL directory port> -D "<database DN>" -q Please enter bind password: Password returned by mkstore
データベースが1つのエンタープライズ・ドメインにのみ属していることを確認します。
注意: mkstore ユーティリティは、トラブルシューティングの目的にのみ使用します。このツールの名前および機能は、将来変更される可能性があります。 |
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているレルムのユーザー検索ベース属性にリストされていることを確認します。
Oracle Internet Directoryでユーザー検索ベースに対するACLをチェックして、verifierServices
グループにユーザー・エントリの読取り権限があり、ディレクトリ・ツリーのユーザー検索ベース・エントリとユーザー・エントリ間でこの権限がACLによって無効になっていないことを確認します。
エンタープライズ・ドメインが、該当するレルムOracleコンテキストのパスワードでアクセス可能なドメイン・グループに含まれていることを確認します。
ユーザーのユーザー・エントリがOracle Internet Directoryに存在することを確認します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているアイデンティティ管理レルムにリストされていることを確認します。
ユーザー・エントリに正しいログイン名が含まれていることを確認します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、レルムのディレクトリに対して構成されているログイン名属性を見つけます。
ユーザー・データベース・ログインの試行中に指定された名前が、ユーザー・ディレクトリ・エントリのその属性の値であることを確認します。
データベースにグローバル・ユーザーの排他スキーマがある場合は、データベースのDNがOracle Internet Directoryのユーザー・エントリのDNと一致することを確認します。
ディレクトリ内のユーザー・エントリにorcluser
オブジェクト・クラスがあることを確認します。このクラスがない場合は、次の手順を実行します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、新規ユーザー作成用のデフォルト・オブジェクト・クラスにorcluser
が含まれていることを確認してから、次のいずれかを実行します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、ユーザーを再作成します。
orcluser
およびorcluserV2
オブジェクト・クラスを追加します。
ユーザー・エントリにorclpassword
属性の値があることを確認します。値がない場合は、ユーザーのディレクトリ・パスワード(userpassword
属性)を再設定します。これにより、Oracle Internet Directoryはユーザーのデータベース・パスワード検証を再生成します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているレルムのユーザー検索ベース属性にリストされていることを確認します。
ユーザー検索ベース属性に対するACLで、verifierServices
グループによるorclpassword
属性への読取りおよび検索アクセスが許可されていることを確認します。これは、デフォルトで正しく設定されますが、変更されている場合があります。
Kerberos認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-#エラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。
Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、このエンタープライズ・ドメインのユーザー認証ポリシーを「Kerberos」または「すべて」に設定します。
「ドメイン読取りエラーのチェックリスト」を参照してください。
ディレクトリ内のユーザー・エントリにkrbprincipalname
属性があることを確認します。
krbprincipalname
属性がない場合は、次の点を確認します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、新規ユーザー作成用のデフォルト属性にkrbprincipalname
が含まれていることを確認してから、次のいずれかを実行します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、ユーザーを再作成します。
orclcommonattributes
オブジェクト・クラスを追加します。
ユーザー・エントリにkrbprincipalname
属性の値があることを確認します。値がない場合は、Oracle Internet Directoryセルフ・サービス・コンソールを使用して入力します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、このユーザーを含むユーザー検索ベースが、使用しているレルムOracleコンテキストにリストされていることを確認します。
ユーザー検索ベース属性に対するACLで、verifierServices
グループによるkrbprincipalname
属性への読取りおよび検索アクセスが許可されていることを確認します。これは、デフォルトで正しく設定されますが、変更されている場合があります。
ユーザーのユーザー・エントリがOracle Internet Directoryに存在することを確認します。
Oracle Internet Directoryセルフ・サービス・コンソールまたはldapsearch
を使用して、このユーザーを含むユーザー検索ベースが、使用しているアイデンティティ管理レルムにリストされていることを確認します。
次の手順に従って、ディレクトリ内のユーザー・エントリに正しいKerberosプリンシパル名が含まれていることを確認します。
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、レルムのディレクトリに対して構成されているKerberosプリンシパル名属性を検索します。
正しいKerberosプリンシパル名がユーザーのディレクトリ・エントリのその属性に表示されることを確認します。
データベースにグローバル・ユーザーの排他スキーマがある場合は、データベースのDNがOracle Internet Directoryのユーザー・エントリのDNと一致することを確認します。
mkstore
コマンドライン・ユーティリティを次の構文で使用し、ウォレットのデータベース・パスワードを取得します。
mkstore -wrl <database wallet location> -viewEntry ORACLE.SECURITY.PASSWORD -viewEntry ORACLE.SECURITY.DN
これらの値が正しくない場合は、Database Configuration Assistantを使用してデータベース・ウォレットを再設定します。
次のldapbind
でmkstore
から戻されたDNおよびパスワードを使用します。
ldapbind -h <directory host> -p <non-SSL directory port> -D "<database DN>" -q Please enter bind password: Password returned by mkstore
注意: mkstore ユーティリティは、トラブルシューティングの目的にのみ使用します。このツールの名前および機能は、将来変更される可能性があります。 |
SSL認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-#エラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。
データベースのsqlnet.ora
ファイルに、正しいwallet_location
値があることを確認します。値がない場合は、Oracle Net Managerを使用して入力します。
Oracle Internet Directoryのドメイン・ネーム・システム(DNS)サーバー検出を使用していない場合は、$LDAP_ADMIN
、$ORACLE_HOME/ldap/admin
、$TNS_ADMIN
または$ORACLE_HOME/network/admin
に正しいldap.ora
ファイルがあることを確認します。(DNSサーバー検出の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。)
(DNS検出またはldap.ora
ファイルで)使用されているOracle Internet DirectoryのSSLポートが、双方向SSL認証をサポートしていることを確認します。
データベース初期化パラメータ・ファイルのLDAP_DIRECTORY_ACCESS
パラメータがSSL
に設定されていることを確認します。
データベース・ウォレットの自動ログインが有効になっていることを確認します。Oracle Wallet Managerを使用するか、$ORACLE_HOME/admin/<ORACLE_SID>/wallet/
にcwallet.sso
ファイルがあることを確認します。
mkstore
コマンドライン・ユーティリティを次の構文で使用し、データベース・ウォレットにデータベースDNが含まれていることを確認します。
mkstore -wrl <database_wallet_location> -viewEntry ORACLE.SECURITY.DN
ウォレットにデータベースDNが含まれていない場合は、Database Configuration Assistantを使用して、データベースをOracle Internet Directoryに再登録します。
次の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
データベースが1つのエンタープライズ・ドメインにのみ属していることを確認します。
注意: mkstore ユーティリティは、トラブルシューティングの目的にのみ使用します。このツールの名前および機能は、将来変更される可能性があります。 |
エンタープライズ・ユーザーはデータベースに接続できるが、select * from session_roles
でグローバル・ロールが戻されない場合には、次の点を確認します。
グローバル・ロールがデータベースに作成されていることを確認します。グローバル・ロールを作成するには、次の構文を使用します。
CREATE ROLE <role_name> IDENTIFIED GLOBALLY;
Oracle Enterprise Managerを使用して、ディレクトリのエンタープライズ・ロールにグローバル・ロールが含まれていることを確認します。
Oracle Enterprise Managerを使用して、ディレクトリのユーザーにエンタープライズ・ロールが割り当てられていることを確認します。
これらの確認に問題がない場合は、「ドメイン読取りエラーのチェックリスト」を参照してください。
データベースがユーザー・スキーマを読み取ることができない場合は、次の点を確認します。
これがSSL認証エンタープライズ・ユーザーである場合、次の両方をチェックして正しいユーザー・ウォレットが使用されていることを確認します。
クライアントのsqlnet.ora
ファイルにWALLET_LOCATION
パラメータ値がないこと。
正しいsqlnet.ora
ファイルが使用されるように、TNS_ADMIN
パラメータが適切に設定されていること。
次の構文を使用して、グローバル・ユーザーとしてデータベースにスキーマが作成されていることを確認します。
CREATE USER username IDENTIFIED GLOBALLY AS ' ';
または、次の構文を使用します。
CREATE USER username IDENTIFIED GLOBALLY AS '<DN>';
次に当てはまることを確認します。
ユーザー・スキーマが排他スキーマであること(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';
共有スキーマを使用している場合は、次の点を確認します。
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
などのユーティリティから戻されたデータベースのバインド・パスワードです。
データベース・エントリおよび関連するマッピングが表示されます。
ユーザー・スキーマ・マッピングがこのデータベースだけでなくエンタープライズ・ドメイン全体に適用される場合は、「ドメイン読取りエラーのチェックリスト」を参照してください。
データベースがOracle Internet Directoryのエンタープライズ・ドメイン情報を読み取ることができない場合は、次の点を確認します。
Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、データベースが正確に1つのエンタープライズ・ドメインのメンバーであることを確認し、メンバーでない場合は追加します。
コマンドラインに次のコマンドのいずれかを入力し、データベースがそれ自体のドメインを参照できることを確認します。
データベースが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を使用して他のドメインからデータベースを削除します。
コマンドラインで次のコマンドのいずれかを入力し、データベースがエンタープライズ・ドメインのサブツリーを読み取ることができ、その結果、エンタープライズ・ロールとマッピングを読み取ることができることを確認します。
データベースが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を使用してエンタープライズ・ロールとマッピングを作成します。
Oracle Enterprise Manager Database ControlまたはGrid Controlを使用して、関連するエンタープライズ・ドメインのユーザー認証ポリシーを設定または再設定します。エンタープライズ・ドメインのユーザー認証ポリシーの設定方法は、「ユーザー認証タイプの構成と現行ユーザーのデータベース・リンクの有効化」を参照してください。