Tableau Server でのダッシュボードの拡張機能の管理

ダッシュボードの拡張機能は Web アプリケーションで、カスタムダッシュボードゾーンで実行され、Tableau 拡張 API(新しいウィンドウでリンクが開く) を利用してダッシュボードの残りの部分を操作できます。ダッシュボードの拡張機能を使用すると、ユーザーは他のアプリケーションのデータを Tableau で直接操作できます。

注: サーバーでダッシュボードの拡張機能を有効化する、または特定の拡張機能の実行をブロックするには、ユーザーがサーバー管理者である必要があります。拡張機能を許可リストに追加し、拡張機能がアクセス可能なデータの種類を制御するには、ユーザーがサーバー管理者である必要があります。サーバー管理者は、ダッシュボードで拡張機能を追加または表示する際に、サイト上のユーザーにプロンプトが表示されるかどうかを構成することもできます。拡張機能のセキュリティと推奨される導入オプションについては、「拡張機能のセキュリティ - 展開に関するベスト プラクティス(新しいウィンドウでリンクが開く)」を参照してください

Tableau でのダッシュボードの拡張機能の使用に関する詳細については、「ダッシュボードの拡張機能の使用」(新しいウィンドウでリンクが開く)を参照してください。

Tableau Server で拡張機能を実行する前に

Tableau では、ローカル ネットワークの内外にある Web サーバー上でホストされ、Web へのフル アクセス権を持つネットワーク対応拡張機能と、Web 上のその他のリソースやサービスにアクセスすることなく保護された環境で実行されるサンドボックス拡張機能という、2 種類のダッシュボード拡張機能をサポートしています。

注: バージョン 2021.1.0 以降、Tableau は Einstein Discovery ダッシュボードの拡張機能を介した Einstein Discovery との統合をサポートします。これは、Salesforce.com のデータにアクセスできる特別な拡張機能であり、既定で許可されています。これは、ネットワーク対応拡張機能またはサンドボックス拡張機能とは見なされません。Einstein Discovery の統合の詳細については、Tableau Server のリリース ノート(新しいウィンドウでリンクが開く)を参照してください。

サンドボックス拡張機能は Tableau によってホストされ、コンテンツ セキュリティ ポリシー (CSP) などの W3C 標準を使用します。また、この拡張機能では、ホストする Tableau Server 以外でのネットワーク呼び出しを行うことはできません。サンドボックス拡張機能ではダッシュボードでデータをクエリできますが、サンドボックスの外部にそのデータを送信することはできません。サンドボックス拡張機能は、Tableau 2019.4 以降でサポートされています。既定では、サイトの拡張機能が有効になっていればサンドボックス拡張機能を実行できます。

ネットワーク対応ダッシュボードの拡張機能は Web アプリケーションなので、Web サーバーとしてセットアップされた任意の PC で実行することができます。これにはローカル PC、ドメイン内の PC、サードパーティーの Web サイトが含まれます。ネットワーク対応拡張機能はサードパーティーのサイト上でホストされ、ダッシュボードのデータにアクセスできることがあるため、信頼する拡張機能のみを許可する必要があります。ネットワーク対応拡張機能のセキュリティ テストを参照してください。

セキュリティ上の目的で、Tableau Server 上のダッシュボードの拡張機能の設定を使用し、実行が許可されるダッシュボードの拡張機能を制限することができます。

  • 既定では、サイトの拡張機能が有効になっていればサンドボックス拡張機能を実行できます。

  • 既定では、ネットワーク対応拡張機能は明示的に許可リストに追加されていない限り許可されません。

  • 既定では、HTTPS プロトコルを使用する拡張機能のみが許可され、データの送受信用の暗号化チャネルが保証されます (http://localhost のみは例外です)。

  • ネットワーク対応拡張機能でフル データ (参照元データへのアクセス) が必要な場合は、明示的に許可リストに拡張機能を追加し、拡張機能にフル データへのアクセス権を付与しない限り、拡張機能を Tableau Server で実行できません。

ダッシュボードの拡張機能の制御およびデータへのアクセス

サーバー管理者は、サーバー上のすべてのサイトで拡張機能を許可するように全体設定を制御できます。また、サーバー管理者は、サンドボックス拡張機能などの拡張機能が実行されないように全体の拒否リストに入れることもできます (特定の拡張機能のブロックを参照してください)。既定では、すべてのサンドボックス拡張機能がサーバーで有効になっていますが、サイト管理者によって既定の拡張機能を上書きし、サイトのサンドボックス拡張機能を禁止することもできます。

サーバーでの拡張機能を有効にするグローバル設定の変更

  1. サーバーでこの設定を変更するには、[すべてのサイトを管理] > [設定] > [拡張] に移動します。サーバーに 1 つのサイトしかない場合は、全体のコントロールがサイトの設定ページに表示されます。

  2. [ダッシュボードの拡張] で、[ユーザーにサーバー上での拡張の実行を許可する] チェック ボックスをオンまたはオフにします。このオプションをオンにしないと拡張機能の実行は許可されません。このグローバル設定は、各サイトの [ユーザーにこのサイト上での拡張の実行を許可する] 設定よりも優先されます。

サイトの既定の設定の変更

サーバー管理者は、サイトの拡張機能を有効にするか、サイト上でサンドボックス拡張機能を許可するかを制御できます。つまり、サーバーで拡張機能が有効になっている場合は、既定のサイト設定によりサイトでのサンドボックス拡張機能の実行を許可します。ただし、拡張機能がサーバー上で明示的にブロックされている場合を除きます。既定のサイト設定では、サイトの許可リストに表示されるネットワーク対応拡張機能の実行が許可されています。既定ではサンドボックス拡張機能が許可されていない場合は、個々のサンドボックス内線を許可リストに追加することもできます。

  1. サイトでこれらの設定を変更するには、[設定] > [拡張] に移動します。

  2. [ダッシュボード拡張機能] で、次のオプションを設定します。

    • ユーザーにこのサイト上での拡張の実行を許可する
    • サーバー管理者によって明示的にブロックされていなければサンドボックス拡張機能の実行を許可する

サーバー管理者はサイトの許可リストでネットワーク対応拡張機能およびサンドボックス拡張機能を追加または削除できます。許可リストに拡張機能を追加する場合、拡張機能にフル データへのアクセス権を許可するかどうかを制御できます。許可リストへの拡張機能の追加とユーザー プロンプトの構成を参照してください。

拡張機能の識別

拡張機能は Web アプリケーションとして URL と関連付けられます。この URL は拡張機能のテストや検証に使用します。また、この URL は拡張機能を許可リストに追加してフル データ アクセスを許可したり、拒否リストに追加してアクセスを禁止したりするのにも使用します。

拡張マニフェスト ファイル (.trex)、つまり拡張機能のプロパティを定義する XML ファイルがある場合、URL を <source-location> 要素から見つけることができます。


<source-location>
    <url>https://www.example.com/myExtension.html</url>
</source-location>

				

拡張機能をダッシュボードに追加した場合、URL を拡張機能のプロパティから見つけることができます。[その他のオプション] メニューで [詳細] をクリックします。

[詳細] ダイアログ ボックスには拡張機能の名前、拡張機能の作成者、作成者の Web サイトが拡張機能の URL とともに記載されています。

許可リストへの拡張機能の追加とユーザー プロンプトの構成

ユーザーが信頼できるネットワーク対応拡張機能を確実に使用できるように、サイトの許可リストに拡張機能を追加できます。サンドボックス拡張機能がサイトで既定で有効になっていない場合は、サンドボックス拡張機能を許可リストに追加することもできます。

許可リストでは、拡張機能にフル データ アクセスを付与するかどうかを制御できます。既定では、許可リストに拡張機能を追加すると、その拡張機能は概要 (または集計) データにのみアクセスできます。また、拡張機能によるデータへのアクセスを許可するように求めるプロンプトをユーザーに表示するかどうかを制御することもできます。ユーザーにプロンプトを表示するかどうかを構成できるよう、拡張機能を許可リスト(例えば、サンドボックス拡張機能)に追加することを考えるかもしれません。ユーザーにプロンプトが表示されないようにする場合は、拡張機能をすぐに実行できます。

  1. [設定] > [拡張] に移動します。

  2. [特定の拡張機能の有効化] で拡張機能の URL を追加します。拡張機能の識別を参照してください。

  3. 拡張機能のフル データ アクセスに関し、[許可] または [拒否] を選択してください。

    フル データ アクセスとは、単なるサマリー データや集計データではなく、ビューの参照元データへのアクセスです。フル データ アクセスには、接続、フィールド、表の名前など、データ ソースについての情報も含まれます。拡張機能を実行できるように許可リストに追加しようとしている場合の多くでは、必要であれば拡張機能でフル データへのアクセスも許可する必要があります。許可リストに拡張機能を追加する前に、ネットワーク対応拡張機能のセキュリティ テストするようにしてください。

  4. [ユーザー プロンプト][表示] または [非表示] を選択します。

    既定でユーザーにプロンプトが表示されるのは、拡張機能をダッシュボードに追加している場合、拡張機能を含むビューを操作している場合です。このプロンプトには、拡張機能の詳細および拡張機能がフル データにアクセスできるかどうかが記載されています。このプロンプトによりユーザーには、拡張機能の実行を許可または拒否する権限が与えられます。ユーザーにプロンプトが表示されないようにし、拡張機能がすぐに実行されるようにできます。

特定の拡張機能のブロック

既定のグローバル ポリシーでは、サイトの許可リストに表示されるすべてのサンドボックス拡張機能とネットワーク対応拡張機能が許可されています。サーバー管理者は、サーバーの拒否リストに特定の拡張機能を追加することで、それが実行されないようにできます。拡張機能が全体の拒否リストに入っている場合、サイトの許可リストにある拡張機能の設定が上書きされます。

  1. 拡張機能をサーバーで拒否リストに追加するには、[すべてのサイトを管理] > [設定] > [拡張] に移動します。単一サイトのインストールでは、拒否リストはサイトの [拡張] 設定ページにあります。

  2. [特定の拡張機能のブロック] で拡張機能の URL を追加します。拡張機能の識別を参照してください。

ネットワーク対応拡張機能のセキュリティ テスト

ダッシュボードの拡張機能とは、Tableau のデータを拡張 API を使用して操作する Web アプリケーションです。ネットワーク対応ダッシュボードの拡張機能は、ドメイン内外の Web サーバー上でホストでき、ネットワークの呼び出しを行ってインターネット上のリソースにアクセスできます。このような理由のため、またクロスサイト スクリプティングなどの潜在的な脆弱性のため、ユーザーが Tableau Desktop のダッシュボードで拡張機能を使用する前、また Tableau Server で拡張機能を許可する前にネットワーク対応ダッシュボードの拡張機能をテストおよび検査する必要があります。

ソース ファイルの調査

ダッシュボードの拡張機能は Web アプリケーションであり、さまざまな HTML、CSS、JavaScript ファイルのほか、拡張機能でプロパティを定義する XML マニフェスト ファイル (*.trex) が含まれています。多くの場合、ダッシュボードの拡張機能のコードは GitHub で公に入手可能なため、そこで調査したり、ダウンロードしたりできます。マニフェスト ファイル (*.trex) ではソースの場所または URL を確認でき、ここでは拡張機能がホストされている場所、作成者の名前、サポートを求めるための作成者または会社の Web サイトが示されています。<source-location> 要素は URL を指定し、<author> 要素はサポートを求める組織名と Web サイトを指定します (website="SUPPORT_URL")。Web サイトは、拡張機能の [詳細] ダイアログ ボックスでユーザーに表示される [サポートの入手] リンクです。

多くのダッシュボードの拡張機能は、jQuery ライブラリやサードパーティ用の API ライブラリなどの外部 JavaScript ライブラリを参照します。外部ライブラリの URL がライブラリの信頼できる場所を指していることを検証します。たとえば、コネクタが jQuery ライブラリを参照する場合、標準および安全とみなされているサイト上にライブラリが存在すること確認してください。

すべての拡張機能では、拡張機能のホストに HTTPS プロトコル (https://) を使用することが求められています。拡張機能のソース ファイルを調査し、外部ライブラリへの参照が HTTPS をやはり使用していること、または拡張機能と同じ Web サイトでホストされていることを確認します。HTTPS の要件に関する 1 つの例外は、拡張機能が Tableau (http://localhost) と同じ PC でホストされているかどうかです。

可能な限り、コードの内容を理解するようにしてください。具体的には、コードが外部サイトへの要求をどのように構築しているか、また要求によりどのような情報が送信されるかを理解するように努めてください。特に、クロスサイト スクリプティングを防ぐために、ユーザーにより提供されたデータが検証されているかどうかを確認してください。

データ アクセスの理解

Tableau 拡張 API を使用すると、データ ソースでアクティブな表やフィールドの名前、データ ソース接続のサマリーの説明、ダッシュボードの参照元データにアクセスするためのメソッドが得られます。ビューで拡張機能がこれらのメソッドのいずれかを使用している場合、拡張機能の開発者は、拡張機能にはマニフェスト ファイル (.trex) にフル データのパーミッションが必要であることを宣言しなければいけません。宣言は次のようになります。


<permissions>
   <permission>full data</permission>
</permissions>

Tableau はこの宣言を使用し、実行時にこのアクセスを許可するかしないかのオプションを示すプロンプトを表示します。拡張機能でこれら 4 つのメソッドのどれかが使用されており、マニフェスト ファイルでフルデータ パーミッションを宣言しない場合、拡張機能は読み込まれますが、メソッド呼び出しは失敗します。

拡張機能がダッシュボードからデータにアクセスする方法、および使用されている JavaScript メソッドの詳細については、Tableau 拡張 API の「参照元データへのアクセス (英語)」(新しいウィンドウでリンクが開く)を参照してください。データに関して拡張機能で確認できる内容についてさらに理解するには、データソース(新しいウィンドウでリンクが開く) サンプルのダッシュボードの拡張機能 (Tableau 拡張 API GitHub リポジトリ(新しいウィンドウでリンクが開く)より入手可能) を使用し、getDataSourcesAsync() メソッドが呼び出されるときにどのデータが表示されるかを確認できます。

隔離された環境での拡張機能のテスト

可能な場合、本番環境とユーザーのコンピュータから隔離された環境でダッシュボードの拡張機能をテストします。たとえば、本番環境で使用されていない Tableau Server のバージョンを実行しているテスト PC または仮想マシンの許可リストにダッシュボードの拡張機能を追加します。

ダッシュボードの拡張機能により作成されたトラフィックの監視

ネットワーク対応ダッシュボードの拡張機能をテストする際は、Fiddler(新しいウィンドウでリンクが開く)Charles HTTP プロキシ(新しいウィンドウでリンクが開く)、または Wireshark(新しいウィンドウでリンクが開く) などのツールを使用して、拡張機能で実行する要求や応答を調査します。拡張機能が要求しているのがどのコンテンツかを把握するようにしてください。拡張機能が、その目的に直接関連しないデータやコードを読み取っていないことを確認するために、トラフィックを確認してください。

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