Kerberos認証について

Kerberosネットワーク認証プロトコルを使用してデータベース・ユーザーを認証するように、専用Exadataインフラストラクチャ上のAutonomous Databaseを構成できます。Kerberosは、強力なネットワーク認証プロトコルです。秘密キー暗号化を使用して、ユーザーからサーバーへの認証を提供することで強力な認証を有効にします。

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

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

  • Kerberosベースの認証では、チケットのリクエストをキー配布センター(KDC)に透過的に送信します。キー配布センターによって認証され、データベースにアクセスするためのチケットが付与されます。

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$PDBSGUID列の問合せを使用して、Autonomous DatabaseのGUIDを取得できます。kserviceの値として使用する場合は、大文字にする必要があります。
REALM KDCでサポートされている任意のレルム。REALMは常に大文字にする必要があります。

Autonomous DatabaseでKerberos認証を有効にするには、Kerberos構成ファイル(krb.conf)およびサービス・キー表ファイル(v5srvtab)を準備しておく必要があります。これらのファイルとその取得ステップの詳細は、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を使用するデータベースではサポートされていません。

Autonomous DatabaseでのKerberos認証の有効化

専用Exadataインフラストラクチャ上の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認証を提供するために、前述の例でtypeCMUに設定することで、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プロシージャを参照してください。

Autonomous DatabaseでのKerberos認証の無効化

データベースで他の外部認証スキームを有効にする前に、DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを実行するKerberos認証を無効にする必要があります。

このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_ADMINに対するEXECUTE権限を持っている必要があります。
BEGIN
    DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
詳細は、DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを参照してください。
ノート

Microsoft Active DirectoryユーザーにCMU-AD Kerberos認証を提供するには、Kerberos認証を無効にせずに引き続きCMU-AD認証を構成する必要があります。