17 Kerberos認証の構成
Kerberosは信頼できるサード・パーティ認証システムであり、共有秘密鍵に基づき、サード・パーティがセキュアであることを前提とします。
- Kerberos認証の有効化
Oracle Databaseに対してKerberos認証を有効にするには、これをインストールしてから一連の構成ステップに従います。 - Kerberos認証アダプタのユーティリティ
Oracle Kerberos認証アダプタのユーティリティは、Oracle Kerberos認証サポートがインストールされたOracleクライアントで使用するように設計されています。 - Kerberosによって認証されたOracleデータベース・サーバーへの接続
Kerberosの構成後は、ユーザー名やパスワードを使用しないでOracleデータベース・サーバーに接続できます。 - Windows 2008ドメイン・コントローラKDCとの相互運用性の構成
Oracle DatabaseをMicrosoft Windows 2008ドメイン・コントローラのキー配布センター(KDC)と相互作用するように構成できます。 - Kerberos認証フォールバック動作の構成
Kerberos認証の障害に備え、フォールバック動作(パスワードベースの認証)を構成できます。 - Oracle Kerberos認証の構成のトラブルシューティング
一般的なKerberos構成の問題に対するガイドラインを示します。
親トピック: 厳密認証の管理
17.1 Kerberos認証の有効化
Oracle Databaseに対してKerberos認証を有効にするには、これをインストールしてから一連の構成ステップに従います。
- ステップ1: Kerberosのインストール
Kerberosバージョン5をインストールしてください。 - ステップ2: Oracleデータベース・サーバーに対するサービス・プリンシパルの構成
Kerberosを使用して自己を認証するクライアントの識別情報をOracleデータベース・サーバーで検証できるようにするには、Oracle Databaseのサービス・プリンシパルを作成する必要があります。 - ステップ3: Kerberosからのサービス・キー表の抽出
次に、Kerberosからサービス・キー表を抽出し、Oracleデータベース・サーバー/Kerberosクライアント・システムにコピーします。 - ステップ4: Oracleデータベース・サーバーとOracleクライアントのインストール
Kerberosからサービス・キー表を抽出した後、Oracleデータベース・サーバーおよびOracleクライアントをインストールします。 - ステップ5: Oracle Net ServicesとOracle Databaseの構成
Oracleデータベース・サーバーとクライアントのインストール後、サーバーとクライアントでOracle Net Servicesを構成できます。 - ステップ6: Kerberos認証の構成
Oracleデータベース・サーバーおよびクライアントのsqlnet.ora
ファイルで必須パラメータを設定する必要があります。 - ステップ7: Kerberosユーザーの作成
管理ツールがインストールされているKerberos認証サーバーで、Kerberosユーザーを作成する必要があります。 - ステップ8: 外部認証されたOracleユーザーの作成
次に、外部認証されるOracleユーザーを作成します。 - ステップ9: Kerberos/Oracleユーザーの初期チケットの取得
データベースに接続するには、Key Distribution Center (KDC)に初期チケットを要求する必要があります。
関連項目:
KerberosユーザーをKerberos認証のエンタープライズ・ユーザーに移行する方法の詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。親トピック: Kerberos認証の構成
17.1.1 ステップ1: Kerberosのインストール
Kerberosバージョン5をインストールしてください。
Kerberosの構築とインストールに関するノートの供給元配布資料に詳細が記載されています。Kerberosのインストール後、POWERシステム(64ビット)でIBM AIXを使用する場合、Kerboros 5が推奨の認証方式であることを確認する必要があります。
親トピック: Kerberos認証の有効化
17.1.2 ステップ2: Oracleデータベース・サーバーに対するサービス・プリンシパルの構成
Kerberosを使用して自己を認証するクライアントの識別情報をOracleデータベース・サーバーで検証できるようにするには、Oracle Databaseのサービス・プリンシパルを作成する必要があります。
親トピック: Kerberos認証の有効化
17.1.3 ステップ3: Kerberosからのサービス・キー表の抽出
次に、Kerberosからサービス・キー表を抽出し、Oracleデータベース・サーバー/Kerberosクライアント・システムにコピーします。
dbserver.example.com
のサービス・キー表を抽出するには、次の手順を実行します。
親トピック: Kerberos認証の有効化
17.1.4 ステップ4: Oracleデータベース・サーバーとOracleクライアントのインストール
Kerberosからサービス・キー表を抽出した後、Oracleデータベース・サーバーおよびOracleクライアントをインストールします。
-
Oracleデータベース・サーバーおよびクライアント・ソフトウェアのインストールの詳細は、Oracle Databaseオペレーティング・システムに固有のインストール・ドキュメントを参照してください。
親トピック: Kerberos認証の有効化
17.1.5 ステップ5: Oracle Net ServicesとOracle Databaseの構成
Oracleデータベース・サーバーとクライアントのインストール後、サーバーとクライアントでOracle Net Servicesを構成できます。
-
Oracleデータベース・サーバーおよびクライアントでのOracle Net Servicesの構成の詳細は、次のドキュメントを参照してください。
-
オペレーティング・システム固有のOracle Databaseインストール関連ドキュメント
-
親トピック: Kerberos認証の有効化
17.1.6 ステップ6: Kerberos認証の構成
Oracleデータベース・サーバーおよびクライアントのsqlnet.ora
ファイルで必須パラメータを設定する必要があります。
ノート:
マルチテナント環境では、sqlnet.ora
ファイルの設定はすべてのプラガブル・データベース(PDB)に適用されることに注意してください。ただし、Kerberosを使用する場合は、すべてのPDBを1つのKDCで認証する必要があるという意味ではありません。sqlnet.ora
ファイルおよびKerberos構成ファイルの設定では複数のKDCをサポートできます。
- ステップ6A: クライアントとデータベース・サーバーでのKerberosの構成
最初に、クライアントとデータベース・サーバーでKerberos認証サービス・パラメータを構成する必要があります。 - ステップ6B: 初期化パラメータの設定
次に、OS_AUTHENT_PREFIX
初期化パラメータを設定します。 - ステップ6C: sqlnet.oraパラメータの設定(オプション)
セキュリティを強化するために、必須パラメータに加えて、オプションのsqlnet.ora
パラメータを設定できます。
親トピック: Kerberos認証の有効化
17.1.6.1 ステップ6A: クライアントとデータベース・サーバーでのKerberosの構成
最初に、クライアントとデータベース・サーバーでKerberos認証サービス・パラメータを構成する必要があります。
親トピック: ステップ6: Kerberos認証の構成
17.1.6.2 ステップ6B: 初期化パラメータの設定
次に、OS_AUTHENT_PREFIX
初期化パラメータを設定します。
ノート:
30バイトを超えるKerberosユーザー名を持つ外部データベース・ユーザーを作成できます。詳細は、「ステップ8: 外部認証されたOracleユーザーの作成」を参照してください。
親トピック: ステップ6: Kerberos認証の構成
17.1.6.3 ステップ6C: sqlnet.oraパラメータの設定(オプション)
セキュリティを強化するために、必須パラメータに加えて、オプションのsqlnet.ora
パラメータを設定できます。
-
オプションで、クライアントおよびOracleデータベース・サーバーの両方に、次の表に示すパラメータを設定します。
表17-1 Kerberos固有のsqlnet.oraパラメータ
パラメータ | 説明 |
---|---|
|
Kerberos資格証明キャッシュ(CC)ファイルへの完全パス名を指定します。デフォルト値は、オペレーティング・システムによって異なります。UNIXでは、
このパラメータは 例: SQLNET.KERBEROS5_CC_NAME=/usr/tmp/krbcache |
|
このパラメータは、Kerberos資格証明を期限切れとみなすまでの秒数を指定します。これは、資格証明がクライアントまたはデータベース・サーバーによって実際に受け取られるときに使用されます。また、再生攻撃を受けないように資格証明を格納する必要があるかどうかをOracleデータベース・サーバーが判断するときにも、使用されます。デフォルトは300秒です。 例: SQLNET.KERBEROS5_CLOCKSKEW=1200 |
|
このパラメータは、 構成ファイルのかわりに 例: SQLNET.KERBEROS5_CONF=/krb/krb.conf SQLNET.KERBEROS5_CONF=AUTO_DISCOVER |
|
このパラメータは、Kerberos構成ファイルがシステムによって作成され、クライアントで指定する必要がないことを示します。構成ファイルは、DNS参照を使用してデフォルトのKDCのレルムを取得し、レルムをKDCホストにマッピングします。 例: SQLNET.KERBEROS5_CONF_LOCATION=/krb |
|
このパラメータは、Kerberosプリンシパル/秘密キー・マッピング・ファイルへの完全パス名を指定します。これは、Oracleデータベース・サーバーがキーを抽出し、クライアントから受信する認証情報を複号化するために使用されます。デフォルトは、オペレーティング・システムによって異なります。UNIXでは、 例: SQLNET.KERBEROS5_KEYTAB=/etc/v5srvtab |
|
このパラメータは、Kerberosレルム変換ファイルへの完全パス名を指定します。変換ファイルを使用して、ホスト名またはドメイン名をレルムにマッピングします。デフォルトは、オペレーティング・システムによって異なります。UNIXでは、 例: SQLNET.KERBEROS5_REALMS=/krb5/krb.realms |
親トピック: ステップ6: Kerberos認証の構成
17.1.7 ステップ7: Kerberosユーザーの作成
管理ツールがインストールされているKerberos認証サーバーで、Kerberosユーザーを作成する必要があります。
レルムはすでに存在している必要があります。
ノート:
この項のユーティリティ名は実行可能プログラムです。ただし、Kerberosユーザー名krbuser
およびレルムEXAMPLE.COM
は単なる例です。システムによって異なる場合があります。
-
/krb5/admin/kadmin.local
をrootとして実行して、krbuser
などの新しいKerberosユーザーを作成します。たとえば、UNIX固有のKerberosユーザーを作成するとします。
# /krb5/admin/kadmin.local kadmin.local: addprinc krbuser Enter password for principal: "krbuser@example.com": (password does not display) Re-enter password for principal: "krbuser@example.com": (password does not display) kadmin.local: exit
親トピック: Kerberos認証の有効化
17.1.8 ステップ8: 外部認証されたOracleユーザーの作成
次に、外部認証されるOracleユーザーを作成します。
ノート:
データベース管理者は、2つのデータベース・ユーザーが同じKerberosプリンシパル名で外部から識別されないことを確認する必要があります。
親トピック: Kerberos認証の有効化
17.1.9 ステップ9: Kerberos/Oracleユーザーの初期チケットの取得
データベースに接続するには、Key Distribution Center (KDC)に初期チケットを要求する必要があります。
-
初期チケットを要求するには、クライアントで次のコマンドを実行します。
% okinit username
データベース・リンク間で使用可能な資格証明を有効にするには、
-f
オプションを含めて、プロンプトが表示された場合はKerberosパスワードを指定します。% services/okinit -f Password for krbuser@EXAMPLE.COM:(password does not display)
okinit: Cannot contact any KDC for requested realm
などのエラーが発生した場合は、kerberos 5エントリがあるかどうか/etc/services
ファイルを確認します。例:
kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5
親トピック: Kerberos認証の有効化
17.2 Kerberos認証アダプタのユーティリティ
Oracle Kerberos認証アダプタのユーティリティは、Oracle Kerberos認証サポートがインストールされたOracleクライアントで使用するように設計されています。
- 初期チケットを取得するためのokinitユーティリティ・オプション
okinit
ユーティリティでは、Kerberosチケットを取得し、キャッシュします。 - 資格証明を表示するためのoklistユーティリティ・オプション
oklist
ユーティリティは保持しているチケットのリストを表示します。 - キャッシュ・ファイルから資格証明を削除するためのokdstryユーティリティのオプション
okdstry
(okdestroy
)ユーティリティはキャッシュ・ファイルから資格証明を削除します。 - キー表の作成を自動化するためのokcreateユーティリティのオプション
okcreate
ユーティリティは、KDCまたはサービス・エンドポイントから、キー表の作成を自動化します。
親トピック: Kerberos認証の構成
17.2.1 初期チケットを取得するためのokinitユーティリティ・オプション
okinit
ユーティリティでは、Kerberosチケットを取得し、キャッシュします。
通常は、このユーティリティを使用してチケット認可チケットを取得し、ユーザーが入力したパスワードを使用してkey distribution center (KDC)からの資格証明を復号化します。チケット認可チケットは、ユーザーの資格証明キャッシュに格納されます。
次の表に、okinit
で使用できるオプションを示します。表に示されている機能を使用するには、sqlnet.ora
のSQLNET.KERBEROS5_CONF_MIT
パラメータをTRUE
に設定する必要があります。(SQLNET.KERBEROS5_CONF_MIT
は非推奨ですが、okinit
の下位互換性のため現在も維持されていることに注意してください。)
表17-2 okinitユーティリティのオプション
オプション | 説明 |
---|---|
|
転送可能なチケットまたは転送不可のチケットを要求します。データベース・リンクをたどる場合は、このオプションが必要です。 |
|
チケット認可チケットおよびすべての後続チケットの存続期間を指定します。デフォルトで、チケット認可チケットは8時間有効ですが、存続期間がより短いまたは長い資格証明を指定することもできます。KDCはこのオプションを無視するか、各サイトで指定できる時間を制限することができます。次の例に示すように、存続期間の値は、 okinit -l 2wld6h20m30s この例では、存続期間が2週間と1日6時間20分30秒のチケット認可チケットが要求されます。 |
|
チケットが有効になるまでの遅延の期間を指定します。チケットは、無効なフラグ・セットを使用して発行されます。 |
|
合計存続期間が |
|
プロキシ可能なチケットまたはプロキシ不可のチケットを要求します |
|
ホストのローカル・アドレスに制限されているチケットを要求します |
|
アドレスによって制限されていないチケットを要求します |
|
プリンシパル名を企業名として扱います |
|
キャッシュ内のチケット認可チケットをKDCに渡して検証するよう要求します。チケットが要求された期間内のものであれば、キャッシュは検証済のチケットで置き換えられます。 |
|
チケット認可チケットの更新を要求します |
|
ローカル・ホストのキー表内のキーから取得されたチケットを要求します |
|
匿名処理を要求します |
|
プリンシパル名の正規化を要求し、要求されたものとは異なるクライアント・プリンシパルでKDCが応答できるようにします |
|
キャッシュの名前をキャッシュの場所として指定します。UNIXでは、デフォルトは |
|
すでにチケットが含まれている資格証明キャッシュの名前を指定します。そのチケットを取得する際、チケットを取得した方法に関する情報がキャッシュ内に格納されていれば、同じ情報を使用して、新しい資格証明を取得する方法に影響を及ぼします。 |
|
KDCでサポートされている場合、このキャッシュは要求を保護するために使用され、オフラインの辞書攻撃を防ぎ、追加で事前認証メカニズムを使用することを可能にします。 |
|
事前認証属性と値を指定します。次のいずれかの値を指定します。
|
|
コマンドライン・オプションのリストを表示します。 |
親トピック: Kerberos認証アダプタのユーティリティ
17.2.2 資格証明を表示するためのoklistユーティリティ・オプション
oklist
ユーティリティは保持しているチケットのリストを表示します。
次の表に、oklist
の使用可能なオプションを示します。表に示されている機能を使用するには、sqlnet.ora
のSQLNET.KERBEROS5_CONF_MIT
パラメータをTRUE
に設定する必要があります。(SQLNET.KERBEROS5_CONF_MIT
は非推奨ですが、oklist
の下位互換性のため現在も維持されていることに注意してください。)
表17-3 oklistユーティリティのオプション
オプション | 説明 |
---|---|
|
資格証明のフラグを表示します。関連するフラグは次のとおりです。
|
|
代替資格証明キャッシュを指定します。UNIXでは、デフォルトは |
|
UNIX上のサービス表のエントリ(デフォルト |
|
資格証明キャッシュ内の各資格証明のセッション・キーとチケットの暗号化タイプ、またはキー表ファイル内の各キーの暗号化タイプを表示します。 |
|
キャッシュ・コレクションが使用可能な場合、コレクション内に存在するキャッシュを要約した表を表示します。 |
|
キャッシュ・コレクションが使用可能な場合、コレクション内のすべてのキャッシュの内容を表示します。 |
|
出力を生成せずにユーティリティを実行します。キャッシュが読取り不可または期限切れの場合、ユーティリティはステータス1で終了します。それ以外の場合はステータス0です |
|
資格証明内のアドレスのリストを表示します |
|
逆引きのアドレスのかわりに数字のアドレスを表示します |
|
|
|
キー表ファイル内の各キー表入力の時間入力のタイムスタンプを表示します |
|
キー表ファイル内の各キー表入力の暗号化キーの値を表示します |
|
Kerberosバージョンを表示して終了します。 |
フラグ表示オプション(-f
)によって、次のような追加情報が表示されます。
% oklist -f 04-Aug-2015 21:57:51 28-Aug-2015 05:58:14 krbtgt/EXAMPLE.COM@EXAMPLE.COM Flags: FI
親トピック: Kerberos認証アダプタのユーティリティ
17.2.3 キャッシュ・ファイルから資格証明を削除するためのokdstryユーティリティのオプション
okdstry
(okdestroy
)ユーティリティはキャッシュ・ファイルから資格証明を削除します。
次の表に、okdstry
の使用可能なオプションを示します。表に示されている機能を使用するには、sqlnet.ora
のSQLNET.KERBEROS5_CONF_MIT
パラメータをTRUE
に設定する必要があります。(SQLNET.KERBEROS5_CONF_MIT
は非推奨ですが、okdstry
の下位互換性のため現在も維持されていることに注意してください。)
表17-4 okdstryユーティリティのオプション
オプション | 説明 |
---|---|
|
キャッシュ・コレクションが使用可能な場合、コレクション内のキャッシュをすべて破棄します |
|
音なしで実行します。通常、 |
|
資格証明(チケット)のキャッシュの名前および場所として |
親トピック: Kerberos認証アダプタのユーティリティ
17.2.4 キー表の作成を自動化するためのokcreateユーティリティのオプション
okcreate
ユーティリティは、KDCまたはサービス・エンドポイントから、キー表の作成を自動化します。
次の表に、okcreate
の使用可能なオプションを示します。
表17-5 キー表の作成を自動化するためのokcreateユーティリティのオプション
オプション | 説明 |
---|---|
|
キー表を取得する対象となる、Kerberosを使用するサービスのサービス名を指定します。デフォルトは |
|
キー表を取得する対象となるホストをカンマ区切りのリストで指定するか、ホストのリストが含まれるテキスト・ファイルへのパスを指定します。デフォルトは |
|
結果のキー表を格納するための出力パスを指定します。デフォルトはカレント・ディレクトリです。 このディレクトリは、ルート・ユーザーのみがアクセスできるようにします。キー表ファイルは、ネットワークを介してクリアテキストで送信しないでください。 |
|
KDCに対して操作を実行する場合に使用します。 |
|
Kerberosを使用するサービスに対して操作を実行する場合に使用します。 |
|
KDCのユーザー名を指定します。この設定は、Kerberosを使用するサービス・エンドポイントのみで使用します。
|
|
Kerberosレルムを指定します |
|
Kerberosプリンシパルを指定します |
|
Kerberos問合せを指定します |
|
KDCデータベース名を指定します |
|
作成された新しいキーに使用するsaltリストを指定します |
|
KDCマスター・パスワードを要求するよう指定します |
親トピック: Kerberos認証アダプタのユーティリティ
17.3 Kerberosによって認証されたOracleデータベース・サーバーへの接続
Kerberosの構成後は、ユーザー名やパスワードを使用しないでOracleデータベース・サーバーに接続できます。
-
次の構文を使用して、ユーザー名やパスワードを入力しないでデータベースに接続します。
$ sqlplus /@net_service_name
ここで、net_service_name
は、Oracle Net Servicesのサービス名です。例:
$ sqlplus /@oracle_dbname
関連項目:
外部認証の詳細は、『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。
親トピック: Kerberos認証の構成
17.4 Windows 2008ドメイン・コントローラKDCとの相互運用性の構成
Oracle DatabaseをMicrosoft Windows 2008ドメイン・コントローラのキー配布センター(KDC)と相互作用するように構成できます。
- Windows 2008ドメイン・コントローラKDCとの相互運用性の構成について
Oracle Databaseは、MIT Kerberosに準拠しています。 - ステップ1: Windows 2008ドメイン・コントローラのためのOracle Kerberosクライアントの構成
Microsoft Windows 2008ドメイン・コントローラKDCと相互運用するようにOracle Kerberosクライアントを構成できます。 - ステップ2: OracleクライアントのためのWindows 2008ドメイン・コントローラKDCの構成
次に、Oracleクライアントと相互運用するようにMicrosoft Windows 2008ドメイン・コントローラKDCを構成します。 - ステップ3: Windows 2008ドメイン・コントローラKDCのためのOracleデータベースの構成
Oracleデータベースがインストールされているホスト・コンピュータでドメイン・コントローラに対してOracleデータベースを構成する必要があります。 - ステップ4: Kerberos/Oracleユーザーの初期チケットの取得
クライアントがデータベースに接続するには、初期チケットを要求する必要があります。
親トピック: Kerberos認証の構成
17.4.1 Windows 2008ドメイン・コントローラKDCとの相互運用性の構成について
Oracle Databaseは、MIT Kerberosに準拠しています。
そのためOracle Databaseは、Windows 2008ドメイン・コントローラ上のKerberosキー発行センター(KDC)から発行されたチケットとの相互運用が可能です。このプロセスにより、OracleデータベースでのKerberos認証が可能になります。
17.4.2 ステップ1: Windows 2008ドメイン・コントローラのためのOracle Kerberosクライアントの構成
Windows 2008ドメイン・コントローラKDCと相互運用するようにOracle Kerberosクライアントを構成できます。
- ステップ1A: クライアントKerberos構成ファイルの作成
Windows 2008ドメイン・コントローラをKerberos KDCとして参照する一連のクライアントKerberos構成ファイルを構成する必要があります。 - ステップ1B: sqlnet.oraファイルでのOracle構成パラメータの指定
sqlnet.ora
ファイルにはKerbose 5特有のパラメータがあります。 - ステップ1C: リスニング・ポート番号の指定
Windows 2008ドメイン・コントローラKDCは、UDP/TCPポート88でリスニングします。
17.4.2.1 ステップ1A: クライアントKerberos構成ファイルの作成
Windows 2008ドメイン・コントローラをKerberos KDCとして参照するKerberosクライアント構成ファイルを構成する必要があります。
-
krb.conf
およびkrb5.realms
ファイルを作成します。Oracle Databaseに用意されているデフォルトのkrb5.conf
ファイルは、自分のサイトにあわせて変更する必要があります。krb5.conf
ファイルは、SQLNET.KERBEROS_CONF
パラメータによって示された場所にあります。
たとえば、Windows 2008ドメイン・コントローラがsales3854.us.example.com
という名前のノード上で実行されていることを前提とします。
-
krb.conf
ファイル例:
SALES3854.US.EXAMPLE.COM SALES3854.US.EXAMPLE.COM sales3854.us.example.com admin server
-
krb5.conf
ファイル例:
[libdefaults] default_realm=SALES.US.EXAMPLE.COM [realms] SALES.US.EXAMPLE.COM= { kdc=sales3854.us.example.com:88 } [domain_realm] .us.example.com=SALES.US.EXAMPLE.COM
-
krb5.realms
ファイル例:
us.example.com SALES.US.EXAMPLE.COM
17.4.2.2 ステップ1B: sqlnet.oraファイルでのOracle構成パラメータの指定
sqlnet.ora
ファイルにはKerbose 5特有のパラメータがあります。
Windows 2008ドメイン・コントローラKDCと相互運用するようにOracleクライアントを構成するには、クライアントおよびデータベース・サーバーでKerberos用に使用されるものと同じsqlnet.ora
ファイルのパラメータを使用します。これらのパラメータは、ステップ6A: クライアントとデータベース・サーバーでのKerberosの構成で説明されています。
-
クライアントの
sqlnet.ora
ファイルで次のパラメータを設定します。SQLNET.KERBEROS5_CONF=pathname_to_Kerberos_configuration_file SQLNET.KERBEROS5_CONF_MIT=TRUE SQLNET.AUTHENTICATION_KERBEROS5_SERVICE=Kerberos_service_name SQLNET.AUTHENTICATION_SERVICES=(BEQ,KERBEROS5)
ノート:
-
SQLNET.KERBEROS5_CONF_MIT
パラメータは非推奨となりましたが、okint
、oklist
およびokdstry
ユーティリティの下位互換性のため維持されています。 -
Windows 2008オペレーティング・システムはMIT Kerberosバージョン5に基づくセキュリティ・サービスとのみ相互運用するように設計されているため、
SQLNET.KERBEROS5_CONF_MIT
パラメータがTRUE
に設定されていることを確認してください。
17.4.3 ステップ2: OracleクライアントのためのWindows 2008ドメイン・コントローラKDCの構成
次に、Oracleクライアントと相互運用するようにWindows 2008ドメイン・コントローラKDCを構成します。
- ステップ2A: ユーザー・アカウントの作成
Microsoft Windows 2008ドメイン・コントローラのKDCにユーザー・アカウントを作成する必要があります。 - ステップ2B: Oracleデータベースのプリンシパル・ユーザー・アカウントおよびキー表の作成
ユーザー・アカウントの作成後、Oracle Databaseプリンシパル・ユーザー・アカウントを作成します。
関連項目:
Active Directoryでユーザーを作成する方法の詳細は、Microsoft社のドキュメントを参照してください。
17.4.3.1 ステップ2A: ユーザー・アカウントの作成
Microsoft Windows 2008ドメイン・コントローラのKDCにユーザー・アカウントを作成する必要があります。
-
Windows 2008ドメイン・コントローラで、Microsoft Active DirectoryにOracleクライアントの新規ユーザー・アカウントを作成します。
17.4.3.2 ステップ2B: Oracleデータベースのプリンシパル・ユーザー・アカウントおよびキー表の作成
ユーザー・アカウントの作成後、Oracle Databaseプリンシパル・ユーザー・アカウントを作成します。
okcreate
ユーティリティを使用して、これをプリンシパル・キー表に登録する必要があります。このユーティリティを同じKDCに対して実行して、すべてのサービス・キー表を作成できます(それらを個々に作成せずに済みます)。または、KDCに接続するサービス・エンドポイントからokcreate
を実行し、必要なコマンドを実行してから、結果のキー表をサービス・エンドポイントにコピーすることもできます。
関連項目:
-
Windows 2008とKerberos 5の相互運用性の詳細は、Windows 2000 ServerのKerberos認証を参照してください。
17.4.4 ステップ3: Windows 2008ドメイン・コントローラKDCのためのOracleデータベースの構成
Oracleデータベースがインストールされているホスト・コンピュータでドメイン・コントローラに対してOracleデータベースを構成する必要があります。
- ステップ3A: sqlnet.oraファイルでの構成パラメータの設定
最初に、データベースの構成パラメータを設定する必要があります。 - ステップ3B: 外部認証されたOracleユーザーの作成
構成パラメータの設定後、外部認証されるOracleユーザーを作成します。
17.4.4.1 ステップ3A: sqlnet.oraファイルでの構成パラメータの設定
最初に、データベースの構成パラメータを設定する必要があります。
-
データベース・サーバーの
sqlnet.ora
ファイルで、次のパラメータの値を指定します。SQLNET.KERBEROS5_CONF=pathname_to_Kerberos_configuration_file SQLNET.KERBEROS5_KEYTAB=pathname_to_Kerberos_principal/key_table SQLNET.KERBEROS5_CONF_MIT=TRUE SQLNET.AUTHENTICATION_KERBEROS5_SERVICE=Kerberos_service_name SQLNET.AUTHENTICATION_SERVICES=(BEQ,KERBEROS5)
ノート:
-
SQLNET.KERBEROS5_CONF_MIT
パラメータは非推奨となりましたが、okint
、oklist
およびokdstry
ユーティリティの下位互換性のため維持されています。 -
Windows 2008オペレーティング・システムはMIT Kerberosバージョン5に基づくセキュリティ・サービスとのみ相互運用するように設計されているため、
SQLNET.KERBEROS5_CONF_MIT
パラメータがTRUE
に設定されていることを確認してください。 -
マルチテナント環境では、
sqlnet.ora
ファイルの設定がすべてのPDBに適用されることに注意してください。ただし、このことは、Kerberosを使用する場合にすべてのPDBを1つのKDCで認証する必要があるという意味ではありません。sqlnet.ora
ファイルおよびKerberos構成ファイルの設定は、複数のKDCをサポートできます。
17.4.4.2 ステップ3B: 外部認証されたOracleユーザーの作成
構成パラメータの設定後、外部認証されるOracleユーザーを作成します。
-
ステップ8: 外部認証されたOracleユーザーの作成の手順に従って、外部認証されたOracleユーザーを作成します。
ユーザー名はすべて大文字で作成します(例:
ORAKRB@SALES.US.EXAMPLE.COM
)。
関連項目:
Oracle Net Managerを使用してsqlnet.ora
ファイルのパラメータを設定する方法の詳細は、ステップ6: Kerberos認証の構成を参照してください。
17.4.5 ステップ4: Kerberos/Oracleユーザーの初期チケットの取得
クライアントがデータベースに接続するには、初期チケットを要求する必要があります。
-
初期チケットを要求するには、ステップ9: Kerberos/Oracleユーザーの初期チケットの取得のタスク情報に従います。
ノート:
ユーザーは、Windows固有のキャッシュを使用する場合、okinit
コマンドを使用して初期チケットを明示的に要求する必要はありません。
OracleクライアントがMicrosoft Windows 2008以上で実行されている場合、KerberosチケットはユーザーがWindowsにログインしたときに自動的に取得されます。
関連項目:
システムのKerberosチケット情報を表示するために使用できるKerbtray.exe
ユーティリティの詳細は、Microsoft社のドキュメントを参照してください。
17.5 Kerberos認証フォールバック動作の構成
Kerberos認証の障害に備え、フォールバック動作(パスワードベースの認証)を構成できます。
親トピック: Kerberos認証の構成
17.6 Oracle Kerberos認証の構成のトラブルシューティング
一般的なKerberos構成の問題に対するガイドラインを示します。
一般的な問題は次のとおりです。
-
okinit
を使用してチケット認証チケットを取得できない場合:-
krb.conf
ファイルを調べて、デフォルトのレルムが正しいことを確認します。 -
レルムに対して指定されているホスト上でKDCが実行されていることを確認します。
-
KDCにユーザー・プリンシパルのエントリがあること、およびパスワードが一致していることを確認します。
-
krb.conf
ファイルおよびkrb.realms
ファイルがOracleによって読取り可能であることを確認します。 -
TNS_ADMIN
環境変数が、sqlnet.ora
構成ファイルを含むディレクトリを指していることを確認します。
-
-
初期チケットはあるが接続できない場合:
-
接続を試みた後で、サービス・チケットを確認します。
-
データベース・サーバー側の
sqlnet.ora
ファイルに、Kerberosによって認識されるサービスに対応するサービス名があることを確認します。 -
関連するすべてのシステムでクロックのずれが数分以内に設定されていることを確認するか、
sqlnet.ora
ファイルでSQLNET.KERBEROS5_CLOCKSKEW
パラメータを変更します。
-
-
サービス・チケットはあるが接続できない場合:
-
クライアントおよびデータベース・サーバー上でクロックを確認します。
-
v5srvtab
ファイルが正しい場所にあり、Oracleによって読取り可能であることを確認します。sqlnet.ora
パラメータを忘れずに設定してください。 -
データベース・サーバー側の
sqlnet.ora
ファイルで指定されているサービスに対してv5srvtab
ファイルが生成されていることを確認します。
-
-
問題がないと考えられるにもかかわらず、発行した問合せが失敗する場合:
-
初期チケットが転送可能であることを確認します。
okinit
ユーティリティを実行して初期チケットを取得している必要があります。 -
資格証明の有効期限を確認します。資格証明の有効期限が切れている場合は、接続をクローズし、
okinit
を実行して新しい初期チケットを取得します。
-
親トピック: Kerberos認証の構成