JDBC コネクタの Kerberos 実行アカウント認証を有効にする

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

データベースへのアクセスに Kerberos サービス アカウントを使用するように Tableau Server を構成することができます。このシナリオでは、Tableau Server がサービス アカウント (「実行サービス アカウント」とも呼ばれます) を使用してデータベースに接続します。このシナリオは、「実行アカウント認証」と呼ばれます。

実行サービス アカウントを参照してください。

Tableau Server で実行アカウント認証を使用するには、まず統合認証を使用する Tableau Desktop にワークブックまたはデータ ソースを作成する必要があります。Tableau Server へのパブリッシュを行う際に、実行アカウント認証のオプションが表示されます。Web 作成を使用してデータ ソースを作成する場合、統合認証を選択した場合の既定の操作は、実行アカウント認証です。

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

Tableau では次のデータ ソースを使用する JDBC Kerberos 委任がサポートされています。

  • Oracle
  • PostgreSQL

JDBC ベースのコネクタを使用して Oracle データ ソースの実行アカウント認証を構成する場合は、このトピックの手順に従ってください。または、Tableau Server で実行しているコネクタがネイティブ ドライバーを使用している場合は、このトピックの手順に従う必要はありません。代わりに、実行サービス アカウントの変更 の説明に従って実行サービス アカウントを作成する手順に従います。

要件

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

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

構成プロセス

このセクションでは、Kerberos アカウント認証を有効にするためのプロセスの例を示します。

  1. 実行サービス アカウントのキータブ ファイルを作成します。

    次の例では、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 では、実行サービス アカウントおよび関連付けられたキータブを使用して認証を行い、データベースへ直接接続します。

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

  3. 次の TSM コマンドを実行して、実行サービス アカウントとキータブ ファイルへのパスを設定します。

    tsm configuration set -k native_api.datasource_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_runas_keytab_path -v <path-to-file>kerberos.keytab

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

  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 コマンドを実行して Tableau Server へ変更を適用します。

    tsm pending-changes apply

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