4 エンタープライズ・ユーザー・セキュリティの構成タスクとトラブルシューティング
この章では、エンタープライズ・ユーザー・セキュリティの構成方法を順序立てて説明します。これには、初期データベースとディレクトリの準備から、パスワード、KerberosチケットまたはSSLを使用して認証されるエンタープライズ・ユーザーとしてデータベースに接続するまでの手順が含まれます。トラブルシューティングの項は、エンタープライズ・ユーザー・セキュリティの実装をテストする際に役立ちます。
トピック:
4.1 エンタープライズ・ユーザー・セキュリティの構成の概要
エンタープライズ・ユーザー・セキュリティを構成するということは、エンタープライズ・ユーザーがアクセスできるように、共有スキーマとグローバル・ロールをデータベースに作成することを意味します。ディレクトリにアイデンティティ管理レルムを構成してデータベース・ロールとスキーマを反映し、そのデータベース・ロールとスキーマにディレクトリ・ユーザーを関連付けます。これらの手順は、選択した認証方式(パスワード、KerberosまたはSSL)にかかわらず適用されます。
認証タイプによる構成の主な違いは、ネットワーク接続構成です。次の3つの接続タイプを検討する必要があります。
-
クライアントからデータベース
-
データベースからディレクトリ
-
データベース間(現行ユーザーのデータベース・リンクを保護できるのはSSLのみ)
エンタープライズ・ユーザー・セキュリティでは、データベース、ディレクトリおよびクライアント間の認証タイプの様々な組合せをサポートしています。この章で説明するエンタープライズ・ユーザー・セキュリティの最も一般的な3つの実装では、クライアントとデータベース間の接続およびデータベースとディレクトリ間の接続に対して、次の認証方式を使用します。
-
両方の接続にパスワードを使用
-
両方の接続にSSLを使用
-
クライアントとデータベース間の接続にはKerberosを、データベースとディレクトリ間の接続にはパスワードを使用
エンタープライズ・データのセキュリティと整合性はセキュアなネットワーク接続の作成に依存するため、これらの認証方式のいずれを選択するかは、主にネットワーク環境に基づいて決定します。一般的なネットワーク環境では、すべてのクライアント、データベースおよびディレクトリが、ファイアウォールの内側にある同じネットワーク内に存在する場合や、複数のネットワークに分散されてインターネットに公開される場合があります。エンタープライズ・ユーザー・セキュリティのネットワーク接続を保護するには、環境に応じて認証タイプを選択できます。
次に認証タイプの選択で考慮する点は、SSLやKerberosなどの厳密な認証タイプでは、構成が複雑になり、追加のソフトウェアや継続的なメンテナンスが必要になる点です。
図4-1に、エンタープライズ・ユーザー・セキュリティの構成プロセスを示します。この構成プロセスは、実装とユーザーの認証方法に基づいた判断ポイントを記載した段階的なプロセスです。破線で示されている構成手順はオプションです。
簡潔にするために、このフロー・チャートでは一部の製品名と機能は略語で示されています。次の表に、使用されている略語とその意味を示します。
略称 | 意味 |
---|---|
DBCA |
Database Configuration Assistant |
EM |
Oracle Enterprise Manager |
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コンテキストとその管理グループ、およびエンタープライズ・ユーザー・セキュリティに関連するエントリの詳細は、「エンタープライズ・ユーザー・セキュリティの概要」を参照してください。
4.2 エンタープライズ・ユーザー・セキュリティの構成のロードマップ
この項では、図4-1に示した構成手順を詳しく説明します。この構成手順は、次の順序で実行する必要があります。
-
「必要な認証方式を使用するためのエンタープライズ・ユーザー・セキュリティの構成(フェーズ3)」。次の3つの認証方式のいずれかを選択して設定することで、エンタープライズ・ユーザー・セキュリティの構成が完了します。
4.3 エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)
エンタープライズ・ユーザー・セキュリティの他の部分を構成する前に、この構成フェーズを実行する必要があります。
12cリリース1 (12.1)のエンタープライズ・ユーザー・セキュリティには、必要なバージョンの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 12cリリース1 (12.1)を同じレルムに登録し、同じドメインに配置できます。
タスク2: (オプション)アイデンティティ管理レルムのプロパティの設定
表4-1に、リリース9.0.4のアイデンティティ管理レルムのデフォルトを示します。
表4-1 アイデンティティ・レルムのデフォルト
ユーザー検索ベース | グループ検索ベース | ログイン名属性(ニックネーム) |
---|---|---|
|
|
|
別の設定を使用する場合は、Oracle Internet Directoryセルフ・サービス・コンソールを使用してユーザー検索ベース、グループ検索ベースおよびログイン名属性(ニックネーム)を設定します。ディレクトリで使用する予定のアイデンティティ管理レルムには、必要なコンテキスト管理者も設定できます。
このタスクを実行するには、「アイデンティティ管理レルムのプロパティの設定」を参照してください。
注意:
各アイデンティティ管理レルムには、そのレルムのみのルート・ユーザーであるorcladminユーザーが含まれます。これらのレルム固有のorcladminユーザーは、ディレクトリ・エントリcn=orcladmin,cn=Users,<realm_DN>
で表されます。レルム固有のorcladminユーザーとしてエンタープライズ・ユーザー・セキュリティ管理ツールにログインしている場合は、そのレルムのディレクトリ・オブジェクトのみ管理できます。別のレルムのオブジェクトを管理するには、そのレルムのorcladminユーザーとして管理ツールにログインする必要があります。
タスク3: ディレクトリでの管理ユーザーの特定
ディレクトリで次のタスクの実行を認可された管理ユーザーを特定します。
-
データベースの登録
-
データベース・セキュリティの管理
-
エンタープライズ・ドメインの作成および管理
これらのタスクを実行できる管理ユーザーがまだ存在しない場合は、「エンタープライズ・ユーザー・セキュリティの管理」を参照して作成します。
注意:
1人の管理者がエンタープライズ・ユーザー・セキュリティのすべての管理タスクを実行できますが、様々な管理者を作成し、セキュリティ・タスクをそれぞれ別の管理者に割り当てることもできます。このようにセキュリティ・タスクを分離することによってセキュアなエンタープライズ環境が実現しますが、この環境では、各管理者間の連携が必要となります。
タスク4: (オプション)アイデンティティ管理レルムに対するデータベースとディレクトリ間のデフォルト認証タイプの設定
デフォルトでは、アイデンティティ管理レルムに対するデータベースとディレクトリ間の認証タイプはパスワードに設定されます。別のデフォルト設定が必要な場合は、Oracle Enterprise Managerのインタフェースを使用して、それを変更します。たとえば、公開鍵インフラストラクチャ(PKI)を使用する場合は、認証タイプをSSLに設定する必要があります。「アイデンティティ管理レルムに対するデータベースとディレクトリ間のデフォルト認証タイプの設定」を参照してください。
注意:
-
このレルム全体のデフォルト設定は、
LDAP_DIRECTORY_ACCESS
初期化パラメータを設定することで、データベースで上書きできます。このパラメータ詳細は、『Oracle Databaseリファレンス』を参照してください。 -
SSLを使用する場合、Oracle Internet Directoryに対して双方向SSL認証を設定する方法は、Oracle Fusion Middleware Oracle Internet Directory管理者ガイドを参照してください。
タスク5: (オプション)ディレクトリを使用するためのOracleホームの構成
この手順はオプションです。ドメイン・ネーム・システム(DNS)検出機能(ネットワーク上のディレクトリを検索するためのドメイン名自動検索)を使用するユーザーは、この手順を実行する必要はありません。(DNSサーバー検出の詳細は、Oracle Fusion Middleware 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
ファイルを作成します。注意:
-
データベースとディレクトリ間のSSL認証では、
ldap.ora
ファイルに入力したSSLポートにより、クライアントとサーバーの両方が相互に証明書を送信する双方向認証がサポートされている必要があります。そのため、Oracle Internet Directoryに対するPKIデジタル証明書とウォレットを取得し、Oracle Internet DirectoryをSSL相互認証モードで起動する必要があります。ldap.ora
ファイルの2番目のポートには、SSL相互認証ポートを指定する必要があります。(Oracle Fusion Middleware 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つの有効値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を起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。
-
データベースを選択し、「次へ」をクリックします。
-
データベースを登録するには、「データベースを登録する」をクリックします。
-
データベースのカスタム・データベース名を入力します。
カスタム・データベース名を指定する機能は、Oracle Database 12cリリース1 (12.1)の新機能です。デフォルトで、ディレクトリ内のデータベースCN (DNの最初の部分または識別名)は
DB_UNIQUE_NAME
です。これをカスタム値に変更できます。 -
OracleDBCreatorsグループのユーザーのディレクトリ資格証明を入力します。
-
データベース・ウォレットのパスワードを入力します。
注意:
手順5で入力したデータベース・ウォレットのパスワードを記録しておいてください。データベース登録の終了後にパスワードを取得することはできません。パスワードが不明な場合、新しいウォレットを生成してデータベースの再登録が必要になります。詳細は、「データベース・ウォレットとパスワードについて」を参照してください。
-
データベースの登録のみを行う場合は、「終了」をクリックします。他のデータベース機能を構成する場合は、「次へ」をクリックします。
関連項目:
DBCAを使用してデータベースを登録する例は、「ディレクトリへのデータベースの登録」を参照してください。
データベースのディレクトリ・パスワードを変更する手順:
Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。
-
データベースを選択し、「次へ」をクリックします。
-
「データベース・パスワードの再生成」を選択します。
-
OracleDBCreatorsグループのユーザーのディレクトリ資格証明と、データベース・ウォレットのパスワードを入力します。「OK」をクリックします。
-
パスワードの再生成のみを行う場合は、「終了」をクリックします。他のデータベース機能を構成する場合は、「次へ」をクリックします。
ディレクトリからデータベースを登録解除する手順:
このツールを起動するには、「Database Configuration Assistantの起動」を参照してください。
- Database Configuration Assistantを起動した後、「データベース内のデータベース・オプションの構成」を選択し、「次へ」をクリックします。
- データベースを選択し、「次へ」をクリックします。
- データベースを登録解除するには、「登録解除」オプションを選択します。
- 適切な権限を持つユーザーのディレクトリ資格証明を入力します。
- データベース・ウォレットのパスワードを入力します。
ディレクトリからデータベースを登録解除すると、Database Configuration Assistantによって次の構成タスクが実行されます。
-
ディレクトリからデータベース・エントリおよびサブツリーが削除されます。
-
LDAP_DIRECTORY_ACCESS
パラメータがNONE
に設定されます。 -
エンタープライズ・ドメインからデータベースが削除されます(ユーザーに十分な権限がある場合)。
注意:
ユーザー権限によっては、Database Configuration Assistantがディレクトリ内のドメインからデータベースを削除できない場合があります。その場合は、Oracle Enterprise Managerを使用してエンタープライズ・ドメインから削除します。
-
データベース・ウォレットは削除されません。
関連項目:
ウォレットの削除の詳細は、「Oracle Wallet Managerについて」および「Oracleウォレットの削除」を参照してください。
注意:
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ウォレット・パスワードの変更」を参照してください。
エンタープライズ・ユーザー・セキュリティで使用するディレクトリを準備した後は、エンタープライズ・ユーザー・セキュリティのデータベース・オブジェクトとディレクトリ・オブジェクトを作成できます。詳細は、「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」を参照してください。
関連項目:
-
ディレクトリにアイデンティティ管理レルムを構成する方法は、Oracle Fusion Middleware Oracle Internet Directory管理者ガイドを参照してください。
-
LDAP_DIRECTORY_ACCESS
初期化パラメータの値を変更する方法は、『Oracle Databaseリファレンス』を参照してください。
この項には、トピック「複数データベースでのウォレットとsqlnet.oraファイルの共有」が含まれています。
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フェーズです。この項で説明する構成手順は、次の推奨設定を前提としています。
-
「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、データベースとディレクトリの準備を終えている。
-
ユーザーは、アイデンティティ管理レルムのUsersサブツリーに格納されている。
-
デフォルトのエンタープライズ・ドメインであるOracleDefaultDomainを使用している。これは、データベースをディレクトリに登録する際に、Database Configuration Assistantで使用されるドメインです。
エンタープライズ・ユーザー・ログインが機能するためには、データベースはアイデンティティ管理レルム内のエンタープライズ・ドメインに存在している必要があります。
関連項目:
OracleDefaultDomainを使用しない場合、またはユーザーをアイデンティティ管理レルムのUsersサブツリーに格納しない場合は、次のドキュメントを参照してください。
-
新しいアイデンティティ管理レルムの作成方法または既存のアイデンティティ管理レルムの変更方法、およびディレクトリ・オブジェクトに対するアクセス制御リストの設定方法は、Oracle Fusion Middleware Oracle Internet Directory管理者ガイドを参照してください。
-
データベースを配置するドメインを別に作成するには、「エンタープライズ・ドメインの作成」を参照してください。続いて、次の構成手順でOracleDefaultDomainを新しいドメイン名で置き換えます。
データベースおよびディレクトリでエンタープライズ・ユーザー・セキュリティ・オブジェクトを構成するには、次のタスクを実行します。
タスク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言語リファレンス』を参照してください。
ユーザーまたはロールに権限を付与する構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
ロールを作成する構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
タスク2: エンタープライズ・ドメインのユーザー・スキーマ・マッピングの構成
Enterprise Managerを使用し、次の手順に従ってOracleDefaultDomainのユーザー・スキーマ・マッピングを構成します。
-
Enterprise Manager Cloud Controlに管理ユーザーとしてログインします。
-
使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
-
表示されたリストで、データベース名をクリックします。データベースのページが表示されます。
-
「管理」メニューで、「セキュリティ」→「エンタープライズ・ユーザー・セキュリティ」を選択します。「Oracle Internet Directoryログイン」ページが表示されます。
-
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
-
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
-
「OracleDefaultDomain」を選択します。構成をクリックします。
「ドメインの構成」ページが表示されます。
-
「ユーザー・スキーマ・マッピング」タブをクリックします。ドメイン・レベルで作成されたユーザー・スキーマ・マップがすべて表示されます。データベース・レベルで作成されたユーザー・スキーマ・マップは、ここには表示されません。
-
「作成」をクリックして、ドメインに新しいユーザー・スキーマ・マッピングを作成します。
「マッピングの作成」ページが表示されます。
-
「自」セクションで、「ユーザー」を選択して個々のエンタープライズ・ユーザーをデータベース・スキーマにマップします。あるいは、「サブツリー」を選択して複数のユーザーが含まれるディレクトリ・サブツリーをマップします。「検索」アイコンを使用して該当するユーザーまたはサブツリーを検索できます。
-
「至」セクションで、ユーザーまたはサブツリーのマップ先となるスキーマの名前を入力します。これは、タスク1で作成したスキーマです。
-
「マッピングの作成」ページで「続行」をクリックします。
-
「ドメインの構成」ページで「OK」をクリックします。
注意:
ユーザー・スキーマ・マッピングは、エンタープライズ・ドメイン内の個々のデータベースに対して作成することもできます。このようなマッピングは、その特定のデータベースに対してのみ適用され、ドメイン内の他のデータベースには適用されません。
関連項目:
ユーザー・スキーマ・マッピングの作成に関する例は、「共有スキーマへのエンタープライズ・ユーザーのマップ」を参照してください。
タスク3: エンタープライズ・ドメインでのエンタープライズ・ロールの作成
Enterprise Managerを使用し、次の手順に従ってOracleDefaultDomainにエンタープライズ・ロールを作成します。
-
「エンタープライズ・ドメインの管理」ページで「OracleDefaultDomain」を選択します。構成をクリックします。
「ドメインの構成」ページが表示されます。
-
「エンタープライズ・ロール」タブをクリックします。
-
「作成」をクリックして新しいエンタープライズ・ロールを作成します。
「エンタープライズ・ロールの作成」ページが表示されます。
-
「名前」フィールドに、エンタープライズ・ロールの名前を入力します。「続行」をクリックします。
「ドメインの構成」ページに新しいロールが表示されます。
関連項目:
エンタープライズ・ロールの作成および使用に関する例は、「エンタープライズ・ロールの使用」を参照してください。
タスク4: エンタープライズ・ロールへのグローバル・データベース・ロールの追加
Enterprise Managerを使用し、次の手順に従って、タスク1で作成したグローバル・データベース・ロールをタスク3で作成したエンタープライズ・ロールに追加します。
-
「ドメインの構成」ページで作成したエンタープライズ・ロールを選択します。「編集」をクリックします。
「エンタープライズ・ロールの編集」ページが表示されます。
-
「DBグローバル・ロール」タブが選択されていることを確認します。「追加」をクリックし、エンタープライズ・ドメインに属するデータベースからグローバル・ロールを追加します。
「検索と選択: データベース・グローバル・ロール」ページが表示されます。
-
追加するグローバル・ロールを含むデータベースを選択します。ユーザー名およびパスワードを指定して、選択したデータベースにログインします。実行をクリックします。
-
追加するグローバル・ロールを選択します。「選択」をクリックします。
「エンタープライズ・ロールの編集」ページに選択したロールが表示されます。
関連項目:
エンタープライズ・ロールの作成および使用に関する例は、「エンタープライズ・ロールの使用」を参照してください。
タスク5: データベース・アクセスのためのエンタープライズ・ユーザーへのエンタープライズ・ロールの付与
Enterprise Managerを使用し、次の手順に従って、タスク3で作成したエンタープライズ・ロールをエンタープライズ・ユーザーに付与します。
関連項目:
エンタープライズ・ロールの作成および使用に関する例は、「エンタープライズ・ロールの使用」を参照してください。
4.5 必要な認証方式を使用するためのエンタープライズ・ユーザー・セキュリティの構成(フェーズ3)
トピック:
- パスワード認証を使用するエンタープライズ・ユーザー・セキュリティの構成
- Kerberos認証を使用するエンタープライズ・ユーザー・セキュリティの構成
- SSL認証を使用するエンタープライズ・ユーザー・セキュリティの構成
関連項目:
エンタープライズ・ユーザー・セキュリティでのパスワード認証、Kerberos認証およびSSL認証のそれぞれの利点を比較する場合は、表1-1を参照してください。
4.5.1 パスワード認証を使用するエンタープライズ・ユーザー・セキュリティの構成
デフォルトでは、新しいエンタープライズ・ドメインは、サポートされているすべてのユーザー認証タイプ(パスワード、KerberosおよびSSL)を受け入れるように構成されます。エンタープライズ・ユーザーがパスワードによって認証されるようにする場合は、次のタスクの説明に従ってエンタープライズ・ドメインを構成する必要があります。
この項で説明する構成手順は、次の設定を前提としています。
-
「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、ディレクトリの準備を終えている。
-
「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」で説明されているタスクを完了し、データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成を終えている。
-
Oracle Fusion Middleware Oracle Internet Directory管理者ガイドの説明に従って、Oracle Internet Directoryでの認証なしのSSLインスタンスの構成を終えている。
ldap.ora
ファイルを使用している場合は、この認証なしのSSLインスタンスのポート番号がディレクトリSSLポートとしてファイルに記載されていることも確認してください。
パスワード認証を使用するエンタープライズ・ユーザー・セキュリティを構成するには、次のタスクを実行します。
タスク1: (オプション)エンタープライズ・ドメインでパスワード認証を受入れ可能にする
デフォルトでは、OracleDefaultDomainはパスワード認証を受け入れるように構成されます。この構成を変更している場合は、Oracle Enterprise Managerを使用し、次の手順に従ってOracleDefaultDomainのパスワード認証を有効にします。
- Enterprise Manager Cloud Controlに管理ユーザーとしてログインします。
- 使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
- 表示されたリストで、データベース名をクリックします。データベースのページが表示されます。
- 「管理」メニューで、「セキュリティ」→「エンタープライズ・ユーザー・セキュリティ」を選択します。「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-nエラー」を参照してください。
正常に接続された場合は、SQL*Plusプロンプトに次のように入力して、ディレクトリから適切なグローバル・ロールが取得されたことを確認します。
select * from session_roles
グローバル・ロールがディレクトリから取得されなかった場合は、「グローバル・ロールがない場合のチェックリスト」を参照してください。
これで、パスワード認証を使用するエンタープライズ・ユーザー・セキュリティの構成が完了しました。
関連項目:
-
エラーの診断方法と解決方法は、「エンタープライズ・ユーザー・セキュリティのトラブルシューティング」を参照してください。
-
アイデンティティ管理レルムの構成方法と、エンタープライズ・ドメイン、エンタープライズ・ロールおよびエンタープライズ・ユーザーの作成方法と管理方法は、「エンタープライズ・ユーザー・セキュリティの管理」を参照してください。
4.5.2 Kerberos認証を使用するエンタープライズ・ユーザー・セキュリティの構成
この項で説明する構成手順は、次の設定を前提としています。
-
『Oracle Databaseセキュリティ・ガイド』のKerberos認証の構成に関する説明に従ってデータベースをKerberos認証サーバーに登録し、Oracle Net Servicesの構成を終えている。
-
「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、ディレクトリの準備を終えている。
-
「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」で説明されているタスクを完了し、データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成を終えている。
-
Oracle Fusion Middleware 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プリンシパル名、ユーザー検索ベースおよびグループ検索ベースのID管理レルム属性の設定」を参照してください。
注意:
デフォルトでは、Oracle Internet Directoryセルフ・サービス・コンソールのユーザー・インタフェースには、Kerberosプリンシパル名を構成できるフィールドは表示されません。ディレクトリにKerberos認証ユーザーを初めて作成する場合は、「ユーザーの作成」ウィンドウにkrbPrincipalName
属性が表示されるようにコンソールを構成する必要があります。
タスク3: krbPrincipalName属性でのエンタープライズ・ユーザーのKerberosプリンシパル名の指定
Oracle Internet Directoryセルフ・サービス・コンソールを使用して、エンタープライズ・ユーザーのディレクトリ・エントリのkrbPrincipalName
属性にエンタープライズ・ユーザーのKerberosプリンシパル名(Kerberos_username@Kerberos_realm
)を指定します。このタスクの詳細は、「新規エンタープライズ・ユーザーの作成」を参照してください。
タスク4: (オプション)エンタープライズ・ドメインでKerberos認証を受入れ可能にする
デフォルトでは、OracleDefaultDomainはすべての認証タイプを受け入れるように構成されます。これを変更している場合または別のドメインを使用する場合は、Oracle Enterprise Managerを使用し、次の手順に従ってエンタープライズ・ドメインのKerberos認証を有効にします。
-
Enterprise Manager Cloud Controlに管理ユーザーとしてログインします。
-
使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
-
表示されたリストで、データベース名をクリックします。データベースのページが表示されます。
-
「管理」メニューで、「セキュリティ」→「エンタープライズ・ユーザー・セキュリティ」を選択します。「Oracle Internet Directoryログイン」ページが表示されます。
-
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
-
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
-
「OracleDefaultDomain」を選択します。構成をクリックします。
「ドメインの構成」ページが表示されます。
-
「構成」タブをクリックします。
-
「許容されたユーザー認証タイプ」で、「Kerberos」を選択します。
-
「OK」をクリックします。
タスク5: Kerberos認証エンタープライズ・ユーザーとしての接続
MITのKerberos V5などのKDCがオペレーティング・システムに組み込まれていない場合、ユーザーはokinit
ユーティリティを使用してFORWARDABLE
フラグが設定されている初期チケットを取得する必要があります。okinit
を使用した初期チケットの取得の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
Windows 2000やLinuxまたはUNIXの一部のバージョンのように、KDCがオペレーティング・システムに組み込まれている場合は、ユーザーがログインすると、オペレーティング・システムによって(FORWARDABLE
フラグが設定された)そのユーザーのチケットがキャッシュから自動的に取得されます。
ユーザーは、SQL*Plusを起動し、コマンドラインに次のコマンドを入力してデータベースに接続します。
SQL> connect /@<net_service_name>
データベースは、Kerberosを使用してユーザーを認証します。また、パスワードによってデータベース自体をディレクトリに対して認証します。
接続が成功した場合は、Connected to:...
というメッセージが表示されます。このメッセージは、接続と設定が正常に行われたことを示す確認メッセージです。エラー・メッセージが表示された場合は、「Kerberos認証エンタープライズ・ユーザーに関するORA-nエラー」を参照してください。
正常に接続された場合は、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 Fusion Middleware Oracle Internet Directory管理者ガイドおよびOracle Fusion Middleware Oracle Identity Managementリファレンスを参照してください。注意:
検索対象の証明書を持つユーザー・エントリがレルムのユーザー検索ベースに存在しない場合、または証明書の検索機能をサポートしていない古いバージョンのOracle Internet Directoryを使用している場合は、証明書の検索が失敗します。証明書の検索が失敗すると、データベースは、正常な接続を確立するために、ユーザーDNを証明書DNと照合する従来の動作に戻ります。
-
『Oracle Database セキュリティ・ガイド』のSSLの有効化に関する項の説明に従って、クライアント・データベースのOracle Net接続に対するSSLの有効化が終わっている。SSLを有効にしたときに、次の手順を実行していることを確認してください。
-
TCPS
のデータベース・リスナーに対してSSLを有効にし、対応するTNS名を指定した。 -
データベースの登録時にDatabase Configuration Assistantによって自動的に作成されたデータベース・ウォレットに、データベースのPKI資格証明を格納した。
-
-
Oracle Fusion Middleware Oracle Internet Directory管理者ガイドの説明に従って、Oracle Internet Directoryでの双方向SSL認証インスタンスの構成を終えている。
-
「エンタープライズ・ユーザー・セキュリティのディレクトリの準備(フェーズ1)」で説明されているタスクを完了し、ディレクトリの準備を終えている。
-
「データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成(フェーズ2)」で説明されているタスクを完了し、データベースおよびディレクトリでのエンタープライズ・ユーザー・セキュリティ・オブジェクトの構成を終えている。
SSL認証を使用するエンタープライズ・ユーザー・セキュリティを構成するには、次のタスクを実行します。
タスク1: エンタープライズ・ドメインでSSL認証を受入れ可能にする
デフォルトでは、OracleDefaultDomainはすべての認証タイプを受け入れるように構成されます。これを変更している場合または別のドメインを使用する場合は、Oracle Enterprise Managerを使用し、次の手順に従ってエンタープライズ・ドメインのSSL認証を有効にします。
-
Enterprise Manager Cloud Controlに管理ユーザーとしてログインします。
-
使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
-
表示されたリストで、データベース名をクリックします。データベースのページが表示されます。
-
「管理」メニューで、「セキュリティ」→「エンタープライズ・ユーザー・セキュリティ」を選択します。「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
関連項目:
-
初期化パラメータの編集の詳細は、『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ウォレットをシステム・デフォルトのディレクトリの場所へ保存」を参照してください。
SSL認証エンタープライズ・ユーザーとして接続するには、次の手順を実行します。
これで、SSL認証を使用するエンタープライズ・ユーザー・セキュリティの構成が完了しました。
注意:
セキュリティ上の目的で、データベースとのエンタープライズ・ユーザー・セッションからログアウトした後は、ユーザー・ウォレットの自動ログインを無効にしてください。これは、クライアント・コンピュータを複数のユーザーで共有している場合に特に重要です。Oracle Wallet Managerを使用してOracleウォレットの自動ログインを無効にする方法は、「Oracleウォレットの自動ログインの無効化」を参照してください。
この項には、トピック「ウォレットおよびディレクトリ内のデータベースDNの表示」が含まれています。
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
です。
-
コマンドラインで次の
mkstore
ユーティリティ構文を使用します。mkstore -wrl <wallet_location> -viewEntry ORACLE.SECURITY.DN
wallet_location
は、データベース・ウォレットへのパスです。関連項目:
-
エラーの診断方法と解決方法は、「エンタープライズ・ユーザー・セキュリティのトラブルシューティング」を参照してください。
-
アイデンティティ管理レルムの構成方法と、エンタープライズ・ドメイン、エンタープライズ・ロールおよびエンタープライズ・ユーザーの作成方法と管理方法は、「エンタープライズ・ユーザー・セキュリティの管理」を参照してください。
-
4.6 現行ユーザーのデータベース・リンクの有効化
現行ユーザーのデータベース・リンクには、データベース間にSSL対応のネットワーク接続が必要です。現行ユーザーのデータベース・リンクを有効にする前に、関係するすべてのデータベースについて、SSLを有効にし、Oracleウォレットを作成してPKI資格証明を取得する必要があります。
次に、Oracle Enterprise Managerを使用し、次の手順に従ってディレクトリのエンタープライズ・ドメイン内のデータベース間で現行ユーザーのデータベース・リンクを有効にします。
4.7 エンタープライズ・ユーザー・セキュリティのトラブルシューティング
トピック:
4.7.1 パスワード認証エンタープライズ・ユーザーに関するORA-nエラー
パスワード認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-nエラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。
- ORA-1017: ユーザー名/パスワードが無効です。ログインは拒否されました。
-
原因: エラー・メッセージを参照してください。
- ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。
-
原因: データベースとディレクトリ間の接続に問題があることを示しています。
- ORA-28043: DB-OID接続のバインド資格証明が無効です
-
原因: データベースのディレクトリ・パスワードがディレクトリと同期していません。
- ORA-28271: LDAPディレクトリ・サービスのユーザー・エントリを読み込む権限がありません。
-
原因: エラー・メッセージを参照してください。
- ORA-28272: ドメイン・ポリシーがパスワード・ベースのGLOBALユーザー認証を制限します。
-
原因: エラー・メッセージを参照してください。
- ORA-28273: LDAP識別名へのユーザー・ニックネームのマッピングが存在しません。
-
原因: エラー・メッセージを参照してください。
- ORA-28274: ユーザー・ニックネームに対応するORACLEパスワード属性が存在しません。
-
原因: エラー・メッセージを参照してください。
- ORA-28275: LDAP識別名へのユーザー・ニックネームのマッピングが複数存在します。
-
原因: ユーザー検索ベース内のディレクトリに、ユーザーのログイン名がデータベース接続時に指定されたログイン名と一致する複数のユーザーDNがあります。
- ORA-28277: グローバル・ユーザーのパスワードでの認証中に、LDAP検索が失敗しました。
-
原因: エラー・メッセージを参照してください。
- ORA-28278: パスワード・ベースのGLOBALユーザーのためのドメイン・ポリシーが登録されていません。
-
原因: データベースが、必要なエンタープライズ・ドメイン情報を読み取ることができません。
- ORA-28862: SSL接続に失敗しました。
-
原因: エラー・メッセージを参照してください。
4.7.2 Kerberos認証エンタープライズ・ユーザーに関するORA-nエラー
Kerberos認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-nエラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。
- ORA-1017: ユーザー名/パスワードが無効です。ログインは拒否されました。
-
原因: エラー・メッセージを参照してください。
- ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。
-
原因: データベースとディレクトリ間の接続に問題があることを示しています。
- ORA-28271: LDAPディレクトリ・サービスのユーザー・エントリを読み込む権限がありません。
-
原因: エラー・メッセージを参照してください。
- ORA-28292: Kerberosベースの認証のためのドメイン・ポリシーが登録されていません
-
原因: エラー・メッセージを参照してください。
- ORA-28290: 同じKerberosプリンシパル名に複数のエントリが見つかりました
-
原因: このユーザーのKerberosプリンシパル名が、このユーザーを含むユーザー検索ベース内で一意ではありません。
- ORA-28291: Kerberosプリンシパル値が見つかりません。
-
原因: エラー・メッセージを参照してください。
- ORA-28293: 一致するKerberosプリンシパルが、どのユーザー・エントリにも見つかりません
-
原因: エラー・メッセージを参照してください。
- ORA-28300: LDAPディレクトリ・サービスのユーザー・エントリを読み込む権限がありません。
-
原因: エラー・メッセージを参照してください。
- ORA-28302: LDAPディレクトリ・サービスにユーザーが存在しません。
-
原因: エラー・メッセージを参照してください。
4.7.3 SSL認証エンタープライズ・ユーザーに関するORA-nエラー
SSL認証を使用したエンタープライズ・ユーザー・セキュリティの使用時にORA-nエラーを受け取った場合は、次の項でエラーを検索して適切な処置を行ってください。
4.7.4 グローバル・ロールがない場合のチェックリスト
エンタープライズ・ユーザーはデータベースに接続できるが、select * from session_roles
でグローバル・ロールが戻されない場合には、次の点を確認します。