機械翻訳について

Autonomous Databaseを使用したKerberos認証の構成

Oracle Autonomous Databaseユーザーを認証するようにKerberosを構成する方法について説明します。

Kerberos認証について

Kerberosネットワーク認証プロトコルを使用してデータベース・ユーザーを認証するようにOracle Autonomous Databaseを構成できます。 Kerberosは強力なネットワーク認証プロトコルです。 シークレット・キー暗号化を使用して、ユーザーからサーバーへの認証を提供することで強力な認証を実現します。

  • KerberosのOracle Autonomous Databaseサポートは、Oracleユーザーのシングル・サインオンおよび集中管理認証の利点を提供します。 Kerberosは、共有秘密を使用するサード・パーティの認証システムです。 サード・パーティがセキュアであることを保障し、シングル・サインオン機能、集中化されたパスワード・ストレージ、データベース・リンク認証、拡張されたPCセキュリティを提供します。 Kerberosは、Kerberos認証サーバーを使用して認証を行います。

  • Kerberosシステムは、チケットの概念を中心に展開されます。 チケットは、ユーザーまたはサービスを識別する一連の電子情報です。 チケットは、ユーザーとネットワーク・アクセス権限を識別します。

  • Kerberos-based認証では、チケットのリクエストをKDC (Key Distribution Center)に透過的に送信します。 Key Distribution Centerはユーザーを認証し、データベースにアクセスするためのチケットを付与します。

Kerberos認証システムのコンポーネント

Kerberos認証システムの概要を示します。

  • レルムは認証管理ドメインを確立します。 各レルムには、その特定の管理ドメインのユーザーおよびサービスを含む独自のKerberosデータベースがあります。

  • チケットは、KDC (Key Distribution Center)によって発行されます。 クライアントは、アイデンティティの信頼性を示すためにデータベース・サーバーにチケットを提示します。 各チケットには有効期限と更新時間があります。

  • Keytabsには、1つ以上の主体の長期キーが格納されます。 keytabファイルは、ツールkadmin.local (MIT Key Distribution Centerの場合)またはktpass (Active Directory Key Distribution Centerの場合)を起動して生成されます。

  • プリンシパルは、Key Distribution Centerデータベースのエントリです。 各ユーザー、ホスト、またはサービスにはプリンシパルが与えられます。 主体は、Key Distribution Centerがチケットを割り当てることができる一意のアイデンティティです。

  • Autonomous DatabaseでのKerberosサポートでは、サービス・プリンシパル名を構成する様々なコンポーネントに対して次の値を使用します:

サービス主体のコンポーネント Autonomous Databaseの値
kinstance

この値は、V$PDBSCLOUD_IDENTITY列の属性PUBLIC_DOMAIN_NAMEから取得できます。 この値は、プライベート・エンドポイント上のデータベースの完全修飾ドメイン名(FQDN)とは異なります。

次の問合せを使用して、kinstanceを取得します:

SELECT json_value(cloud_identity, '$.PUBLIC_DOMAIN_NAME') "KINSTANCE" FROM v$pdbs;
kservice

Autonomous Databaseでは、kservice値に次の2つのオプションがあります:

  • データベースGUIDの使用: Kerberosサービス名にDBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONを指定しない場合、使用されるデフォルトのサービス名はAutonomous DatabaseインスタンスのGUIDです。 この場合、keytabファイルを作成するときに、GUIDをサービス名の値として使用します。

    デフォルトの場合、KeytabファイルはGUID(インスタンス固有)のサービス名を使用するため、デフォルトのサービス名を使用する場合は、Autonomous Databaseインスタンスごとに異なるKeytabファイルを生成する必要があります。

    次のコマンドを使用して、GUIDを取得します(大/小文字は区別されます):

    SELECT GUID FROM v$pdbs;
  • カスタム名を使用: 複数のAutonomous Databaseインスタンスで同じKeytabファイルを使用する場合は、サービス名を設定します。 カスタム名を使用する場合は、Autonomous Databaseインスタンスごとに異なるKeytabファイルを作成およびアップロードする必要はありません。 カスタム名を使用する場合は、DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONparams kerberos_service_nameパラメータを指定する必要があります。 サービス名にGUIDを使用する場合、このパラメータの指定は不要です。

Autonomous DatabaseインスタンスでKerberosを有効にした後、次の問合せを使用してKerberosサービス名を表示します:

SELECT SYS_CONTEXT('USERENV', 'KERBEROS_SERVICE_NAME') FROM DUAL;
REALM KDCでサポートされているレルム。 REALM は常に大文字である必要があります。

Autonomous Databaseに対してKerberos認証を有効にするには、Kerberos構成ファイル(krb.conf)およびサービス・キー表ファイル(v5srvtab)を準備しておく必要があります。 これらのファイルとそれらの取得ステップの詳細は、「Kerberos認証の構成」を参照してください。

Autonomous DatabaseでのKerberos認証の有効化

Autonomous DatabaseインスタンスでKerberos認証を有効にするステップを示します。

DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_ADMINに対するEXECUTE権限が必要です。

DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONを使用してKerberos認証を有効にするには:

Autonomous DatabaseのKerberos認証を有効にするには、Kerberos構成ファイルを取得する必要があります: krb.confおよびサービス・キー表ファイルv5srvtab これらのファイルおよび取得に必要なステップの詳細は、「Kerberos認証の構成」を参照してください。

  1. Kerberos構成ファイルkrb.confおよびv5srvtabをオブジェクト・ストア内のバケットにコピーします。

    Oracle Cloud Infrastructureオブジェクト・ストアを使用している場合、ファイルのアップロードの詳細は「データのオブジェクト・ストレージへの格納」を参照してください。

  2. 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;
    /

    ノート:

    Oracleでは、Kerberos構成ファイルをオブジェクト・ストア内のプライベート・バケットに格納することをお薦めします。

    この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。

    このステップで使用するcredential_nameは、オブジェクト・ストアの資格証明です。

    リソース・プリンシパル資格証明を有効にした場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。 詳細については、「リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセス」を参照してください。

    location_uriが事前認証済URLの場合、credential_nameを指定する必要はありません。

    これにより、データベースにKERBEROS_DIRという名前のディレクトリ・オブジェクトが作成され、資格証明を使用してオブジェクト・ストアのロケーションからディレクトリ・オブジェクトにKerberos構成ファイルをダウンロードします。

    params kerberos_service_nameパラメータを指定して、Kerberosサービス名を指定できます。 たとえば:

    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'
                   'kerberos_service_name' value 'oracle' ));
    END;
    /
  3. Kerberos認証を有効にした後、オブジェクト・ストアから構成krb.confおよびv5srvtabを削除します。 ローカル・オブジェクト・ストア・メソッドを使用してこれらのファイルを削除するか、DBMS_CLOUD.DELETE_OBJECTを使用してオブジェクト・ストアからファイルを削除できます。

Object Storageの詳細は、「Oracle Cloud Infrastructure Object Storageにナビゲートし、バケットを作成」を参照してください。

詳細については、「ENABLE_EXTERNAL_AUTHENTICATIONプロシージャ」を参照してください。

Autonomous DatabaseでのKerberos認証の無効化

Autonomous DatabaseインスタンスのKerberos認証を無効にするステップを示します。

  1. DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを実行して、Kerberos認証を無効にします。 プロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_ADMINに対するEXECUTE権限が必要です。
    BEGIN   
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /

    これにより、Oracle Autonomous DatabaseのKerberos認証(または指定された外部認証スキーム)が無効になります。

    詳細については、「DISABLE_EXTERNAL_AUTHENTICATIONプロシージャ」を参照してください。

Autonomous DatabaseでのKerberos認証に関するノート

Autonomous DatabaseのKerberos認証の使用に関するノートを示します。

  • Autonomous DatabaseでKerberos認証を有効にした場合でも、データベースにパスワード・ベースのデータベース認証を使用できます。

  • Kerberos認証は、次のツールではサポートされていません:
    • MongoDBのためのOracle Database API

    • Oracle REST Data Services

    • Oracle Machine Learning

    • APEX

    • Oracle Graph Studio

    • Oracle Databaseアクション

  • Kerberos認証を有効にして、ADMINユーザーを認証できます。 Oracle Cloud Infrastructureコンソールのパスワードのリセット機能を使用して、ADMINユーザー・パスワードをリセットし、破損したキータブ・ファイルによってADMINユーザー認証が失敗した場合にアクセスを再取得できます。

  • Autonomous Databaseの最大「時計」のデフォルト値は300秒(5分)です。 デフォルトの「時計」値は変更できません。