Snowflake 接続用 OAuth の設定

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

  • Tableau バージョン 2024.1 までのすべてのバージョンでは、Tableau Snowflake コネクタは既定で、共通のクライアント ID とシークレットを使用する AWS (GALOP) でホスティングされている OAuth プロキシを使用します。
  • Tableau 2020.4以降では、オプションで Tableau Server を設定して、Tableau のインスタンスと同じ場所で実行される新しい OAuth サービスを使用できます。これには、カスタム OAuth と呼ばれる独自のクライアント ID とシークレットを提供する必要があります。
  • 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 アドレスを許可リストに登録する必要がない

OAuth クライアントを Snowflake に登録する

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

登録後、次の Snowflake パラメーターを使用して Tableau Server を構成します。

  • アカウント インスタンス URL
  • クライアント ID
  • クライアント シークレット
  • リダイレクト URL

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

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

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

: この設定オプションは、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. テキスト エディターで、次のコマンドをコピーして貼り付け、カスタマイズします。

    注: Tableau Server 2021.1 以降でこの設定を変更する場合、oauth.snowflake.client 値の形式が変更されていることに注意してください。

    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
    • リダイレクト URLL: 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 クライアントが使用されます。構成を有効にするために、Tableau Server を再起動する必要はありません。

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

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

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

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

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

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

    例: https://example.com/auth/add_oauth_token

2: OAuth クライアント ID とクライアント シークレットの登録

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

  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. 管理者の認証資格情報を使用して 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 を繰り返します。

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

3: 保存した認証資格情報の検証と更新

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

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

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

    1. 上記のステップ 2 でカスタム OAuth クライアントを構成したコネクタの既存の、保存済み認証資格情報の横にある [削除] をクリックします。

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

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

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

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