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 では使用できません。
-
(バージョン 2024.1 以前) Tableau Server コンピューターで次のコマンドを実行し、Snowflake OAuth サービスを有効にします。
tsm configuration set -k native_api.enable_snowflake_privatelink_on_server -v true注: バージョン 2024.2 以降では、Snowflake プライベート接続を使用しているかどうかに関係なく、手順 1 をスキップします。
-
テキスト エディターで、次のコマンドをコピーして貼り付け、カスタマイズします。
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 にコピーして、コマンドを実行します。
-
-
次のコマンドを入力して変更を適用します。
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 クライアントを設定することを検討してください。
-
サーバー用に設定されている OAuth クライアントを上書きする
-
固有の 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 クライアントをサイトに登録します。
-
(バージョン 2024.1 以前) Tableau Server コンピューターで次の 2 つのコマンドを実行し、Snowflake OAuth サービスを有効にします。
tsm configuration set -k native_api.enable_snowflake_privatelink_on_server -v truetsm pending-changes apply注: バージョン 2024.2 以降では、Snowflake プライベート接続を使用しているかどうかに関係なく、手順 1 をスキップします。
-
管理者の認証資格情報を使用して Tableau Server にサインインし、[設定] ページに移動します。
-
[OAuth Clients Registry (OAuth クライアント レジストリ)] で、[Add OAuth Client (Oauth クライアントの追加)] ボタンをクリックします。
-
上記のステップ 1 の情報を含む、必要な情報を入力します。
-
[接続タイプ] で、カスタム OAuth クライアントを設定するコネクタを選択します。
-
複数の OAuth クライアントを登録する場合は、[OAuth インスタンス URL] に情報を入力する必要があります。それ以外の場合は、任意で入力してください。
-
クライアント ID、クライアント シークレット、リダイレクト URL には、上記のステップ 1 で準備した情報を入力します。
-
[Add OAuth Client (Oauthクライアントの追加)] ボタンをクリックして、登録プロセスを完了します。
-
-
[設定] ページの下部または上部にある [保存] ボタンをクリックして、変更を保存します。
ステップ 3: 保存済みの認証資格情報を検証して更新する
データ アクセスが中断されないようにするため、サーバー管理者 (およびサイト ユーザー) は、以前に保存した認証資格情報を削除してから、サイトのカスタム Oauth クライアントを使用できるように再度追加する必要があります。
-
[マイ アカウント設定] ページに移動します。
-
[データ ソースの保存済み認証資格情報] で、次の手順を実行します。
-
上記の「ステップ 2: OAuth クライアントを Tableau Server に追加する」で設定したカスタム OAuth クライアントのコネクタについて、既存の保存済み認証資格情報の横にある [削除] をクリックします。
-
コネクタ名の横にある [追加] をクリックし、プロンプトに従って 1) 上記の「ステップ 2: OAuth クライアントを Tableau Server に追加する」で設定したカスタム OAuth クライアントに接続し、2) 最新の認証資格情報を保存します。
-
ステップ 4: 保存した認証資格情報を更新するようにユーザーに通知する
上記の「ステップ 2: OAuth クライアントを Tableau Server に追加する」で設定したカスタム OAuth クライアントのコネクタについて、保存済み認証資格情報を更新するようにサイト ユーザーに通知します。サイトのユーザーは、保存済み認証資格情報の更新で説明されている手順を使用して、保存された認証資格情報を更新できます。
