ヘッダーをスキップ
Oracle Database Advanced Security管理者ガイド
11g リリース1(11.1)
E05729-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 Kerberos認証の構成

この章では、Kerberos認証を使用できるようにOracle DatabaseのOracle Advanced Securityを構成する方法、およびKerberosを構成してOracle Databaseユーザーを認証する方法について説明します。この章の項目は次のとおりです。


関連項目:


KerberosユーザーをKerberos認証のエンタープライズ・ユーザーに移行する方法は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。

7.1 Kerberos認証を使用可能にする

Kerberos認証を使用可能にする手順は次のとおりです。

7.1.1 タスク1: Kerberosのインストール

認証サーバーとして動作するシステムにKerberosをインストールします。


関連項目:


Kerberosの構築とインストールに関する注意事項は、Kerberosバージョン5ソース配布に同梱されています。


注意:


32ビット・バージョンのOracle Databaseからアップグレードした後で初めてKerberos認証アダプタを使用すると、エラー・メッセージORA-01637: パケット受信に失敗しました。が発行されます。

回避策: 64ビット・バージョンのデータベースにアップグレードした後、Kerberos外部認証方式を使用する前にコンピュータ上の/usr/tmp/oracle_service_name.RCファイルを検索して削除します。


7.1.2 タスク2: Oracle Databaseサーバーに対するサービス・プリンシパルの構成

Kerberosを使用して自己を認証するクライアントの識別情報をOracle Databaseサーバーで検証できるようにするには、Oracle Databaseのサービス・プリンシパルを作成する必要があります。

プリンシパルの名前を次の書式で指定する必要があります。

kservice/kinstance@REALM

サービス・プリンシパルの各フィールドには、次の値を指定します。

サービス・プリンシパル・フィールド 説明
kservice Oracleサービスを表す、大文字と小文字を区別する文字列。データベース・サービス名と同じでもかまいません。
kinstance 通常は、Oracle Databaseが稼働しているシステムの完全修飾名。
REALM データベース・サーバーのドメイン名。REALMは常に大文字である必要があり、一般的に、DNSドメイン名が指定されます。


注意:


この項で説明するユーティリティ名は、実行可能プログラムです。ただし、Kerberosユーザー名krbuserとレルムSOMECO.COMは単なる例です。

たとえば、kserviceがoracleで、Oracle Databaseが稼働しているシステムの完全修飾名がdbserver.someco.com、レルムがSOMECO.COMとします。この場合、プリンシパル名は次のようになります。

oracle/dbserver.someco.com@SOMECO.COM

通常は、DNSドメイン名をレルムの名前として使用します。サービス・プリンシパルを作成するには、kadmin.localを実行します。UNIXの場合は、次の構文を使用し、rootユーザーでこのコマンドを入力します。

# cd /kerberos-install-directory/sbin
# ./kadmin.local

oracle/dbserver.someco.com@SOMECO.COMというプリンシパルを、Kerberosが認識するサーバー・プリンシパルのリストに追加するには、次のように入力します。

kadmin.local:addprinc -randkey oracle/dbserver.someco.com@SOMECO.COM

7.1.3 タスク3: Kerberosからのサービス表の抽出

Kerberosからサービス表を抽出し、そのサービス表をOracle Databaseサーバー/Kerberosクライアント・システムにコピーします。

たとえば、次の手順を使用してdbserver.someco.comのサービス表を抽出します。

  1. 次のコマンドを入力して、サービス表を抽出します。

    kadmin.local:  ktadd -k /tmp/keytab oracle/dbserver.someco.com
    
    Entry for principal oracle/dbserver.someco.com with kvno 2, encryption DES-CBC-CRC added to the keytab WRFILE: 'WRFILE:/tmp/keytab
    
    kadmin.local:  exit
    
    oklist -k -t /tmp/keytab
    
  2. サービス表を抽出した後、サービス表に古いエントリと新しいエントリがあることを確認します。新しいエントリがサービス表内にない場合、または追加する必要がある場合は、kadmin.localを使用してエントリを追加します。

    ktaddを使用するときにレルムを入力しないと、kadmin.localが現行ホストのレルムを使用して、それを手順1のようにコマンド出力に表示します。

  3. Kerberosサービス表がKerberosクライアント・システムと同じシステム上にある場合は、それを移動するのみでかまいません。サービス表がKerberosクライアントと異なるシステム上にある場合は、FTPなどのプログラムを使用してファイルを転送する必要があります。FTPを使用する場合は、ファイルをバイナリ・モードで転送します。

    次に、UNIXプラットフォームでのサービス表の移動方法の例を示します。

    # mv /tmp/keytab /etc/v5srvtab
    

    サービス・ファイルのデフォルト名は、/etc/v5srvtabです。

  4. Oracle Databaseサーバー・プログラム(実行ファイル)の所有者がサービス表(前述の例では/etc/v5srvtab)を読み取ることができるか確認します。このためには、ファイル所有者をOracleユーザーに設定するか、ファイルをOracleが属しているグループに対して読取り可能にします。


    注意:

    ファイルをすべてのユーザーに対して読取り可能にしないでください。セキュリティが侵害されるおそれがあります。


7.1.4 タスク4: Oracle DatabaseサーバーとOracleクライアントのインストール

Oracle Databaseサーバーとクライアント・ソフトウェアをインストールします。


関連項目:


オペレーティング・システム固有のOracle Databaseインストレーション・ガイド

7.1.5 タスク5: Oracle Net ServicesとOracle Advanced Securityのインストール

Oracle DatabaseサーバーとOracleクライアント・システムに、Oracle Net ServicesとOracle Advanced Securityをインストールします。


関連項目:


オペレーティング・システム固有のOracle Databaseインストレーション・ガイド

7.1.6 タスク6: Oracle Net ServicesとOracle Databaseの構成

Oracle DatabaseサーバーとクライアントでOracle Net Servicesを構成します。


関連項目:

  • オペレーティング・システム固有のOracle Databaseインストレーション・ガイド

  • 『Oracle Database Net Services管理者ガイド』


7.1.7 タスク7: Kerberos認証の構成

次の作業を実行して、Oracle Databaseサーバーおよびクライアントのsqlnet.oraファイルに必要なパラメータを設定します。

7.1.7.1 手順1: クライアントとデータベース・サーバーでのKerberosの構成

クライアントおよびデータベース・サーバーにKerberos認証サービス・パラメータを構成するには、Oracle Net Managerを使用して次の手順を実行します(「Oracle Net Managerの起動」を参照してください)。

  1. Oracle Advanced Securityプロファイルにナビゲートします。(「Oracle Advanced Securityプロファイルへのナビゲート」を参照)。「Oracle Advanced Security」ウィンドウが表示されます(図7-1)。

図7-1 「Oracle Advanced Security」ウィンドウの「認証」タブ(Kerberos)

図7-1の説明は次にあります。
「図7-1 「Oracle Advanced Security」ウィンドウの「認証」タブ(Kerberos)」の説明

  1. 認証」タブをクリックします。

  2. 「使用可能なメソッド」リストから「KERBEROS5」を選択します。

  3. 右矢印(>)をクリックして、「KERBEROS5」を「選択メソッド」リストに移動します。

  4. 選択したメソッドを使用する順に並べます。「選択メソッド」リストで方式を選択し、「上へ」または「下へ」をクリックして並べ替えます。たとえば、最初に使用するサービスをKERBEROS5にするには、リストの先頭に移動します。

  5. その他のパラメータ」タブをクリックします(図7-2)。

図7-2 Oracle Advanced Securityの「その他のパラメータ」ウィンドウ(Kerberos)

図7-2の説明は次にあります。
「図7-2 Oracle Advanced Securityの「その他のパラメータ」ウィンドウ(Kerberos)」の説明

  1. 「認証サービス」リストから「KERBEROS(V5)」を選択します。

  2. サービス」フィールドに「Kerberos」と入力します。このフィールドは、Kerberosのサービス・チケットを取得するためにOracle Databaseが使用するサービスの名前を定義します。このフィールドに値を指定すると、他のフィールドに入力できるようになります。

  3. オプションとして、次のフィールドの値を入力します。

    • 「資格証明キャッシュ・ファイル」

    • 「構成ファイル」

    • 「レルム変換ファイル」

    • 「キー表」

    • 「時間誤差」


      関連項目:


      構成するフィールドとパラメータの詳細は、Oracle Net Managerのオンライン・ヘルプおよび「手順3: sqlnet.oraパラメータの設定(オプション)」を参照してください。

  4. ファイル」→「ネットワーク構成の保存」を選択します。

    sqlnet.oraファイルが更新され、次のエントリが追加されます。

    SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5)
    SQLNET.AUTHENTICATION_KERBEROS5_SERVICE=kservice
    

7.1.7.2 手順2: 初期化パラメータの設定

Kerberosユーザー名には長い名前を使用できますが、Oracleユーザー名は30字に制限されているため、次に示すように初期化パラメータ・ファイルのOS_AUTHENT_PREFIXの値をNULL値に設定することをお薦めします。

OS_AUTHENT_PREFIX=""

このパラメータをNULLに設定すると、デフォルト値のOPS$が上書きされます。


注意:


Oracle Database 11g リリース1(11.1)では、30文字を超えるKerberosユーザー名を持つ外部データベース・ユーザーを作成できます。詳細は、「タスク9: 外部認証されたOracleユーザーの作成」を参照してください。

7.1.7.3 手順3: sqlnet.oraパラメータの設定(オプション)

必須パラメータの他に、sqlnet.oraファイルの次のオプション・パラメータをクライアントおよびOracle Databaseサーバーで設定できます。

属性 説明
パラメータ: SQLNET.KERBEROS5_CC_NAME=pathname_to_credentials_cache_file
説明: Kerberos資格証明キャッシュ(CC)ファイルの完全パス名を指定します。デフォルト値はオペレーティング・システムによって異なります。UNIXでは、パス名が/tmp/krb5cc_useridとなります。

SQLNET.KERBEROS5_CC_NAMEの値は、次の形式を使用して指定できます。

  • SQLNET.KERBEROS5_CC_NAME=complete_path_to_cc_file

    例:

    SQLNET.KERBEROS5_CC_NAME=/tmp/kcache

    SQLNET.KERBEROS5_CC_NAME=D:¥tmp¥kcache

  • SQLNET.KERBEROS5_CC_NAME=FILE:complete_path_to_cc_file

    例:

    SQLNET.KERBEROS5_CC_NAME=FILE:/tmp/kcache

  • SQLNET.KERBEROS5_CC_NAME=OSMSFT:

    Windowsを実行し、Microsoft KDCを使用している場合は、この値を使用します。

このパラメータは環境変数KRB5CCNAMEを使用して設定することもできますが、sqlnet.oraファイルで設定する値が、環境変数KRB5CCNAMEで設定する値より優先されます。

例: SQLNET.KERBEROS5_CC_NAME=/usr/tmp/krbcache
パラメータ: SQLNET.KERBEROS5_CLOCKSKEW=number_of_seconds_accepted_as_network_delay
説明: このパラメータは、Kerberos資格証明の有効期限が切れるまでの時間を秒数で指定します。資格証明がクライアントまたはデータベース・サーバーによって実際に受け取られるときに、このパラメータが使用されます。また、再生攻撃を受けないように資格証明を格納する必要があるかどうかをOracle Databaseサーバーが判断するときも、このパラメータが使用されます。デフォルトは300秒です。
例: SQLNET.KERBEROS5_CLOCKSKEW=1200
パラメータ: SQLNET.KERBEROS5_CONF=pathname_to_Kerberos_configuration_file
説明: このパラメータは、Kerberos構成ファイルの完全パス名を指定します。構成ファイルにはデフォルトのKDC(Key Distribution Center)のレルムが含まれており、レルムをKDCホストにマップします。デフォルトはオペレーティング・システムによって異なります。UNIXでは、/krb5/krb.confがデフォルトです。
例: SQLNET.KERBEROS5_CONF=/krb/krb.conf
パラメータ: SQLNET.KERBEROS5_CONF_MIT=[TRUE|FALSE]
説明: このパラメータは、新しいMIT Kerberos構成書式を使用するかどうかを指定します。値をTRUEに設定すると、新しい構成書式ルールに基づいてそのファイルが解析されます。値をFALSEに設定すると、デフォルト(非MIT)構成が使用されます。デフォルトはFALSEです。
例: SQLNET.KERBEROS5_CONF_MIT=False
パラメータ: SQLNET.KERBEROS5_KEYTAB=pathname_to_Kerberos_principal/key_table
説明: このパラメータは、Kerberosプリンシパル/秘密鍵マッピング・ファイルの完全パス名を指定します。Oracle Databaseサーバーが鍵を抽出し、クライアントから送信される認証情報を復号化するときに、このパラメータが使用されます。デフォルトはオペレーティング・システムによって異なります。UNIXでは、デフォルトは/etc/v5srvtabです。
例: SQLNET.KERBEROS5_KEYTAB=/etc/v5srvtab
パラメータ: SQLNET.KERBEROS5_REALMS=pathname_to_Kerberos_realm_translation_file
説明: このパラメータは、Kerberosレルム変換ファイルの完全パス名を指定します。変換ファイルを使用して、ホスト名またはドメイン名をレルムにマップします。デフォルトはオペレーティング・システムによって異なります。UNIXでは、デフォルトは/etc/krb.realmsです。
例: SQLNET.KERBEROS5_REALMS=/krb5/krb.realms

資格証明キャッシュ・タイプ4形式のサポート

Oracle Databaseでは、資格証明キャッシュ・タイプ4形式をサポートおよび認識できるようになりました。この機能は、新しいバージョンのMIT Kerberos 5(1.3.x以上)ユーティリティを使用する環境で役立ちます。

この機能を使用するには、sqlnet.oraファイルに次のパラメータを設定する必要があります。

SQLNET.KERBEROS5_CONF_MIT = TRUE

Kerberos構成ファイル(krb5.conf)は、次のように設定する必要があります。

...
[libdefaults]
...
kdc_timesync = 1
ccache_type = 4

7.1.8 タスク8: Kerberosユーザーの作成

Kerberosで認証できるOracleユーザーを作成するには、管理ツールがインストールされているKerberos認証サーバー上で次の作業を実行します。レルムはすでに存在している必要があります。


注意:


この項で説明するユーティリティ名は、実行可能プログラムです。ただし、Kerberosユーザー名krbuserとレルムSOMECO.COMは単なる例にすぎません。システムによって異なる場合があります。

/krb5/admin/kadmin.localをrootユーザーで実行して、krbuserなどの新しいKerberosユーザーを作成します。

次に示す例は、UNIXの場合です。

# ./kadmin.local
kadmin.local: addprinc krbuser
Enter password for principal: "krbuser@SOMECO.COM": (password does not display)
Re-enter password for principal: "krbuser@SOMECO.COM": (password does not display)
kadmin.local: exit

7.1.9 タスク9: 外部認証されたOracleユーザーの作成

SQL*PlusをOracle Databaseサーバー上で実行して、Kerberosユーザーに対応するOracleユーザーを作成します。次の例では、OS_AUTHENT_PREFIXはNULL("")に設定されます。Oracleユーザー名は、次の例のように大文字で入力し、二重引用符で囲む必要があります。

SQL> CONNECT / AS SYSDBA;
SQL> CREATE USER "KRBUSER@SOMECO.COM" IDENTIFIED EXTERNALLY;
SQL> GRANT CREATE SESSION TO "KRBUSER@SOMECO.COM";

ユーザーのKerberosプリンシパル名が30文字を超える場合は、次のようにユーザーを作成します。

SQL> CREATE USER db_user_name IDENTIFIED EXTERNALLY AS 'kerberos_principal_name'

例:

SQL> CREATE USER KRBUSER IDENTIFIED EXTERNALLY AS 'KerberosUser@SOMEORGANIZATION.COM';

注意:


データベース管理者は、2つのデータベース・ユーザーが同じKerberosプリンシパル名で外部的に識別されていないことを確認する必要があります。

7.1.10 タスク10: Kerberos/Oracleユーザーの初期チケットの取得

データベースに接続する前に、Key Distribution Center(KDC)に初期チケットを要求する必要があります。要求するには、クライアントに対して次を実行します。

% okinit username

データベースに接続するときに、データベース・リンクの後に次のような参照が続く場合は、転送可能フラグ(-f)オプションを使用する必要があります。

sqlplus /@oracle

okinit -fを実行すると、データベース・リンクで使用できる資格証明が使用可能になります。Oracleクライアントで次のコマンドを実行します。

% okinit -f
Password for krbuser@SOMECO.COM:password

7.2 Kerberos認証アダプタで使用するユーティリティ

Oracle Kerberos認証アダプタとともに3つのユーティリティが提供されています。これらのユーティリティは、Oracle Kerberos認証サポートがインストールされたOracleクライアントでの使用を意図したものです。特定のタスクで、次のユーティリティを使用します。

7.2.1 okinitユーティリティを使用した初期チケットの取得

okinitユーティリティを使用してKerberosチケットを取得しキャッシュに書き込みます。通常は、このユーティリティを使用してチケット認可チケットを取得し、ユーザーが入力したパスワードを使用してKey Distribution Center(KDC)から送られる資格証明を復号化します。チケット認可チケットはユーザーの資格証明キャッシュに格納されます。

okinitで使用できるオプションを表7-1にリストします。

表7-1 okinitユーティリティのオプション

オプション 説明

-f

転送可能なチケット認可チケットを要求します。データベース・リンクをたどる場合は、このオプションが必要です。

-l

チケット認可チケットを含むすべてのチケットの存続期間を指定します。デフォルトで、チケット認可チケットの有効期間は8時間ですが、それより長い時間または短い時間も指定できます。KDCはこのオプションを無視したり、各サイトで指定できる時間を制限することができます。次の例に示すように、存続期間は、数字と、w(週)、d(日)、h(時間)、m(分)、s(秒)の修飾文字で構成される文字列です。

okinit -l 2wld6h20m30s

この例では、チケット認可チケットの存続期間は2週間と1日と6時間20分30秒です。

-c

代替資格証明キャッシュを指定します。UNIXでは、デフォルトが/tmp/krb5cc_uidとなります。sqlnet.oraファイルでSQLNET.KERBEROS5_CC_NAMEパラメータを使用して、代替資格証明キャッシュを指定することもできます。

-e

使用するKerberos暗号化タイプを表す番号を指定します。

このオプションは、セッションに対して特定のKerberos暗号化タイプの鍵を要求する場合に使用できます。複数の暗号化タイプを指定すると、KDCでは、一般的で最も強力な暗号化タイプがリストから選択されます。

使用可能な値は次のとおりです。

  • 1: DES-CBC-CRC

  • 3: DES-CBC-MD5

  • 16: DES3-CBC-SHA1

  • 18: AES256-CTS

  • 23: RC4-HMAC

次の例は、DES-CBC-CRCおよびDES3-CBC-SHA1暗号化タイプを要求します。

okinit -e 1 -e 16 krbuser@REALM

複数の暗号化タイプを要求するには、このオプションを繰り返し指定します。

-?

コマンドライン・オプションのリストを表示します。


7.2.2 oklistユーティリティを使用した資格証明の表示

oklistユーティリティを実行すると、所有しているチケットのリストを表示できます。表7-2に、使用できるoklistのオプションをリストします。

表7-2 oklistユーティリティのオプション

オプション 説明

-f

資格証明のフラグを表示します。表示されるフラグは次のとおりです。

  • I: 資格証明がチケット認可チケットである

  • F: 資格証明が転送可能である

  • f: 資格証明が転送済である

-c

代替資格証明キャッシュを指定します。UNIXでは、デフォルトが/tmp/krb5cc_uidとなります。sqlnet.oraファイルでSQLNET.KERBEROS5_CC_NAMEパラメータを使用して、代替資格証明キャッシュを指定することもできます。

-k

UNIX上のサービス表のエントリ(デフォルト/etc/v5srvtab)をリストします。sqlnet.oraファイルのSQLNET.KERBEROS5_KEYTABパラメータを使用して、代替サービス表を指定することもできます。


このフラグ表示オプション(-f)によって、次のような追加情報が表示されます。

% oklist -f
27-Jul-1999 21:57:51   28-Jul-1999 05:58:14
krbtgt/SOMECO.COM@SOMECO.COM
Flags: FI

7.2.3 okdstryユーティリティを使用したキャッシュ・ファイルからの資格証明の削除

okdstryユーティリティを使用して、次のように資格証明キャッシュ・ファイルから資格証明を削除します。

$ okdstry -f

-fコマンド・オプションによって、代替資格証明キャッシュを指定できます。UNIXでは、デフォルトが/tmp/krb5cc_uidとなります。sqlnet.oraファイルでSQLNET.KRB5_CC_NAMEパラメータを使用して、代替資格証明キャッシュを指定することもできます。

7.2.4 Kerberosによって認証されたOracle Databaseサーバーへの接続

これで、ユーザー名またはパスワードを使用せずにOracle Databaseサーバーに接続できます。次のようなコマンドを入力します。

$ sqlplus /@net_service_name

net_service_nameはOracle Net Servicesのネット・サービス名です。例:

$ sqlplus /@oracle_dbname

関連項目:


外部認証の詳細は、第1章「Oracle Advanced Securityの概要」および『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。

7.3 Windows 2000ドメイン・コントローラKDCとの相互運用の構成

MIT Kerberosに準拠しているOracle Advanced Securityは、Windows 2000ドメイン・コントローラ上で、Kerberos Key Distribution Center(KDC)が発行するチケットを相互運用することによって、Oracle DatabaseでのKerberos認証を実現します。Windows 2000ドメイン・コントローラKDCを使用してKerberos認証を構成するには、次のタスクを実行します。

7.3.1 タスク1: Windows 2000ドメイン・コントローラKDCと相互運用するためのOracle Kerberosクライアントの構成

Oracle Kerberosクライアントで、次の手順を実行する必要があります。

7.3.1.1 手順1: Windows 2000ドメイン・コントローラKDCを使用するためのクライアントKerberos構成ファイルの作成

Windows 2000ドメイン・コントローラをKerberos KDCとして参照するように、次のKerberosクライアント構成ファイルを作成します。次の例は、Windows 2000ドメイン・コントローラがノード名sales3854.us.acme.com上で実行されていることを想定しています。

  • krb.confファイル

    例:

    SALES3854.US.ACME.COM
    SALES3854.US.ACME.COM sales3854.us.acme.com admin server
    
  • krb5.confファイル

    例:

    [libdefaults]
    default_realm=SALES.US.ACME.COM
    [realms]
    SALES.US.ACME.COM= {
    
kdc=sales3854.us.acme.com:88
}
[domain_realm]
.us.acme.com=SALES.US.ACME.COM
  • krb5.realmsファイル

    例:

    us.acme.com SALES.US.ACME.COM
    

7.3.1.2 手順2: sqlnet.oraファイルでのOracle構成パラメータの指定

Windows 2000ドメイン・コントローラKDCと相互運用するようにOracleクライアントを構成するには、「手順1: クライアントとデータベース・サーバーでのKerberosの構成」にリストされているものと同じsqlnet.oraファイルのパラメータを使用します。

クライアントの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)

注意:


Windows 2000オペレーティング・システムは、MIT Kerberosバージョン5に基づくセキュリティ・サービスとの間でのみ、相互運用を実施するように設計されているため、SQLNET.KERBEROS5_CONF_MITパラメータがTRUEに設定されていることを確認してください。

7.3.1.3 手順3: リスニング・ポート番号の指定

Windows 2000ドメイン・コントローラKDCは、UDP/TCPポート88でリスニングします。kerberos5のシステム・ファイル・エントリが、次のようにUDP/TCPポート88に設定されていることを確認してください。

UNIX環境では、/etc/servicesファイルのkerberos5エントリが88に設定されていることを確認してください。

7.3.2 タスク2: Oracleクライアントと相互運用するためのWindows 2000ドメイン・コントローラKDCの構成

Windows 2000ドメイン・コントローラで、次の手順を実行する必要があります。


関連項目:


Active Directoryでユーザーを作成する方法は、Microsoft社のマニュアルを参照してください。

7.3.2.1 手順1: ユーザーの作成

Microsoft Active DirectoryでOracleクライアントの新規ユーザーを作成します。

7.3.2.2 手順2: Oracle Databaseプリンシパルの作成

  1. Microsoft Active DirectoryでOracle Databaseの新規ユーザーを作成します。

    たとえば、Oracle Databaseがホストsales3854.us.acme.com上で実行されている場合は、Active Directoryでユーザー名sales3854.us.acme.comとパスワードoracleを使用してユーザーを作成します。


    注意:


    Active Directoryでは、ユーザーをhost/hostname.dns.comoracle/sales3854.us.acme.comなど)で作成しないでください。Microsoft社のKDCは、MIT KDCのようにマルチパートの名前をサポートしていません。MIT KDCは、すべてのプリンシパルをユーザー名として扱うため、マルチパートの名前をサービス・プリンシパルに使用できます。ただし、Microsoft社のKDCでは使用できません。

  1. Ktpassコマンドライン・ユーティリティで次の構文を使用して、キータブ・ファイルを抽出します。

    Ktpass -princ service/hostname@NT-DNS-REALM-NAME -mapuser account -pass password -out keytab.file
    

    次に、前述の手順で作成したデータベース・ユーザーを使用したKtpassの使用例を示します。

    C:> Ktpass -princ oracle/sales3854.us.acme.com@SALES.US.COM -mapuser sales3854 -pass oracle -out C:\temp\v5srvtab
    

    このユーティリティはWindows 2000サポート・ツールの一部で、Windows 2000配布メディアの¥support¥reskit¥netmgmt¥securityフォルダにあります。

  2. 抽出したキータブ・ファイルをOracle Databaseがインストールされているホスト・コンピュータにコピーします。

    たとえば、前述の手順で作成されたキータブを/krb5/v5svrtabにコピーします。


    関連項目:


    Windows 2000とKerberos 5との相互運用の詳細は、次のURLを参照してください。
    http://technet.microsoft.com/hi-in/windowsserver/2000/bb735396(en-us).aspx
    

7.3.3 タスク3: Windows 2000ドメイン・コントローラKDCと相互運用するためのOracle Databaseの構成

Oracle Databaseがインストールされているホスト・コンピュータで、次の手順を実行する必要があります。

7.3.3.1 手順1: 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)

注意:


Windows 2000オペレーティング・システムは、MIT Kerberosバージョン5に基づくセキュリティ・サービスとの間でのみ、相互運用を実施するように設計されているため、SQLNET.KERBEROS5_CONF_MITパラメータがTRUEに設定されていることを確認してください。

7.3.3.2 手順2: 外部認証されたOracleユーザーの作成

「タスク9: 外部認証されたOracleユーザーの作成」のタスク情報に従って、外部認証されたOracleユーザーを作成します。ユーザー名はすべて大文字で作成されます。たとえば、ORAKRB@SALES.US.ACME.COMとなります。


関連項目:


Oracle Net Managerを使用してsqlnet.oraファイルのパラメータを設定する方法は、「タスク7: Kerberos認証の構成」を参照してください。

7.3.4 タスク4: Kerberos/Oracleユーザーの初期チケットの取得

クライアントは、データベースに接続する前に、初期チケットを要求する必要があります。初期チケットを要求するには、「タスク10: Kerberos/Oracleユーザーの初期チケットの取得」のタスク情報に従います。

7.4 トラブルシューティング

この項では、構成に関する一般的な問題とその解決メソッドについて説明します。