Tableau Cloud でダッシュボードと Viz の拡張機能を管理する
ダッシュボードの拡張機能は Web アプリケーションで、カスタムダッシュボードゾーンで実行され、Tableau 拡張 API(新しいウィンドウでリンクが開く) を利用してダッシュボードの残りの部分を操作できます。ダッシュボードの拡張機能を使用すると、ユーザーは他のアプリケーションのデータを Tableau で直接操作できます。ダッシュボード拡張機能と同じように、Viz 拡張機能は、Tableau 拡張機能 API を使用する Web アプリケーションであり、開発者が新しい Viz タイプを作成できるようにします。Tableau ユーザーは、ワークシートの [マーク] カードを通じて Viz 拡張機能にアクセスできます。
注: ダッシュボードと Viz の拡張機能を許可リストに追加し、拡張機能がアクセス可能なデータのタイプを制御できるようにするには、ユーザーはサイト管理者である必要があります。サイト管理者は、拡張機能を追加または表示する際に、サイト上のユーザーにプロンプトが表示されるかどうかを構成することもできます。拡張機能のセキュリティと推奨される展開オプションについては、「拡張機能のセキュリティ - 展開に関するベスト プラクティス」(新しいウィンドウでリンクが開く)を参照してください。
Tableau でダッシュボードの拡張機能を使用する方法の詳細については、「ダッシュボードの拡張機能の使用」を参照してください。
Viz の拡張機能を使用する方法の詳細については、「ワークシートに Viz の拡張機能を追加する」を参照してください。
Tableau Server については、「Tableau Server でダッシュボードの拡張機能を管理する(新しいウィンドウでリンクが開く)」を参照してください。
Tableau Cloud で拡張機能を実行する前に
Tableau では、次の 2 種類のホスト拡張機能がサポートされています。
- ネットワーク対応拡張機能: ローカル ネットワークの内部または外部にある Web サーバーでホストされます。ネットワーク対応拡張機能には、Web へのフル アクセス権があります。
- サンドボックス化された拡張機能: Web 上の他のリソースやサービスにアクセスすることなく、保護された環境で実行されます。
注: 2021.1.以降、Tableau は Einstein Discovery ダッシュボードの拡張機能を介した Einstein Discovery との統合をサポートします。これは、Salesforce.com のデータにアクセスできる特別な拡張機能であり、既定で許可されています。これは、ネットワーク対応拡張機能またはサンドボックス拡張機能とは見なされません。Einstein Discovery の統合の詳細については、Einstein Discovery 統合の構成(新しいウィンドウでリンクが開く)参照してください。
サンドボックス拡張機能は Tableau によってホストされ、コンテンツ セキュリティ ポリシー (CSP) などの W3C 標準を使用します。また、この拡張機能では、ホストする Tableau Server 以外でのネットワーク呼び出しを行うことはできません。サンドボックス拡張機能ではダッシュボードでデータをクエリできますが、サンドボックスの外部にそのデータを送信することはできません。サンドボックス拡張機能は、Tableau 2019.4 以降でサポートされています。既定では、サイトの拡張機能が有効になっていればサンドボックス拡張機能を実行できます。
ネットワーク対応拡張機能は Web アプリケーションなので、Web サーバーとしてセットアップされた任意の PC で実行することができます。これにはローカル PC、ドメイン内の PC、サードパーティーの Web サイトが含まれます。ネットワーク対応拡張機能はサードパーティーのサイト上でホストされ、ワークブックのデータにアクセスできることがあるため、信頼できる拡張機能のみを許可する必要があります。ネットワーク対応拡張機能のセキュリティ テストを参照してください。
セキュリティ上の目的で、Tableau Cloud 上の拡張機能の設定を使用し、実行が許可される拡張機能を制御したり、制限したりすることができます。
既定では、サイトの拡張機能が有効になっていればサンドボックス拡張機能を実行できます。
既定では、ネットワーク対応拡張機能は明示的に許可リストに追加されていない限り許可されません。
既定では、HTTPS プロトコルを使用する拡張機能のみが許可され、データの送受信用の暗号化チャネルが保証されます (
http://localhost
のみは例外です)。ネットワーク対応拡張機能でフル データ (参照元データへのアクセス) が必要な場合は、明示的に許可リストに拡張機能を追加し、拡張機能にフル データへのアクセス権を付与しない限り、Tableau Cloud で拡張機能を実行できません。
拡張機能の制御とデータへのアクセス
サイト管理者は、サイトの拡張機能を有効にするか、サイト上でサンドボックス拡張機能を許可するかを制御できます。既定のサイト設定ではサイトでのサンドボックス拡張機能の実行を許可していますが、拡張機能がサーバー上で明示的にブロックされている場合を除きます。既定のサイト設定では、サイトの許可リストに表示されるネットワーク対応拡張機能の実行が許可されています。既定ではサンドボックス拡張機能が許可されていない場合は、個々のサンドボックス内線を許可リストに追加することもできます。
サイトでこれらの設定を変更するには、[設定] > [拡張] に移動します。
[Dashboard and Viz Extensions (ダッシュボードと Viz の拡張機能)] で、次のオプションを設定します。
- ユーザーにこのサイト上での拡張の実行を許可する
- サーバー管理者によって明示的にブロックされていなければサンドボックス拡張機能の実行を許可する
サイト管理者はサイトの許可リストでネットワーク対応拡張機能およびサンドボックス拡張機能を追加または削除できます。許可リストに拡張機能を追加する場合、拡張機能にフル データへのアクセス権を許可するかどうかを制御できます。許可リストへの拡張機能の追加とユーザー プロンプトの構成を参照してください。
拡張機能の URL を確認する
拡張機能は Web アプリケーションとして URL と関連付けられます。この URL を使用して、拡張機能のテストや検証を行うことができます。また、この URL は拡張機能を許可リストに追加してフル データ アクセスを許可したり、拒否リストに追加してアクセスを禁止したりするのにも使用します。
マニフェスト ファイルから
拡張マニフェスト ファイル (.trex
)、つまり拡張機能のプロパティを定義する XML ファイルがある場合、URL を <source-location>
要素から見つけることができます。
<source-location>
<url>https://www.example.com/myExtension.html</url>
</source-location>
Tableau Exchange から
Tableau Exchange から拡張機能を追加またはダウンロードした場合は、Exchange で拡張機能の URL を見つけることができます。拡張機能のタイルを開き、[Tech Specifications (技術仕様)] の下にある [Hosted at (ホスト先)] という見出しの下の URL を探します。
[詳細] ダイアログ ボックスを使用してダッシュボード拡張機能を確認する
拡張機能をダッシュボードに追加した場合、URL を拡張機能のプロパティから見つけることができます。[その他のオプション] メニューで [詳細] をクリックします。
[詳細] ダイアログ ボックスには、拡張機能の名前、作成者、作成者の Web サイト、拡張機能の URL がリストされています。
許可リストへの拡張機能の追加とユーザー プロンプトの構成
ユーザーが信頼できるネットワーク対応拡張機能を確実に使用できるように、サイトの許可リストに拡張機能を追加できます。サンドボックス拡張機能がサイトで既定で有効になっていない場合は、サンドボックス拡張機能を許可リストに追加することもできます。
許可リストでは、拡張機能にフル データ アクセスを付与するかどうかを制御できます。既定では、許可リストに拡張機能を追加すると、その拡張機能は概要 (または集計) データにのみアクセスできます。また、拡張機能によるデータへのアクセスを許可するように求めるプロンプトをユーザーに表示するかどうかを制御することもできます。ユーザーにプロンプトを表示するかどうかを構成できるようにするために、拡張機能を許可リスト (たとえば、サンドボックス拡張機能) に追加する場合もあります。ユーザーにプロンプトが表示されないようにする場合は、拡張機能をすぐに実行できます。
[設定] > [拡張] に移動します。
[特定の拡張機能の有効化] で拡張機能の URL を追加します。拡張機能の URL を確認するを参照してください。
ヒント: ピリオドとアスタリスク (
.*
) を URL 内のワイルドカードとして使用して、特定のドメインまたは場所ですべての拡張子を許可することができます。たとえば、ポート 8080 を使用する example.com のドメインですべての拡張機能を許可するには、URLhttps://example.com:8080/.*
を追加します。詳細については、「許可リストの URL で正規表現を使用する」を参照してください。拡張機能のフル データ アクセスに関し、[許可] または [拒否] を選択してください。
フル データ アクセスとは、単なるサマリー データや集計データではなく、ビューの参照元データへのアクセスです。フル データ アクセスには、接続、フィールド、表の名前など、データ ソースについての情報も含まれます。通常、使用したい拡張機能を許可リストに追加する場合、必要に応じて、拡張機能がフル データにアクセスできるようにすることもできます。許可リストに拡張機能を追加する前に、ネットワーク対応拡張機能のセキュリティ テストするようにしてください。
[ユーザー プロンプト] の [表示] または [非表示] を選択します。
ダッシュボード拡張機能をダッシュボードに追加している場合、Viz 拡張機能をワークシートに追加している場合、または拡張機能が含まれたビューを操作している場合は、既定でユーザーにプロンプトが表示されます。このプロンプトには、拡張機能の詳細および拡張機能がフル データにアクセスできるかどうかが記載されています。このプロンプトによりユーザーには、拡張機能の実行を許可または拒否する権限が与えられます。ユーザーにプロンプトが表示されないようにし、拡張機能がすぐに実行されるようにできます。
許可リストの URL で正規表現を使用する
一般的に、拡張機能を許可リストに追加する場合は、拡張機能の特定の URL を使用する必要があります。ただし、同じドメインと場所からホストされている複数の拡張機能を許可したい場合もあります。この場合、URL でワイルドカードを使用すると便利です。拡張機能の設定では、正規表現の使用がサポートされています。
正規表現 | 説明 |
. | ピリオド (.) は、任意の文字と一致させるために使用できるワイルドカードです。URL にワイルドカードの代わりにピリオド (.) を指定する必要がある場合は、バックスラッシュ (\. ) を使用して文字をエスケープすることができます。 |
* | アスタリスク (*) は、前の文字の 1 つまたは複数のインスタンスを指定する量指定子です。 |
ワイルドカードを使用する場合は、許可リストの制限を緩和しすぎたり、アクセスすべきでない拡張機能へのアクセスを誤って許可したりしないように注意してください。
次の表は、URL で正規表現を使用する場合の例を示しています。これらの例では、拡張機能のプロトコルと完全な URL は示されていないことに注意してください。HTTPS プロトコルを使用する拡張機能のみが許可されます (http://localhost を除く)。
指定する対象 | 例 | 指定する内容 |
ドメインの範囲 | .*\.example.com | example.com にあるすべてのサブドメイン。 |
すべてのポート | example.com:.* | example.com のすべてのポートからのアクセスが拡張機能に許可されます。 |
ドメイン、ポート、パスのすべての拡張機能 | example.com:8080/xyz/.* | ポート 8080 を使用し、zyz に配置されているドメイン example.com にあるすべての拡張機能にアクセスが許可されます。 |
ドメインの範囲のすべてのポート | .*\.example.com:.* | example.com にあるすべてのサブドメインのすべてのポートで拡張機能へのアクセスを許可します。 |
パターンに一致するドメインとパスにあるすべての拡張機能 | example.com/tc/.* | たとえば、tic、tac、toc など、パターン t.c に一致するフォルダーにある example.com で実行されている拡張機能へのアクセスを許可します。 |
ネットワーク対応拡張機能のセキュリティ テスト
ダッシュボードと Viz の拡張機能は、拡張機能 API を使用して Tableau のデータを操作する Web アプリケーションです。ネットワーク対応拡張機能は、ドメインの内部または外部にある Web サーバー上でホストでき、ネットワークの呼び出しを行ってインターネット上のリソースにアクセスできます。クロスサイト スクリプティングなどの潜在的な脆弱性があるため、ユーザーが Tableau Desktop で拡張機能を使用する前、また Tableau Cloud で拡張機能を許可する前にネットワーク対応拡張機能をテストおよび検査する必要があります。
ソース ファイルの調査
ダッシュボードと Viz の拡張機能は 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 はこの宣言を使用して、実行時にこのアクセスを許可するオプションを示すプロンプトを表示します。拡張機能でこれらのメソッドのいずれかが使用されており、マニフェスト ファイルでフルデータ パーミッションを宣言しない場合、拡張機能は読み込まれますが、メソッド呼び出しは失敗します。
拡張機能がダッシュボードからデータにアクセスする方法、および使用されている JavaScript メソッドの詳細については、Tableau 拡張 API の「参照元データへのアクセス (英語)」(新しいウィンドウでリンクが開く)を参照してください。データに関して拡張機能で確認できる内容についてさらに理解するには、データソース(新しいウィンドウでリンクが開く) サンプルのダッシュボードの拡張機能 (Tableau 拡張 API GitHub リポジトリ(新しいウィンドウでリンクが開く)より入手可能) を使用し、getDataSourcesAsync()
メソッドが呼び出されるときにどのデータが表示されるかを確認できます。
隔離された環境での拡張機能のテスト
可能な場合、本番環境とユーザーの PC から隔離された環境で拡張機能をテストします。たとえば、本番環境で使用されていない Tableau Cloud のバージョンを実行しているテスト PC または仮想マシンの許可リストにダッシュボードまたは Viz の拡張機能を追加します。
ダッシュボードの拡張機能により作成されたトラフィックの監視
ネットワーク対応拡張機能をテストする際は、Fiddler(新しいウィンドウでリンクが開く)、Charles HTTP プロキシ(新しいウィンドウでリンクが開く)、または Wireshark(新しいウィンドウでリンクが開く) などのツールを使用して、拡張機能で実行する要求や応答を調査します。拡張機能が要求しているのがどのコンテンツかを把握するようにしてください。拡張機能が、その目的に直接関連しないデータやコードを読み取っていないことを確認するために、トラフィックを確認してください。