JDBC コネクタの Kerberos 委任を有効にする

バージョン 2020.2 の時点で、Tableau Server は JDBC コネクタの Kerberos 委任をサポートしています。

Kerberos 委任を使用すると、Tableau Server はワークブックまたはビューを参照しているユーザーの Kerberos 認証資格情報を使用してそのユーザーのためにクエリを実行できます。これは、次のような場合に役立ちます。

  • 誰がデータにアクセスしているかを知る必要があります (ビューアーの名前はデータ ソースのアクセス ログに表示されます)。

  • データ ソースのセキュリティは行レベルですが、別のユーザーは別の行へのアクセス権があります。

サポートされているデータ ソース

Tableau では次のデータ ソースを使用する JDBC Kerberos 実行アカウント認証がサポートされています。

  • Oracle
  • PostgreSQL

JDBC ベースのコネクタを使用して Oracle データソースで委任を構成する場合は、このトピックの手順に従ってください。または、Tableau Server で実行しているコネクタがネイティブ ドライバーを使用している場合は、このヘルプトピックの手順、Kerberos 委任の有効化に従います。

要件

Kerberos 委任には Active Directory が必要です。

  • Tableau Server の情報ストアが、LDAP - Active Directory を使用するように構成されている必要があります。
  • MIT KDC はサポートされません。

: 実行アカウントをオペレーティング システムとして機能する必要はありません。

構成プロセス

このセクションでは、Kerberos 委任を有効にするためのプロセスの例を示します。

  1. Tableau Server では、データベースへの呼び出しを開始するユーザーの委任に Kerberos サービス チケットが必要となります。指定したデータベースへの委任に使用するドメイン アカウントを作成する必要があります。このアカウントは実行サービス アカウントと呼ばれます。このトピックで実行アカウントとして構成されたサンプル ユーザーは、tabsrv@EXAMPLE.COM となります。

    アカウントは、Active Directory での委任用に構成する必要があります。

    1. ユーザードメインに接続されている Windows サーバーで、[アクティブ ディレクトリ ユーザーとコンピューター] を開きます。
    2. 実行サービス アカウントの [プロパティ] ページで、[委任] タブをクリックして [指定サービスの委任用のみ、このユーザーを信頼する] および [任意の認証プロトコルを使用する] を選択します。
  2. 実行サービス アカウントのキータブ ファイルを作成します。

    次の例では、JDK に付属して提供される ktab ツールを使用します。このツールは、 AdoptOpenJDK(新しいウィンドウでリンクが開く) でダウンロードできます。ktab を使用してキータブを作成する場合は、サービス プリンシパル名(たとえば、 HTTP/service.example.com@EXAMPLE.COM) ではなく UPN 形式のログオン (たとえば、service@EXAMPLE.COM) を使用します。ktpass ユーティリティを使用してキータブを生成することもできます。この場合、プリンシパル名のいずれかのスタイルを使用することができます。

    <JDK_HOME>/bin/ktab -k E:/tmp/tabsrv.keytab -a tabsrv@EXAMPLE.COM

    Tableau Server では、実行サービス アカウントおよび関連付けられたキータブを使用して認証を行い、データベースへ直接接続します。

  3. キータブを Tableau Server データ ディレクトリにコピーし、実行サービス アカウントがキータブ ファイルにアクセスして読み取ることができることを確認します。規定では、Tableau Server データ ディレクトリは C:\ProgramData\Tableau にあります。分散展開で Tableau Server を実行している場合は、クラスタ内の各ノードでこの手順を実行します。

  4. krb5.conf ファイルを作成し、すべての Tableau Server ノードで C:\Windows にインストールします。

    krb5.ini ファイルが既に組織のコンピューターに展開されている場合は、そのファイルをコピーして Tableau Server に使用します。詳細については、MIT Kerberos ドキュメントのトピック、「krb5.conf」(新しいウィンドウでリンクが開く) を参照してください。

    Kerberos 構成ファイルの場所を変更するには、次の TSM コマンドを実行します。

    tsm configuration set -k native_api.kerberos_config_path --force-keys -v "C:\temp\krb5.ini"

    krb5.conf ファイルの例を次に示します。Tableau サポートでは krb5.conf の作成をアシストできません。

    [libdefaults]
    forwardable = true
    default_realm = EXAMPLE.COM
    default_tkt_enctypes = rc4-hmac
    default_tgs_enctypes = rc4-hmac
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc.example.com
    admin_server = kdc.example.com
    }
    
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM
  5. 次の TSM コマンドを実行して Kerberos 委任を有効にし、委任サービス アカウントを設定してキータブ ファイルとサービス アカウントを関連付けます。

    tsm configuration set -k wgserver.delegation.enabled -v true
    tsm configuration set -k native_api.datasource_impersonation_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_impersonation_runas_keytab_path -v <path-to-file>kerberos.keytab
    tsm configuration set -k native_api.protocol_transition_a_d_short_domain -v false
    tsm configuration set -k native_api.protocol_transition_uppercase_realm -v true

    場合によっては、TSM で --force-keys と記載されるエラーが返されることがあります。このエラーが発生する場合は、引数に --force-keys パラメーターに追加してコマンドを再度実行してください。

  6. 次の TSM コマンドを実行して Tableau Server へ変更を適用します。

    tsm pending-changes apply

    保留中の変更にサーバーの再起動が必要な場合は、pending-changes apply コマンドの実行時に、再起動が行われることを知らせるメッセージが表示されます。このメッセージはサーバーが停止していても表示されますが、その場合には再起動は行われません。--ignore-prompt オプションを使用してメッセージが表示されないようにできますが、そのようにしても再起動に関する動作が変わることはありません。変更に再起動が必要ない場合は、メッセージなしで変更が適用されます。詳細については、tsm pending-changes applyを参照してください。

フィードバックをありがとうございます。フィードバックは正常に送信されました。ありがとうございます!