Tableau Server での Snowflake 接続用 OAuth の設定

Snowflake 接続用に OAuth を設定する方法は、使用している Tableau Server のバージョンと更新するサイトの数に応じて複数あります。このトピックでは、利用可能な各オプションの設定について説明します。

  • Tableau バージョン 2024.1 までのすべてのバージョンでは、Tableau Snowflake コネクタは既定で、共通のクライアント ID とシークレットを使用する AWS (GALOP) でホスティングされている OAuth プロキシを使用します。Tableau Server は、Tableau インスタンスと同じ場所で稼動する、新しい OAuth サービスを使用するように設定することもできます。これを行うには、独自のクライアント ID とシークレットを指定する必要があります。これは「カスタム OAuth」と呼ばれ、以下の手順で設定できます。

  • 2024.2 以降、GALOP プロキシは非推奨となり、認証にローカル OAuth サービスが使用されるようになるため、カスタム OAuth を設定する以下の手順が必須になります。

  • Tableau Desktop および Tableau Cloud のバージョン 2024.3 以降では、Snowflake にサードパーティの IdP (外部 OAuth) を構成できます。詳細については、「Snowflake の外部 OAuth」を参照してください。

カスタム OAuth によって得られる利点は次のとおりです。

  • セキュリティの向上

  • OAuth プロキシ (GALOP) に接続できない隔離された環境でも OAuth を使用可能

  • AWS Private Link や Azure Private Link の VPC で OAuth フローを実行するために、GALOP の IP アドレスを許可リストに登録する必要がない

ステップ 1: Snowflake で OAuth クライアントを設定して登録する

Tableau Server でカスタム OAuth 設定を使用するには、まず Snowflake で OAuth クライアントを設定して登録し、クライアント ID とクライアント シークレットを取得する必要があります。Tableau Server バージョン 2024.2 以降では、使用している設定オプションに関係なく、この手順は必須です。Snowflake でカスタム OAuth クライアントを登録するには、「カスタム クライアント用に Snowflake Oauth を設定する」(新しいウィンドウでリンクが開く)の手順に従います。

上記の Snowflake 記事の手順に従って Snowflake で OAuth クライアントを登録した後、次の Snowflake パラメーターを使用して Tableau Server を設定します。

  • アカウント インスタンス URL

  • クライアント ID

  • クライアント シークレット

  • リダイレクト URL

注: リダイレクト URL は、Snowflake 側と Tableau 側の両方で入力した場合と同じになります。形式は次のとおりです。
https://<your_tableau_server_url>.com/auth/add_oauth_token

ステップ 2: Snowflake 用の OAuthを使用するように Tableau Server を設定する

オプション 1: TSM を使用して Snowflake 接続の OAuth を設定する

複数の Tableau Server サイトを一度に更新する必要がある場合は、このオプションを使用することをお勧めします。

: この設定オプションは、Tableau Cloud では使用できません。

  1. (バージョン 2024.1 以前) Tableau Server コンピューターで次のコマンドを実行し、Snowflake OAuth サービスを有効にします。

    tsm configuration set -k native_api.enable_snowflake_privatelink_on_server -v true

    注: バージョン 2024.2 以降では、Snowflake プライベート接続を使用しているかどうかに関係なく、手順 1 をスキップします。

  2. テキスト エディターで、次のコマンドをコピーして貼り付け、カスタマイズします。

    tsm configuration set -k oauth.snowflake.clients -v " [{\"oauth.snowflake.instance_url\":\"https://account.snowflakecomputing.com\", \"oauth.snowflake.client_id\":\"client_id_string\", \"oauth.snowflake.client_secret\":\"client_secret_string\", \"oauth.snowflake.redirect_uri\":\"http://your_server_url.com/auth/add_oauth_token\" }]"

    oauth.snowflake.clients キーはキー ペアの配列を受け取ります。キー ペアの各要素は二重引用符でカプセル化する必要があります。二重引用符は、\" としてエスケープする必要があります。

    複数のアカウント インスタンス URL を指定するには、次の例のように、中かっこ ({}) で囲まれた追加の各 OAuth クライアントをコンマ (,) で区切ります。

    tsm configuration set -k oauth.snowflake.clients -v " [{\"oauth.snowflake.instance_url\":\"https://account.snowflakecomputing.com\",\"oauth.snowflake.client_id\":\"client_id_string1\",\"oauth.snowflake.client_secret\":\"client_secret_string1\",\"oauth.snowflake.redirect_uri\":\"http://your_server_url.com/auth/add_oauth_token\" },{\"oauth.snowflake.instance_url\":\"https://account2.snowflakecomputing.com\",\"oauth.snowflake.client_id\":\"client_id_string2\",\"oauth.snowflake.client_secret\":\"client_secret_string2\",\"oauth.snowflake.redirect_uri\":\"http://your_server_url.com/auth/add_oauth_token\" }]"

    次に示すように、各キーの値を置き換えます。

    • アカウント インスタンス URL: oauth.snowflake.instance_url

    • クライアント ID: oauth.snowflake.client_id

    • クライアント シークレット: oauth.snowflake.client_secret

    • リダイレクト URL: oauth.snowflake.redirect_uri

    : コマンドを実行する前に、構文を注意深く検証してください。TSM はこの入力を検証しません。

    コマンドを TSM CLI にコピーして、コマンドを実行します。

  3. 次のコマンドを入力して変更を適用します。

    tsm pending-changes apply

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

オプション 2: サイトごとに Snowflake 接続の OAuth を構成する

注: このオプションは、バージョン 2024.2 以降の Tableau Cloud でも使用できます。

Tableau Server UI を使用して、サイト レベルでカスタムの Snowflake OAuth クライアントを設定できます。

以下の目的のために、サイト レベルでカスタム OAuth クライアントを設定することを検討してください。

  1. サーバー用に設定されている OAuth クライアントを上書きする

  2. 固有の OAuth クライアントを必要とするデータに、安全に接続できるようにする

カスタム OAuth クライアントを設定すると、サイトレベルの設定がサーバー全体の設定よりも優先され、あらたに追加されたすべての OAuth 認証資格情報でサイトレベルの OAuth クライアントが既定で使用されます。サイトレベルのカスタム OAuth 設定を有効にするために、Tableau Server を再起動する必要はありません。

重要: カスタム OAuth クライアントを設定する前に確立された既存の OAuth 認証資格情報は一時的に使用できますが、データ アクセスが中断されないように、Tableau Server 管理者とユーザーの双方が保存された認証資格情報を更新する必要があります。

ステップ 1: OAuth クライアントID、クライアン トシークレット、リダイレクト URL の準備

カスタム OAuth クライアントを構成する前に、以下の情報が必要です。この情報を準備したら、サイトのカスタム OAuth クライアントを登録できます。詳細については、上記のセクション「ステップ 1: Snowflake で OAuth クライアントを設定して登録する」を参照してください。

  • アカウント インスタンス URL

  • OAuth クライアント ID とクライアント シークレット: 最初に OAuth クライアントをデータ プロバイダー (コネクタ) に登録して、Tableau Server 用に生成されたクライアント IDとシークレットを取得します。

  • リダイレクト URL: 正しいリダイレクト URL であることを確認します。これは、以下の「ステップ 2: OAuth クライアントを Tableau Server に追加する」の登録プロセスで必要になります。

    https://<your_tableau_server_url>.com/auth/add_oauth_token

ステップ 2: OAuth クライアントを Tableau Server に追加する

以下の手順に従って、カスタム OAuth クライアントをサイトに登録します。

  1. (バージョン 2024.1 以前) Tableau Server コンピューターで次の 2 つのコマンドを実行し、Snowflake OAuth サービスを有効にします。

    tsm configuration set -k native_api.enable_snowflake_privatelink_on_server -v true

    tsm pending-changes apply

    注: バージョン 2024.2 以降では、Snowflake プライベート接続を使用しているかどうかに関係なく、手順 1 をスキップします。

  2. 管理者の認証資格情報を使用して Tableau Server にサインインし、[設定] ページに移動します。

  3. [OAuth Clients Registry (OAuth クライアント レジストリ)] で、[Add OAuth Client (Oauth クライアントの追加)] ボタンをクリックします。

  4. 上記のステップ 1 の情報を含む、必要な情報を入力します。

    1. [接続タイプ] で、カスタム OAuth クライアントを設定するコネクタを選択します。

    2. 複数の OAuth クライアントを登録する場合は、[OAuth インスタンス URL] に情報を入力する必要があります。それ以外の場合は、任意で入力してください。

    3. クライアント IDクライアント シークレットリダイレクト URL には、上記のステップ 1 で準備した情報を入力します。

    4. [Add OAuth Client (Oauthクライアントの追加)] ボタンをクリックして、登録プロセスを完了します。

  5. [設定] ページの下部または上部にある [保存] ボタンをクリックして、変更を保存します。

ステップ 3: 保存済みの認証資格情報を検証して更新する

データ アクセスが中断されないようにするため、サーバー管理者 (およびサイト ユーザー) は、以前に保存した認証資格情報を削除してから、サイトのカスタム Oauth クライアントを使用できるように再度追加する必要があります。

  1. [マイ アカウント設定] ページに移動します。

  2. [データ ソースの保存済み認証資格情報] で、次の手順を実行します。

    1. 上記の「ステップ 2: OAuth クライアントを Tableau Server に追加する」で設定したカスタム OAuth クライアントのコネクタについて、既存の保存済み認証資格情報の横にある [削除] をクリックします。

    2. コネクタ名の横にある [追加] をクリックし、プロンプトに従って 1) 上記の「ステップ 2: OAuth クライアントを Tableau Server に追加する」で設定したカスタム OAuth クライアントに接続し、2) 最新の認証資格情報を保存します。

ステップ 4: 保存した認証資格情報を更新するようにユーザーに通知する

上記の「ステップ 2: OAuth クライアントを Tableau Server に追加する」で設定したカスタム OAuth クライアントのコネクタについて、保存済み認証資格情報を更新するようにサイト ユーザーに通知します。サイトのユーザーは、保存済み認証資格情報の更新で説明されている手順を使用して、保存された認証資格情報を更新できます。

OAuth 認証用フォワード プロキシ

Tableau Server の Oauth 認証を使用したフォワード プロキシの設定 (Windows のみ) の詳細については、Tableau ヘルプの「OAuth 認証用フォワード プロキシの設定」(新しいウィンドウでリンクが開く)を参照してください。

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