25 Kerberos認証の構成
Kerberosは信頼できるサード・パーティ認証システムであり、共有秘密鍵に基づき、サード・パーティがセキュアであることを前提とします。
- Oracle Database上のKerberosの概要
Kerberosは、OracleがOracle Databaseユーザーの認証に使用するネットワーク認証システムです。 - Kerberos認証の有効化
Oracle Databaseに対してKerberos認証を有効にするには、これをインストールしてから一連の構成ステップに従います。 - Kerberos認証アダプタのユーティリティ
Oracle Kerberos認証アダプタのユーティリティは、Oracle Kerberos認証サポートがインストールされたOracleクライアントで使用するように設計されています。 - Kerberosによって認証されたOracleデータベース・サーバーへの接続
Kerberosの構成後は、ユーザー名やパスワードを使用しないでOracleデータベース・サーバーに接続できます。 - Microsoft Windows Serverドメイン・コントローラKDCとの相互運用性の構成
Oracle DatabaseをMicrosoft Windows Serverドメイン・コントローラのキー配布センター(KDC)と相互作用するように構成できます。 - Kerberos認証フォールバック動作の構成
Kerberos認証の障害に備え、フォールバック動作(パスワードベースの認証)を構成できます。 - Oracle Kerberos認証の構成のトラブルシューティング
一般的なKerberos構成の問題に対するガイドラインを示します。
親トピック: 厳密認証の管理
25.1 Oracle Database上のKerberosの概要
Kerberosは、OracleがOracle Databaseユーザーの認証に使用するネットワーク認証システムです。
- 一般的なOracle Database構成内のKerberosコンポーネント
一般的なKerberos認証構成内のコンポーネントには、クライアント、キー配布センター(KDC)およびOracle Databaseサーバーが含まれます。 - Kerberos構成で使用されるチケット
Oracle Databaseでは、Kerberosクライアント・チケット認可チケット(TGT)とクライアント・サービス・チケットの両方を使用します。 - Kerberosサーバー・キー配布センター
サーバー・キー配布センター(KDC)は、Oracleデータベースと連携するKerberosコンポーネントを調整します。 - Oracle DatabaseとKerberosの連携について
OracleデータベースをKerberosと連携するように構成するには、KerberosサーバーでOracleデータベースに応じたuserPrincipalName
属性とservicePrincipalName
属性を設定する必要があります。 - Kerberos構成で使用されるOracle Databaseのパラメータ
Oracle Databaseには、Kerberos認証を使用するためのクライアント・パラメータとサーバー・パラメータが用意されています。 - Oracle Database Kerberos構成での認証動作について
Kerberos認証フローは、sqlnet.ora
ファイルで設定するKerberos固有のパラメータと、krb5.conf
ファイルの設定に依存します。
親トピック: Kerberos認証の構成
25.1.1 一般的なOracle Database構成内のKerberosコンポーネント
一般的なKerberos認証構成内のコンポーネントには、クライアント、キー配布センター(KDC)およびOracle Databaseサーバーが含まれます。
- クライアントはOracle Databaseサーバーに接続します。
- KDCは、ユーザーとサービス(Kerberosではプリンシパルと呼ばれます)のデータベースを保守します。認証サービスとサービス・チケットを提供します。一意のKerberosサービスごとに、独自のサービス・チケットが必要です。Oracle Databaseサーバーとは別のシステムに配置する必要があります。
- Oracle Databaseサーバーには、クライアントのKerberos資格証明が提示されます。
主な構成ファイルを次に示します。
- クライアントで使用される
krb5.conf
は、クライアントにKerberosサーバーの場所を示します。 - Oracle Databaseサーバーで使用される
v5srvtab
は、アプリケーション(この場合はOracleデータベース)の構成ファイルです。このファイルはKerberos keytabファイルであり、そのホストが提供するサービスのサービス・キー(サービス・プリンシパル)が含まれています。 sqlnet.ora
は、クライアントとOracle Databaseサーバーの両方で使用され、クライアントとデータベースの両方に、それぞれの構成ファイルの場所を示します。
親トピック: Oracle Database上のKerberosの概要
25.1.2 Kerberos構成で使用されるチケット
Oracle Databaseでは、Kerberosクライアント・チケット認可チケット(TGT)とクライアント・サービス・チケットの両方を使用します。
- Kerberosクライアント・チケット認可チケット
クライアント・チケット認可チケット(TGT)は、Kerberos接続のサービスをリクエストするための認可が記述されています。 - Kerberosクライアント・サービス・チケット
クライアント・サービス・チケットは、ユーザーがOracleデータベースに正常に接続した後で生成されます。
親トピック: Oracle Database上のKerberosの概要
25.1.2.1 Kerberosクライアント・チケット認可チケット
クライアント・チケット認可チケット(TGT)には、Kerberos接続のサービスをリクエストするための認可が記述されています。
クライアントはkrb5.conf
ファイルを読み取り、このTGT (krbtgt
)を受信できるようにするためにKerberosサーバーを検索します。クライアントに送信されたTGTによって、クライアントはKerberosレルム内の適切なサービスにアクセスできるようになり、そのレルム内の別のサービスにユーザーがアクセスするたびに再認証する必要がなくなります。
たとえば、Windows Active Directoryドメインでは、KerberosレルムはユーザーのWindowsドメインと同じになります。ユーザーがActive Directoryにログインすると、ユーザーのWindows資格情報(Active Directory Kerberosチケット)で、そのActive Directoryドメイン内のすべてのサービスにアクセスできます(それらのサービスが許可している場合)。
次のoklist
の出力は、ユーザーがActive Directory認証済のWindowsユーザーとして最初にログオンしたときに自動的に付与されるチケットの例を示しています。
oklist
Kerberos Utilities for 32-bit Windows: Version 23.0.0.0.0 - Production on 15-MAY-2023 11:50:39
Copyright (c) 1996, 2023 Oracle Corporation. All rights reserved.
Ticket cache: win2kcc
Default principal: user_name@host_name
Valid Starting Expires Principal
22-Oct-2004 12:10:05 15-MAY-2023 22:10:05 krbtgt /host_name@realm_name renew until 29-Oct-2004 12:10:05
22-Oct-2004 12:10:05 15-MAY-2023 22:10:05 ldap/Active_Directory_host_name/host_name@realm_name renew until 29-Oct-2004 12:10:05
22-Oct-2004 12:10:05 15-MAY-2023 22:10:05 host/Active_Directory_host_name@host_name renew until 29-Oct-2004 12:10:05
これは、Oracle Application Serverシングル・サインオン(SSO)アプリケーションと似ています。そのアプリケーションでは、ユーザーがSSO認証を受信すると、ユーザーはSSOサーバーのレルム内のすべてのアプリケーション(SSOサーバーに登録されている外部アプリケーションとパートナ・アプリケーション)に認証不要でアクセスできます。前述の例では、ユーザーがドメイン・コントローラrealm_name
にログインしたときに、Active Directoryによってrealm_name
のActive Directory TGTがWindowsチケット・キャッシュに自動的に移入されていました。
Active Directoryがチケットを発行したときに、Oracle DatabaseがWindowsクライアントのKerberos資格証明を取得できる場所が2つあります。どの場所を使用するかは、sqlnet.ora
ファイルでKERBEROS5_CC_NAME
パラメータを設定することで指定できます。それらをtemp
ディレクトリ内のkrb5.cc
というファイルに配置する場合は、次のようにKERBEROS5_CC_NAME
を設定します。
SQLNET.KERBEROS5_CC_NAME = temp
キャッシュの場所をディレクトリとして指定する場合は、Oracle提供のKerberosユーティリティであるokinit
ユーティリティで手動で移入する必要があります。
Windowsネイティブ資格証明キャッシュ(ログオン時にkrbtgt
で自動的に移入される資格証明キャッシュ)を使用する場合は、次の設定を使用します。
SQLNET.KERBEROS5_CC_NAME=OSMSFT://
これはネイティブ・キャッシュであり、Windows ADドメインへのログイン時にユーザーの資格証明が自動的に移入されるため、ユーザーはokinit
を使用する必要がありません。通常、この場所はActive Directory環境で固定されます。
Oracle提供のユーティリティokinit
を使用してキャッシュに移入できます。okinit
によって移入されたキャッシュの内容を表示するには、oklist
ユーティリティを実行します。たとえば:
C:\> okinit user_name
Kerberos Utilities for 32-bit Windows: Version 23.0.0.0.0 - Production on 15-MAY-2023 12:32:53
Copyright (c) 1996, 2023 Oracle Corporation. All rights reserved.
Password for mailto:user_name@Realm : realm_name
C:\> oklist
Kerberos Utilities for 32-bit Windows: Version 23.0.0.0.0 - Production on 15-MAY-2023 12:33:02
Copyright (c) 1996, 2023 Oracle Corporation. All rights reserved.
Ticket cache: CC_path
Default principal: user_name@host_name
Valid Starting Expires Principal
15-MAY-2023 12:32:57 15-MAY-2023 20:32:54 krbtgt/host_name@realm_name
この出力は、ディレクトリ・キャッシュにTGTがあることを示しています。
親トピック: Kerberos構成で使用されるチケット
25.1.2.2 Kerberosクライアント・サービス・チケット
クライアント・サービス・チケットは、ユーザーがOracleデータベースに正常に接続した後で生成されます。
クライアント構成側からの構成は完了しています。すべてのユーザーは、次の構文を使用してデータベースに接続する必要があります(tnsnames.ora
ファイルでユーザーにTNS別名が定義されている場合)。
sqlplus /@tns_alias
この場合、/
スラッシュは、外部のオペレーティング・システム認証ではなく、外部のKerberos認証を意味します。
クライアント・サービス・チケットを表示するには、oklist
コマンドを実行します。たとえば:
oklist
....
Valid Starting Expires Principal
22-Oct-2022 12:32:57 22-Oct-2022 20:32:54 krbtgt/host_name@realm_name
22-Oct-2022 12:43:19 22-Oct-2022 20:32:54 server_principal/Active_Directory_host_name@realm_name
親トピック: Kerberos構成で使用されるチケット
25.1.3 Kerberosサーバー・キー配布センター
サーバー・キー配布センター(KDC)は、Oracleデータベースと連携するKerberosコンポーネントを調整します。
KDCは、すべてのシステムのプリンシパルとそれに関連付けられた暗号化キーを格納するデータベース、認証を処理するサーバー、およびチケット許可サーバーで構成されています。Oracle Databaseに関して、KDCは次のアクションを実行できます。
- Active Directoryは、Active DirectoryユーザーがOracleデータベースからの有効なユーザーであることを確認します。
okinit Active_Directory_user
コマンドを実行することで確認できます。 - Active Directoryは、
Active_Directory_user
にActive Directoryドメインkrbtgt/host_name
@realm_name
接続のTGTを付与します。 - Active Directoryは、
Active_directory_user
にOracleデータベースのサービス・チケットを付与し、データベース・ログインが発生するようにしています(sqlplus /@tns_alias
)。
親トピック: Oracle Database上のKerberosの概要
25.1.4 Oracle DatabaseとKerberosの連携について
OracleデータベースをKerberosと連携するように構成するには、KerberosサーバーでOracleデータベースに応じたuserPrincipalName
属性とservicePrincipalName
属性を設定する必要があります。
userPrincipalName
属性には、Kerberosを通じてOracleデータベースにログインするユーザーの名前を格納します。クライアントが正常に初期化されると(okinit
やActive Directoryなどの方法を使用)、ユーザーが入力したパスワードは、そのユーザー用に格納されているパスワードと照合されます。パスワードが一致すると、ユーザーはログインされ、ディレクトリまたはネイティブWindowsキャッシュに格納されているターゲット認可チケット(TGT)が付与されます。servicePrincipalName
属性には、サービス名(この場合はOracleデータベースが存在するサーバー)を格納します。
Windowsでは、userPrincipalName
とservicePrincipalName
をktpass
ユーティリティで作成します。Linuxでは、kadmin
ユーティリティで作成します。これらのユーティリティでは、ユーザーの認証にOracle Databaseが使用するkeytabファイル(v5srvtab
)を作成します。このファイルには、サービス名も格納します。クライアントは接続するときに、SQLNET.AUTHENTICATION_KERBEROS5_SERVICE
パラメータを使用してサービス名(Oracle Databaseの場合はoracle
)をリクエストし、SQLNET.KERBEROS5_KEYTAB
パラメータを使用してkeytabファイルを検索します。Oracleは、Kerberos属性を使用してKerberosで認証するようにOracleデータベースを構成する場合に使用できる一連のsqlnet.ora
パラメータを用意しています。
次のコマンドを実行すると、keytabファイルの内容を確認できます。
oklist -k
次のような出力が表示されます。
Kerberos Utilities for 32-bit Windows: Version 23.0.0.0.0 - Production on 15-MAY-2023 13:25:32
Copyright (c) 1996, 2023 Oracle Corporation. All rights reserved.
Service Key Table: <Keytab file with oath>
Ver Timestamp Principal
15-MAY-2023 16:00:00 server_principal/Active_Directory_host@host_name
25.1.5 Kerberos構成で使用されるOracle Databaseのパラメータ
Oracle Databaseには、Kerberos認証を使用するためのクライアントとサーバーのパラメータが用意されています。
表25-1に、Kerberosを使用するクライアントとサーバーの構成ファイルに挿入するパラメータを示します。
表25-1 Kerberos認証パラメータ
ファイル名 | 構成パラメータ |
---|---|
|
|
|
|
25.1.6 Oracle Database Kerberos構成での認証動作について
Kerberos認証フローは、sqlnet.ora
ファイルで設定するKerberos固有のパラメータと、krb5.conf
ファイルの設定に依存します。
認証フロー
- ユーザーはクライアントにログインして、チケット認可チケット(TGT)を取得します。
- OracleデータベースがネイティブWindowsキャッシュを使用している場合は、ユーザーのログイン時にTGTが自動的に取得されます。
sqlnet.ora
ファイルは、次のように設定してTGTを取得できるようにする必要があります。SQLNET.KERBEROS5_CC_NAME=OSMSFT://
また、
MSLSA:
に設定することもできます。 - Oracleデータベースがディレクトリ・キャッシュを使用している場合は、Kerberosサーバーの場所をデータベースが検出できるように、
sqlnet.ora
ファイルで次のパラメータを設定する必要があります。SQLNET.KERBEROS5_CC_NAME=CC_file_name_path
さらに、
okinit
ユーティリティを使用して、キャッシュにTGTを移入することも必要です。oklist
ユーティリティはキャッシュの内容を表示し、okdstry
は内容をクリアし、sqlnet.ora
パラメータ(TRACE_LEVEL_OKINIT=16
)はsqlnet.ora
トレースで問題をトレースできるようにします。ただし、通常、このタイプはサーバーでは使用されません。クライアントがMicrosoft Windows上にあり、ドメインの一部である場合は、インメモリー・チケット・キャッシュの使用を検討し、
SQLNET.KERBEROS5_CC_NAME
パラメータをOSMSFT://
またはMSLSA:
に設定することをお薦めします。
- OracleデータベースがネイティブWindowsキャッシュを使用している場合は、ユーザーのログイン時にTGTが自動的に取得されます。
- クライアントがデータベースに接続します。
sqlplus /@tns_alias
Oracleデータベースでは、次のアクションが実行されます。
SQLNET.KERBEROS5_CC_NAME
パラメータで指定された場所からTGTを取得しますSQLNET.AUTHENTICATION_KERBEROS5_SERVICE
パラメータからKerberosサービス名を読み取ります- これらのパラメータからの情報をパッケージ化し、Kerberosサーバーのキー配布センター(KDC)に送信します。KDCは、Oracleデータベースのキーで暗号化されたサービス・チケットをクライアントに送り返します
- クライアントは、暗号化されたサービス・チケットを資格証明キャッシュに書き込み、その資格証明をOracleデータベースに送信します。メッセージは、このデータベースでkeytabファイルのキーを使用して復号化されます。
- Oracleデータベースはクライアント・リクエストを受信し、次のアクションを実行します。
- サービス・チケットをデコードし、次の情報を抽出します: リクエストしているユーザーのプリンシパル、サービス・プリンシパル、IPアドレスのリスト、サービス・チケットが発行された日時
- サービス・プリンシパルをkeytabファイルに格納されたプリンシパルと照合します
- TGTから抽出されたユーザー名について、データベースのユーザー名表を検索します。ユーザーが存在していて認証の一致がある場合は、そのユーザーにアクセス権が付与されます。
- 前述のステップに成功すると、クライアントが接続されます。
接続の完了のために使用されるクライアント構成ファイル
krb5.conf
ファイルの設定:
#
[libdefaults]
default_realm = realm name
kdc = KDC_host:port
}
realm name = {
kdc = KDC_host:port
}
[domain_realm]
.domain = host_name
クライアントsqlnet.ora
ファイルの設定:
NAMES.DIRECTORY_PATH= (TNSNAMES)
NAMES.DEFAULT_DOMAIN = default_domain
trace_level_server=16
trace_level_client=16
trace_file_client=client_prefix
trace_directory_client=directory_path
trace_unique_client=true
trace_level_okinit=16
SQLNET.KERBEROS5_CONF=krb5.conf_path
SQLNET.KERBEROS5_CONF_MIT=TRUE
SQLNET.AUTHENTICATION_KERBEROS5_SERVICE=server_principal
SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5)
SQLNET.KERBEROS5_CC_NAME=CC_filename_path
# SQLNET.KERBEROS5_CC_NAME=OSMSFT://
trace_level_okinit=16
サーバー・パラメータの構成
Oracle Databaseサーバーのsqlnet.ora
ファイルの設定:
NAMES.DIRECTORY_PATH= (TNSNAMES)
NAMES.DEFAULT_DOMAIN = default_domain
trace_level_server=16
trace_level_client=16
trace_file_client=file_name_prefix
trace_directory_client=directory_path
trace_unique_client=true
SQLNET.KERBEROS5_CONF=krb5.conf_path
SQLNET.KERBEROS5_KEYTAB=keytab_file_path
SQLNET.KERBEROS5_CONF_MIT=TRUE
SQLNET.AUTHENTICATION_KERBEROS5_SERVICE=server_principal
SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5)
SQLNET.KERBEROS5_CC_NAME=CC_file_name_path
# SQLNET.KERBEROS5_CC_NAME=OSMSFT://
親トピック: Oracle Database上のKerberosの概要
25.2 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認証の構成
25.2.1 ステップ1: Kerberosのインストール
Kerberosバージョン5をインストールしてください。
Kerberosの構築とインストールに関するノートの供給元配布資料に詳細が記載されています。Kerberosのインストール後、POWERシステム(64ビット)でIBM AIXを使用する場合、Kerboros 5が推奨の認証方式であることを確認する必要があります。
親トピック: Kerberos認証の有効化
25.2.2 ステップ2: Oracleデータベース・サーバーに対するサービス・プリンシパルの構成
Kerberosを使用して自己を認証するクライアントの識別情報をOracleデータベース・サーバーで検証できるようにするには、Oracle Databaseのサービス・プリンシパルを作成する必要があります。
親トピック: Kerberos認証の有効化
25.2.3 ステップ3: Kerberosからのサービス・キー表の抽出
次に、Kerberosからサービス・キー表を抽出し、Oracleデータベース・サーバー/Kerberosクライアント・システムにコピーします。
dbserver.example.com
のサービス・キー表を抽出するには、次の手順を実行します。
親トピック: Kerberos認証の有効化
25.2.4 ステップ4: Oracleデータベース・サーバーとOracleクライアントのインストール
Kerberosからサービス・キー表を抽出した後、Oracleデータベース・サーバーおよびOracleクライアントをインストールします。
-
Oracleデータベース・サーバーおよびクライアント・ソフトウェアのインストールの詳細は、Oracle Databaseオペレーティング・システムに固有のインストール・ドキュメントを参照してください。
親トピック: Kerberos認証の有効化
25.2.5 ステップ5: Oracle Net ServicesとOracle Databaseの構成
Oracleデータベース・サーバーとクライアントのインストール後、サーバーとクライアントでOracle Net Servicesを構成できます。
-
Oracleデータベース・サーバーおよびクライアントでのOracle Net Servicesの構成の詳細は、次のドキュメントを参照してください。
-
オペレーティング・システム固有のOracle Databaseインストール関連ドキュメント
-
親トピック: Kerberos認証の有効化
25.2.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
パラメータを設定できます。 - ステップ6D: TCPまたはUDPを使用するためのKerberosの構成(オプション)
デフォルトでは、Oracle DatabaseはKerberos接続にTCPを使用します。
親トピック: Kerberos認証の有効化
25.2.6.1 ステップ6A: クライアントとデータベース・サーバーでのKerberosの構成
最初に、クライアントとデータベース・サーバーでKerberos認証サービス・パラメータを構成する必要があります。
親トピック: ステップ6: Kerberos認証の構成
25.2.6.2 ステップ6B: 初期化パラメータの設定
次に、OS_AUTHENT_PREFIX
初期化パラメータを設定します。
ノート:
30バイトを超えるKerberosユーザー名を持つ外部認証データベース・ユーザーを作成できます。
関連トピック
親トピック: ステップ6: Kerberos認証の構成
25.2.6.3 ステップ6C: sqlnet.oraパラメータの設定(オプション)
セキュリティを強化するために、必須パラメータに加えて、オプションのsqlnet.ora
パラメータを設定できます。
-
オプションで、クライアントおよびOracleデータベース・サーバーの両方に、次の表に示すパラメータを設定します。
表25-2 Kerberos固有のsqlnet.oraパラメータ
パラメータ | 説明 |
---|---|
|
Kerberos資格証明キャッシュ(CC)ファイルへの完全パス名を指定します。このパラメータを使用して、Kerberosによって戻される資格証明を暗号化形式で格納するために複数のプリンシパルを構成できます。デフォルト値は、オペレーティング・システムによって異なります。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認証の構成
25.2.6.4 ステップ6D: TCPまたはUDPを使用するためのKerberosの構成(オプション)
デフォルトでは、Oracle DatabaseはKerberos接続にTCPを使用します。
- OracleデータベースでTCPまたはUDPのどちらを使用するかを制御するには、
krb5.conf
ファイルのlibdefaults
セクションにあるforcetcp
パラメータを次のように設定します。- TCP接続を使用するには:
forcetcp = 1
- UDP接続を使用するには:
forcetcp = 0
- TCP接続を使用するには:
親トピック: ステップ6: Kerberos認証の構成
25.2.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認証の有効化
25.2.8 ステップ8: 外部認証されたOracleユーザーの作成
次に、外部認証されるOracleユーザーを作成します。
ノート:
データベース管理者は、複数のデータベース・ユーザーが外部から同じKerberosプリンシパル名で識別されていないことを確認する必要があります。
親トピック: Kerberos認証の有効化
25.2.9 ステップ9: Kerberos/Oracleユーザーの初期チケットの取得
データベースに接続するには、Key Distribution Center (KDC)に初期チケットを要求する必要があります。
okinit
プログラムを実行し、パスワードを指定することで取得される。
sqlnet.ora
ファイルで記述されているもの以外)は、接続文字列またはtnsnames.ora
のいずれかで指定できます。
25.3 Kerberos認証アダプタのユーティリティ
Oracle Kerberos認証アダプタのユーティリティは、Oracle Kerberos認証サポートがインストールされたOracleクライアントで使用するように設計されています。
- 初期チケットを取得するためのokinitユーティリティ・オプション
okinit
ユーティリティでは、Kerberosチケットを取得し、キャッシュします。 - 資格証明を表示するためのoklistユーティリティ・オプション
oklist
ユーティリティは保持しているチケットのリストを表示します。 - キャッシュ・ファイルから資格証明を削除するためのokdstryユーティリティのオプション
okdstry
(okdestroy
)ユーティリティはキャッシュ・ファイルから資格証明を削除します。 - キー表の作成を自動化するためのokcreateユーティリティのオプション
okcreate
ユーティリティは、KDCまたはサービス・エンドポイントから、キー表の作成を自動化します。
親トピック: Kerberos認証の構成
25.3.1 初期チケットを取得するためのokinitユーティリティ・オプション
okinit
ユーティリティでは、Kerberosチケットを取得し、キャッシュします。
通常は、このユーティリティを使用してチケット認可チケットを取得し、ユーザーが入力したパスワードを使用してkey distribution center (KDC)からの資格証明を復号化します。チケット認可チケットは、ユーザーの資格証明キャッシュに格納されます。
次の表に、okinit
で使用できるオプションを示します。表に示されている機能を使用するには、sqlnet.ora
のSQLNET.KERBEROS5_CONF_MIT
パラメータをTRUE
に設定する必要があります。(SQLNET.KERBEROS5_CONF_MIT
は非推奨ですが、okinit
の下位互換性のため現在も維持されていることに注意してください。)
表25-3 okinitユーティリティのオプション
オプション | 説明 |
---|---|
|
転送可能なチケットまたは転送不可のチケットを要求します。データベース・リンクをたどる場合は、このオプションが必要です。 |
|
チケット認可チケットおよびすべての後続チケットの存続期間を指定します。デフォルトで、チケット認可チケットは8時間有効ですが、存続期間がより短いまたは長い資格証明を指定することもできます。KDCはこのオプションを無視するか、各サイトで指定できる時間を制限することができます。次の例に示すように、存続期間の値は、 okinit -l 2wld6h20m30s この例では、存続期間が2週間と1日6時間20分30秒のチケット認可チケットが要求されます。 |
|
チケットが有効になるまでの遅延の期間を指定します。チケットは、無効なフラグ・セットを使用して発行されます。 |
|
合計存続期間が |
|
プロキシ可能なチケットまたはプロキシ不可のチケットを要求します |
|
ホストのローカル・アドレスに制限されているチケットを要求します |
|
アドレスによって制限されていないチケットを要求します |
|
プリンシパル名を企業名として扱います |
|
キャッシュ内のチケット認可チケットをKDCに渡して検証するよう要求します。チケットが要求された期間内のものであれば、キャッシュは検証済のチケットで置き換えられます。 |
|
チケット認可チケットの更新を要求します |
|
ローカル・ホストのキー表内のキーから取得されたチケットを要求します |
|
匿名処理を要求します |
|
プリンシパル名の正規化を要求し、要求されたものとは異なるクライアント・プリンシパルでKDCが応答できるようにします |
|
キャッシュの名前をキャッシュの場所として指定します。 UNIXでは、デフォルトは |
|
すでにチケットが含まれている資格証明キャッシュの名前を指定します。そのチケットを取得する際、チケットを取得した方法に関する情報がキャッシュ内に格納されていれば、同じ情報を使用して、新しい資格証明を取得する方法に影響を及ぼします。 |
|
KDCでサポートされている場合、このキャッシュは要求を保護するために使用され、オフラインの辞書攻撃を防ぎ、追加で事前認証メカニズムを使用することを可能にします。 |
|
事前認証属性と値を指定します。次のいずれかの値を指定します。
|
|
コマンドライン・オプションのリストを表示します。 |
親トピック: Kerberos認証アダプタのユーティリティ
25.3.2 資格証明を表示するためのoklistユーティリティ・オプション
oklist
ユーティリティは保持しているチケットのリストを表示します。
次の表に、oklist
の使用可能なオプションを示します。表に示されている機能を使用するには、sqlnet.ora
のSQLNET.KERBEROS5_CONF_MIT
パラメータをTRUE
に設定する必要があります。(SQLNET.KERBEROS5_CONF_MIT
は非推奨ですが、oklist
の下位互換性のため現在も維持されていることに注意してください。)
表25-4 oklistユーティリティのオプション
オプション | 説明 |
---|---|
|
資格証明のフラグを表示します。関連するフラグは次のとおりです。
|
|
代替資格証明キャッシュを指定します。代替資格証明キャッシュ(暗号化キャッシュ・ファイルを含む)は、 UNIXでは、デフォルトは |
|
UNIX上のサービス表のエントリ(デフォルト |
|
資格証明キャッシュ内の各資格証明のセッション・キーとチケットの暗号化タイプ、またはキー表ファイル内の各キーの暗号化タイプを表示します。 |
|
キャッシュ・コレクションが使用可能な場合、コレクション内に存在するキャッシュを要約した表を表示します。 |
|
キャッシュ・コレクションが使用可能な場合、コレクション内のすべてのキャッシュの内容を表示します。 |
|
出力を生成せずにユーティリティを実行します。キャッシュが読取り不可または期限切れの場合、ユーティリティはステータス1で終了します。それ以外の場合はステータス0です |
|
資格証明内のアドレスのリストを表示します |
|
逆引きのアドレスのかわりに数字のアドレスを表示します |
|
|
|
キー表ファイル内の各キー表入力の時間入力のタイムスタンプを表示します |
|
キー表ファイル内の各キー表入力の暗号化キーの値を表示します |
|
Kerberosバージョンを表示して終了します。 |
フラグ表示オプション(-f
)によって、次のような追加情報が表示されます。
% oklist -f 06/09/23 22:32:23 06/10/23 22:32:23 krbtgt/EXAMPLE.COM@EXAMPLE.COM
親トピック: Kerberos認証アダプタのユーティリティ
25.3.3 キャッシュ・ファイルから資格証明を削除するためのokdstryユーティリティのオプション
okdstry
(okdestroy
)ユーティリティはキャッシュ・ファイルから資格証明を削除します。
次の表に、okdstry
の使用可能なオプションを示します。表に示されている機能を使用するには、sqlnet.ora
のSQLNET.KERBEROS5_CONF_MIT
パラメータをTRUE
に設定する必要があります。(SQLNET.KERBEROS5_CONF_MIT
は非推奨ですが、okdstry
の下位互換性のため現在も維持されていることに注意してください。)
表25-5 okdstryユーティリティのオプション
オプション | 説明 |
---|---|
|
キャッシュ・コレクションが使用可能な場合、コレクション内のキャッシュをすべて破棄します |
|
音なしで実行します。通常、 |
|
UNIXでは、デフォルトは |
親トピック: Kerberos認証アダプタのユーティリティ
25.3.4 キー表の作成を自動化するためのokcreateユーティリティのオプション
okcreate
ユーティリティは、KDCまたはサービス・エンドポイントから、キー表の作成を自動化します。
次の表に、okcreate
の使用可能なオプションを示します。
表25-6 キー表の作成を自動化するためのokcreateユーティリティのオプション
オプション | 説明 |
---|---|
|
キー表を取得する対象となる、Kerberosを使用するサービスのサービス名を指定します。デフォルトは |
|
キー表を取得する対象となるホストをカンマ区切りのリストで指定するか、ホストのリストが含まれるテキスト・ファイルへのパスを指定します。デフォルトは |
|
結果のキー表を格納するための出力パスを指定します。デフォルトはカレント・ディレクトリです。 このディレクトリは、ルート・ユーザーのみがアクセスできるようにします。キー表ファイルは、ネットワークを介してクリアテキストで送信しないでください。 |
|
KDCに対して操作を実行する場合に使用します。 |
|
Kerberosを使用するサービスに対して操作を実行する場合に使用します。 |
|
KDCのユーザー名を指定します。この設定は、Kerberosを使用するサービス・エンドポイントのみで使用します。
|
|
Kerberosレルムを指定します |
|
Kerberosプリンシパルを指定します |
|
Kerberos問合せを指定します |
|
KDCデータベース名を指定します |
|
作成された新しいキーに使用するsaltリストを指定します |
|
KDCメイン・パスワードを要求するよう指定します |
親トピック: Kerberos認証アダプタのユーティリティ
25.4 Kerberosによって認証されたOracleデータベース・サーバーへの接続
Kerberosの構成後は、ユーザー名やパスワードを使用しないでOracleデータベース・サーバーに接続できます。
親トピック: Kerberos認証の構成
25.5 Microsoft Windows Serverドメイン・コントローラKDCとの相互運用性の構成
Oracle DatabaseをMicrosoft Windows Serverドメイン・コントローラのキー配布センター(KDC)と相互作用するように構成できます。
- Microsoft Windows Serverドメイン・コントローラKDCとの相互運用性の構成について
Oracle DatabaseはMIT Kerberosに準拠します。 - ステップ1: Microsoft Windows Serverドメイン・コントローラのためのOracle Kerberosクライアントの構成
Microsoft Windows Serverドメイン・コントローラKDCと相互運用するようにOracle Kerberosクライアントを構成できます。 - ステップ2: OracleクライアントのためのMicrosoft Windows Serverドメイン・コントローラKDCの構成
次に、Oracleクライアントと相互運用するようにMicrosoft Windows Serverドメイン・コントローラKDCを構成します。 - ステップ3: Microsoft Windows Serverドメイン・コントローラKDCのためのOracleデータベースの構成
Oracleデータベースがインストールされているホスト・コンピュータでドメイン・コントローラに対してOracleデータベースを構成する必要があります。 - ステップ4: Kerberos/Oracleユーザーの初期チケットの取得
クライアントがデータベースに接続するには、初期チケットを要求する必要があります。
親トピック: Kerberos認証の構成
25.5.1 Microsoft Windows Serverドメイン・コントローラKDCとの相互運用性の構成について
Oracle Databaseは、MIT Kerberosに準拠しています。
そのためOracle Databaseは、Microsoft Windows Serverドメイン・コントローラ上のKerberosキー発行センター(KDC)から発行されたチケットとの相互運用が可能です。このプロセスにより、OracleデータベースでのKerberos認証が可能になります。
25.5.2 ステップ1: Microsoft Windows Serverドメイン・コントローラのためのOracle Kerberosクライアントの構成
Microsoft Windows Serverドメイン・コントローラKDCと相互運用するようにOracle Kerberosクライアントを構成できます。
- ステップ1A: クライアントKerberos構成ファイルの作成
Windows 2008ドメイン・コントローラをKerberos KDCとして参照する一連のクライアントKerberos構成ファイルを構成する必要があります。 - ステップ1B: sqlnet.oraファイルでのOracle構成パラメータの指定
Microsoft Windows Serverドメイン・コントローラKerberos Key Distribution Center (KDC)と相互運用するようにOracleクライアントを構成するには、クライアントとデータベース・サーバーでKerberosを構成する場合と同じsqlnet.ora
ファイルのパラメータを使用します。 - ステップ1C: tnsnames.oraを使用した追加のKerberosプリンシパルの指定(オプション)
Oracle Databaseクライアントから接続するように追加のKerberosプリンシパル・ユーザーを構成できます。 - ステップ1D: リスニング・ポート番号の指定
Microsoft Windows Serverドメイン・コントローラKDCはUDP/TCPポート88でリスニングします。
25.5.2.1 ステップ1A: クライアントKerberos構成ファイルの作成
Windows 2008ドメイン・コントローラをKerberos KDCとして参照するKerberosクライアント構成ファイルを構成する必要があります。
25.5.2.2 ステップ1B: sqlnet.oraファイルでのOracle構成パラメータの指定
Microsoft Windows Serverドメイン・コントローラKey Distribution Center(KDC)と相互運用するようにOracleクライアントを構成するには、クライアントおよびデータベース・サーバーでKerberosの構成用に使用されるものと同じsqlnet.ora
ファイルのパラメータを使用します。
25.5.2.3 ステップ1C: tnsnames.oraを使用した追加のKerberosプリンシパルの指定(オプション)
Oracle Databaseクライアントから接続するように追加のKerberosプリンシパル・ユーザーを構成できます。
25.5.3 ステップ2: OracleクライアントのためのMicrosoft Windows Serverドメイン・コントローラKDCの構成
次に、Oracleクライアントと相互運用するようにWindows Serverドメイン・コントローラKDCを構成します。
- ステップ2A: ユーザー・アカウントの作成
Microsoft Windows Serverドメイン・コントローラのKDCにユーザー・アカウントを作成する必要があります。 - ステップ2B: Oracleデータベースのプリンシパル・ユーザー・アカウントおよびキー表の作成
ユーザー・アカウントの作成後、Oracle Databaseプリンシパル・ユーザー・アカウントを作成します。
関連項目:
Active Directoryでユーザーを作成する方法の詳細は、Microsoft社のドキュメントを参照してください。
25.5.3.1 ステップ2A: ユーザー・アカウントの作成
Microsoft Windows Serverドメイン・コントローラのKDCにユーザー・アカウントを作成する必要があります。
-
Microsoft Windows Serverドメイン・コントローラで、Microsoft Active DirectoryにOracleクライアントの新規ユーザー・アカウントを作成します。
25.5.3.2 ステップ2B: Oracleデータベースのプリンシパル・ユーザー・アカウントおよびキー表の作成
ユーザー・アカウントの作成後、Oracle Databaseプリンシパル・ユーザー・アカウントを作成します。
okcreate
ユーティリティを使用して、これをプリンシパル・キー表に登録する必要があります。このユーティリティを同じKDCに対して実行して、すべてのサービス・キー表を作成できます(それらを個々に作成せずに済みます)。または、KDCに接続するサービス・エンドポイントからokcreate
を実行し、必要なコマンドを実行してから、結果のキー表をサービス・エンドポイントにコピーすることもできます。
25.5.4 ステップ3: Microsoft Windows Serverドメイン・コントローラKDCのためのOracleデータベースの構成
Oracleデータベースがインストールされているホスト・コンピュータでドメイン・コントローラに対してOracleデータベースを構成する必要があります。
- ステップ3A: sqlnet.oraファイルでの構成パラメータの設定
最初に、データベースの構成パラメータを設定する必要があります。 - ステップ3B: 外部認証されたOracleユーザーの作成
構成パラメータの設定後、外部認証されるOracleユーザーを作成します。
25.5.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 Serverオペレーティング・システムはMIT Kerberosバージョン5に基づくセキュリティ・サービスとのみ相互運用するように設計されているため、
SQLNET.KERBEROS5_CONF_MIT
パラメータがTRUE
に設定されていることを確認してください。 -
sqlnet.ora
ファイル内の設定はすべてのPDBに適用されるということに注意してください。ただし、Kerberosを使用する場合は、すべてのPDBを1つのKDCで認証する必要があるという意味ではありません。sqlnet.ora
ファイルおよびKerberos構成ファイルの設定では複数のKDCをサポートできます。
25.5.4.2 ステップ3B: 外部認証されたOracleユーザーの作成
構成パラメータの設定後、外部認証されるOracleユーザーを作成します。
-
ステップ8: 外部認証されたOracleユーザーの作成の手順に従って、外部認証されたOracleユーザーを作成します。
ユーザー名はすべて大文字で作成します(たとえば、
ORAKRB@SALES.US.EXAMPLE.COM
)。
関連項目:
sqlnet.ora
ファイル・パラメータの設定の詳細は、「ステップ6: Kerberos認証の構成」を参照してください。
25.6 Kerberos認証フォールバック動作の構成
Kerberos認証の障害に備え、フォールバック動作(パスワードベースの認証)を構成できます。
親トピック: Kerberos認証の構成
25.7 Oracle Kerberos認証の構成のトラブルシューティング
一般的なKerberos構成の問題に対するガイドラインを示します。
- 一般的なKerberos構成の問題
Oracleは、一般的なKerberos構成の問題についてのガイダンスを提供しています。 - Kerberos構成のORA-12631エラー
ORA-12631: ユーザー名の検索に失敗しました。
エラーは、Kerberos認証に不正なプリンシパルまたは間違った形式のプリンシパルが使用されていることが原因で発生する可能性があります - Kerberos構成のORA-28575エラー
ORA-28575: 外部プロシージャ・エージェントへのRPC接続をオープンできません。
エラーは、クライアントがリモートのときにEXTPROC
プロセスが生成されると発生することがあります。 - Kerberos構成のORA-01017エラー
ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
エラーは、okinit
が失敗し、SQL*Plus接続に有効なチケットがない場合に発生する可能性があります。 - Kerberos okinit操作のトレースの有効化
KRB5_TRACE
環境変数を使用すると、Kerberosokinit
操作をトレースできます。
親トピック: Kerberos認証の構成
25.7.1 一般的な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
を実行して新しい初期チケットを取得します。
-
25.7.2 Kerberos構成のORA-12631エラー
ORA-12631: ユーザー名の検索に失敗しました。
エラーは、Kerberos認証に不正なプリンシパルまたは間違った形式のプリンシパルが使用されていることが原因で発生する可能性があります
出力で、Wrong principal in request
のsqlnet
サーバー・トレース・ファイルを確認します。
この問題を修正するには、krb5.conf
ファイルを編集して、[domain_realm]
の設定を確認します。これらの設定では大文字と小文字が区別されるため、domain_realm
名が正しいとしても、小文字の場合は正しく解析されません。この設定が大文字になっていることを確認します。たとえば:
[domain_realm]
.country.<DOMAIN_NAME> = SECWIN.LOCAL
country.<DOMAIN_NAME> = SECWIN.LOCAL
25.7.3 Kerberos構成のORA-28575エラー
ORA-28575: 外部プロシージャ・エージェントへのRPC接続をオープンできません。
エラーは、クライアントがリモートのときにEXTPROC
プロセスが生成されると発生することがあります。
外部プロシージャ・コールにはKerberos認証は不要です。この問題を修正するには、sqlnet.ora
ファイルのKERBEROS5
およびKERBEROS5PRE
パラメータの前にBEQ
を追加します。
25.7.4 Kerberos構成のORA-01017エラー
ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
エラーは、okinit
が失敗し、SQL*Plus接続に有効なチケットがない場合に発生する可能性があります。
okinit
トレース・ファイルに、次のエラーが示されます。
nauk5l_sendto_kdc: entry
snauk5l_sendto_kdc: exit
snauk5l_sendto_kdc: exit
nauk5la_get_in_tkt: Returning 25: Additional pre-authentication required
.
snauk5l_sendto_kdc: exit
snauk5l_sendto_kdc: exit
nauk5la_get_in_tkt: Returning 24: Preauthentication failed
.
nauk5la_get_in_tkt: exit
nauk5zi_kinit: Getting TGT failed: Preauthentication failed
.
nauk5fq_free_principal: entry
nauk5fq_free_principal: exit
nauk5fq_free_principal: entry
nauk5fq_free_principal: exit
nauk5zi_kinit: Returning 24: Preauthentication failed
.
nauk5zi_kinit: exit
この問題を解決するには:
krb5.conf
ファイルで、default_tkt_enctypes
パラメータを設定します。これにより、クライアントからリクエストされる暗号化のタイプを制御できます。たとえば:default_tgs_enctypes = aes256-cts-hmac-sha1-96 default_tkt_enctypes = aes256-cts-hmac-sha1-96
- 次のオプションを指定して、
okinit
をテストします。okinit user_name
DES暗号化アルゴリズムがActive Directoryサーバーに実装されていないと、
okinit
は失敗します。okinit user_name Kerberos Utilities for Solaris: Version 23.0.0.0.0 - Production on 15-MAY-2023 11:50:39 Copyright (c) 1996, 2023 Oracle. All rights reserved. Password for user_name@domain: okinit: KDC has no support for encryption type okinit user_name Kerberos Utilities for Solaris: Version 23.0.0.0.0 - Production on 15-MAY-2023 11:50:39 Copyright (c) 1996, 2023 Oracle. All rights reserved. Password for user_name@domain: okinit: Preauthentication failed
ただし、次が成功します。
okinit user_name Kerberos Utilities for Solaris: Version 23.0.0.0.0 - Production on 15-MAY-2023 11:50:39 Copyright (c) 1996, 2023 Oracle. All rights reserved. Password for user_name@domain:
oklist
ユーティリティは、チケットからユーザー・プリンシパルをリスト表示します。有効なチケットが存在する場合は、通常の方法で接続できます。okinit
が正常に完了したら、次に示すように、ユーザー名やパスワードを使用せずにOracle Databaseサーバーに接続できます。% sqlplus /@service_name