Kerberos認証について
Kerberosネットワーク認証プロトコルを使用してデータベース・ユーザーを認証するように、専用Exadataインフラストラクチャ上のAutonomous Databaseを構成できます。Kerberosは、強力なネットワーク認証プロトコルです。秘密キー暗号化を使用して、ユーザーからサーバーへの認証を提供することで強力な認証を有効にします。
-
Autonomous Database on Dedicated Exadata InfrastructureはKerberosをサポートし、Oracleユーザーにシングル・サインオンおよび集中化された認証の利点を提供します。Kerberosは、共有秘密を使用するサード・パーティの認証システムです。Kerberosは、サード・パーティがセキュアであることを保障し、シングル・サインオン機能、集中化されたパスワード・ストレージ、データベース・リンク認証、拡張されたPCセキュリティを提供します。Kerberosは、Kerberos認証サーバーを使用して認証を行います。
-
Kerberosシステムは、チケットの概念を中心に動作します。チケットは、ユーザーやサービスを特定する一連の電子情報です。チケットは、ユーザーとユーザーのネットワーク・アクセス権を識別します。
-
Kerberosベースの認証では、チケットのリクエストをキー配布センター(KDC)に透過的に送信します。キー配布センターによって認証され、データベースにアクセスするためのチケットが付与されます。
- Kerberos認証システムのコンポーネント
Kerberos認証システムの概要を示します。 - Autonomous DatabaseでのKerberos認証に関するノート
- Autonomous DatabaseでのKerberos認証の有効化
- Autonomous DatabaseでのKerberos認証の無効化
親トピック: ユーザーの管理
Kerberos認証システムのコンポーネント
Kerberos 認証システムの概要について説明します。
-
レルムは認証管理ドメインを確立します。各レルムには、その特定の管理ドメインのユーザーおよびサービスを含む独自のKerberosデータベースがあります。
-
チケットは、キー配布センター(KDC)によって発行されます。クライアントは、IDの信頼性を実証するためにデータベース・サーバーにチケットを提示します。各チケットには有効期限と更新時間があります。
-
keytabには、1つ以上のプリンシパルの長期キーが格納されます。keytabファイルは、ツール
kadmin.local
(MITキー配布センターの場合)またはktpass
(Active Directoryキー配布センターの場合)を呼び出すことによって生成されます。 -
プリンシパルは、キー配布センター・データベースのエントリです。各ユーザー、ホスト、またはサービスにプリンシパルが与えられます。プリンシパルは、キー配布センターがチケットを割り当てることができる一意のIDです。
-
Autonomous DatabaseでのKerberosサポートでは、サービス・プリンシパルの名前を構成する様々なコンポーネントに次の値が使用されます:
サービス・プリンシパルのコンポーネント | Autonomous Databaseの値 |
---|---|
kinstance |
TNS接続文字列で見つかった'host' パラメータの値。
|
kservice |
V$PDBS のGUID 列の問合せを使用して、Autonomous DatabaseのGUID を取得できます。kservice の値として使用する場合は、大文字にする必要があります。
|
REALM | KDCでサポートされている任意のレルム。REALM は常に大文字にする必要があります。
|
Autonomous DatabaseでKerberos認証を有効にするには、Kerberos構成ファイル(krb.conf
)およびサービス・キー表ファイル(v5srvtab
)を準備しておく必要があります。これらのファイルとその取得ステップの詳細は、Kerberos認証の構成を参照してください。
親トピック: Kerberos認証について
Autonomous DatabaseでのKerberos認証に関するノート
専用Exadataインフラストラクチャ上のAutonomous DatabaseでKerberos認証を続行する前に、次のノートを確認してください:
- Kerberos認証は、Autonomous Databaseバージョン19.18以降でのみ使用できます。
- Autonomous DatabaseでKerberos認証を有効にしても、依然としてデータベースに対してパスワードベースのデータベース認証を使用できます。
- Autonomous Databaseには、いつでも1つの外部認証方法のみを使用できます。つまり、Oracle Cloud Infrastructure (IAM)、Active Directoryを使用した一元管理ユーザー(CMU-AD)、Azure ADまたはKerberos認証スキームのみをいつでも有効にできます。
ノート
唯一の例外は、Microsoft Active DirectoryユーザーにCMU-AD Kerberos認証を提供するために、CMU-AD上にKerberos認証を構成できることです。 - 次のツールでは、Kerberos認証はサポートされていません:
- Oracle Database API for MongoDB
- Oracle REST Data Services
- Oracle Machine Learning
- APEX
- Oracle Graph Studio
- Oracle Database Actions
- Kerberos認証を有効にしてADMINユーザーを認証できます。Oracle Cloud Infrastructure (OCI)コンソールで「パスワードのリセット」機能を使用して、ADMINユーザーのパスワードをリセットし、破損したキータブ・ファイルによってADMINユーザーの認証が失敗した場合にアクセスを再取得できます。
- Kerberos認証はTCPSプロトコルでのみサポートされています。
- Kerberos認証は、DB_LINKsおよびAutonomous Data Guardを使用するデータベースではサポートされていません。
親トピック: Kerberos認証について
Autonomous DatabaseでのKerberos認証の有効化
-
Autonomous Databaseに対して有効化できる外部認証スキームは、常に1つのみであるため、
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
プロシージャを実行して、データベースに対してすでに有効化されている外部認証スキームを無効化します。このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_ADMIN
に対するEXECUTE
権限を持っている必要があります。BEGIN DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION; END; /
-
Kerberos構成ファイル
krb.conf
およびサービス・キー表ファイルv5srvtab
を取得します。これらのファイルとその取得に必要なステップの詳細は、Kerberos認証の構成を参照してください。 -
Kerberos構成ファイル
krb.conf
およびv5srvtab
をオブジェクト・ストア内のバケットにコピーします。ノート
Oracleでは、Kerberos構成ファイルをオブジェクト・ストア内のプライベート・バケットに格納することをお薦めします。Oracle Cloud Infrastructure Object Storeを使用している場合は、オブジェクト・ストレージへのデータの配置を参照して、ファイルのアップロードの詳細を確認してください。
-
Autonomous Databaseの外部認証としてKerberosを有効にするには、
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION
プロシージャを実行し、params
JSON引数を使用して場所URIを渡します。構成ファイルkrb.conf
およびv5srvtab
は、location_uri
パラメータで指定されたオブジェクト・ストレージの場所に配置する必要があります。例:BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type => 'KERBEROS', params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o', 'credential_name' value 'my_credential_name') ); END; /
ノート
Microsoft Active DirectoryユーザーにCMU-AD Kerberos認証を提供するために、前述の例でtype
をCMU
に設定することで、CMU-AD上でKerberos認証を有効にできます。この例では、
namespace-string
はOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketname
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。このステップで使用する
credential_name
は、オブジェクト・ストアの資格証明です。location_uri
が事前認証済URLの場合、credential_name
を指定する必要はありません。これにより、データベースに
KERBEROS_DIR
という名前のディレクトリ・オブジェクトが作成され、その資格証明を使用して、オブジェクト・ストアの場所からディレクトリ・オブジェクトにKerberos構成ファイルがダウンロードされます。 - Kerberos認証を有効にした後、オブジェクト・ストアから構成
krb.conf
およびv5srvtab
を削除します。ローカル・オブジェクト・ストア・メソッドを使用してこれらのファイルを削除するか、DBMS_CLOUD.DELETE_OBJECT
を使用してオブジェクト・ストアからファイルを削除できます。
オブジェクト・ストレージの詳細は、Oracle Cloud Infrastructure Object Storageへの移動とバケットの作成を参照してください。
詳細は、ENABLE_EXTERNAL_AUTHENTICATIONプロシージャを参照してください。
親トピック: Kerberos認証について
Autonomous DatabaseでのKerberos認証の無効化
データベースで他の外部認証スキームを有効にする前に、DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
プロシージャを実行するKerberos認証を無効にする必要があります。
DBMS_CLOUD_ADMIN
に対するEXECUTE
権限を持っている必要があります。 BEGIN
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
Microsoft Active DirectoryユーザーにCMU-AD Kerberos認証を提供するには、Kerberos認証を無効にせずに引き続きCMU-AD認証を構成する必要があります。
親トピック: Kerberos認証について