機械翻訳について

Kerberosを使用してAutonomous Databaseユーザーを認証

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

Kerberos認証について

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

  • KerberosのAutonomous Database on Dedicated Exadata Infrastructureサポートは、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

TNS接続文字列にあるhostパラメータの値。

kservice

V$PDBSGUID列の問合せを使用して、Autonomous DatabaseのGUIDを取得できます。 kserviceの値として使用する場合は、大文字にする必要があります。

REALM

KDCでサポートされているレルム。 REALM は常に大文字である必要があります。

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

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

Autonomous Database on Dedicated Exadata InfrastructureでKerberos認証を続行する前に、次のノートを確認してください:

  • Kerberos認証は、Autonomous Databaseバージョン19.18以降でのみ使用できます。
  • Autonomous DatabaseでKerberos認証を有効にしても、依然としてデータベースに対してパスワードベースのデータベース認証を使用できます。
  • Autonomous Databaseには、いつでも1つの外部認証メソッドのみを使用できます。 つまり、Oracle Cloud Infrastructure (IAM)、Active Directory (CMU-AD)、Azure ADまたはKerberos認証スキームをいつでも有効にできる一元管理ユーザーのみを指定できます。

    ノート:

    唯一の例外は、CMU-AD上でKerberos認証を構成して、Microsoft Active DirectoryユーザーにCMU-AD Kerberos認証を提供できることです。
  • Kerberos認証は、次のツールではサポートされていません:
    • MongoDBのためのOracle Database API
    • Oracle REST Data Services
    • Oracle Machine Learning
    • APEX
    • Oracle Graph Studio
    • Oracle Databaseアクション
  • Kerberos認証を有効にして、ADMINユーザーを認証できます。 Oracle Cloud Infrastructure (OCI)コンソールでパスワードのリセット機能を使用すると、ADMINユーザーのパスワードをリセットし、破損したkeytabファイルによってADMINユーザーの認証が失敗した場合に、アクセスを回復できます。
  • Kerberos認証は、TCPSプロトコルでのみサポートされます。
  • Kerberos認証は、DB_LINKsおよびAutonomous Data Guardを使用するデータベースではサポートされていません。

Autonomous DatabaseでのKerberos認証の有効化

次に示すステップに従って、Autonomous Database on Dedicated Exadata InfrastructureのKerberos認証を有効にします:

  1. Autonomous Databaseに対して有効にできる外部認証スキームは、いつでも1つのみであるため、DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを実行して、データベースに対してすでに有効になっている外部認証スキームを無効にします。
    プロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_ADMINに対するEXECUTE権限を持っている必要があります。
    BEGIN
        DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /
  2. Kerberos構成ファイルの取得: krb.confおよびサービス・キー表ファイルv5srvtab これらのファイルおよびそれらの取得に必要なステップの詳細は、「Kerberos認証の構成」を参照してください。
  3. Kerberos構成ファイルkrb.confおよびv5srvtabをオブジェクト・ストアのバケットにコピーします。

    ノート:

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

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

  4. KerberosをAutonomous Databaseの外部認証として有効にするには、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構成ファイルをダウンロードします。

  5. Kerberos認証を有効にした後、オブジェクト・ストアから構成krb.confおよびv5srvtabを削除します。 ローカル・オブジェクト・ストア・メソッドを使用してこれらのファイルを削除するか、DBMS_CLOUD.DELETE_OBJECTを使用してオブジェクト・ストアからファイルを削除できます。

Object Storageの詳細は、「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認証を引き続き構成する必要があります。