---
schema_version: "1"
id: f42150dbb9e53bbe8d74eeae8b805d8ce8ea25197239e04ecbaa833040758fd4
title: 直接的な信頼関係を使用して接続済みアプリを設定する
collection: tableau
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/current/ja-jp/online/connected_apps_direct.md
canonical_url: https://help.tableau.com/current/online/ja-jp/connected_apps_direct.htm
source_site: help.tableau.com
content_type: documentation
content_hash: cf0f2edd8a550d1e2467c8c97252f9f27191101d4bba14f523092edf2892f17f
description: Configure a connected app with direct trust using a secret and JWT for embedded content.
---
[メイン コンテンツに進む](#main-content)

# 直接的な信頼関係を使用して接続済みアプリを設定する

2022 年 1 月初めより、Tableau 接続済みアプリを使用して Tableau Cloud サイトと外部アプリケーションとの間に明示的な信頼関係を構築することで、シームレスで安全な認証エクスペリエンスを実現できるようになりました。

**注:** セッション トークンを有効にするためには、外部アプリケーションと外部アプリケーションをホストするサーバーの時計が協定世界時 (UTC) に設定されている必要があります。いずれかの時計が異なる規格を使用している場合、接続済みアプリは信頼されません。

## Tableau 接続済みアプリが直接的な信頼関係と連携するしくみ

Tableau Cloud サイトと外部アプリケーション間の信頼関係は、JSON Web Token (JWT) 標準の認証トークンによって確立および検証されます。この認証トークンは、Tableau 接続済みアプリによって提供され、外部アプリケーションによって署名される共有シークレットを使用します。

### 接続済みアプリの主要コンポーネント

接続済みアプリの次のコンポーネントは、外部アプリケーションの JWT と連携して、ユーザーを認証し、埋め込みコンテンツを表示します。

- **シークレット:** シークレットは、Tableau と外部アプリケーションで共有されるキーです。これらは、JWT を形成する署名で使用されます。接続アプリを使用して認証または REST API 認証を埋め込む場合は、シークレットが必要です。シークレットは接続済みアプリで作成できます。シークレットの有効期限はなく、削除されるまで有効です。
- **ドメイン許可リスト (埋め込みのワークフローのみ):** 各接続済みアプリで許可されているドメインのリストを指定できます。接続済みアプリを介して埋め込まれた Tableau コンテンツは、指定されたドメインでのみ許可されます。これにより、ビジネスで保護および承認されたドメインでコンテンツを公開することができます。
- **アクセス レベル (埋め込みのワークフローのみ):** 接続済みアプリを 1 つのプロジェクトまたはすべてのプロジェクトに関連付けることにより、接続アプリを介して埋め込むことができるコンテンツを指定できます。1 つのプロジェクトを指定した場合、選択したプロジェクトのコンテンツのみを接続済みアプリを介して埋め込むことができます。複数のプロジェクトを指定する場合は、Tableau REST API を使用する必要があります。

### 接続済みアプリのワークフロー

#### 埋め込みのワークフロー

次の図は、外部アプリケーション (Web サーバーと Web ページ) と Tableau 接続済みアプリ間の認証のしくみを示しています。

![Web ページ、外部アプリケーション、Tableau 間のデータの流れを示す図。](/tableau/current/ja-jp/online/ja-jp/Img/connectedapp_how.png)

1. **ユーザーが Web ページにアクセスします:** ユーザーが Web ページに埋め込まれたコンテンツにアクセスすると、Web ページが外部アプリケーションに GET 要求を送信し、その Web ページの HTML を取得します。
2. **外部アプリケーションが認証トークンを構築します:** 外部アプリケーションが JWT を作成します。この JWT には、接続アプリからのシークレット (追加の JWT 要件については以下のステップ 3 を参照) と、埋め込みコンテンツに対するユーザー アクセスの範囲が含まれます。シークレットは外部アプリケーションによって署名され、後のステップで信頼関係の検証に使用されます。
3. **外部アプリケーションが認証トークンを使用して応答します:** 外部アプリケーションが、Web ページによって呼び出された埋め込みコンテンツの URL に JWT が含まれているページに応答します。
4. **Web ページが Tableau のコンテンツを要求します:** 埋め込みコンテンツを読み込むために、Web ページが埋め込みコンテンツの URL を呼び出し、Tableau に GET 要求が送信されます。
5. **Tableau がトークンを検証します:** Tableau が JWT を受信し、接続済みアプリと JWT で使用される共有シークレットを識別して、外部アプリケーションとの信頼関係を検証します。次に、Tableau はユーザーのセッションを作成します。このセッションでは、JWT で定義された埋め込み範囲だけでなく、許可されたドメインやプロジェクトなど、接続済みアプリで指定された制限も考慮されます。
6. **Tableau が、埋め込みの制限付きコンテキストに基づいてコンテンツを返します:** 埋め込みコンテンツは、ページが許可されたドメインの下にあり、かつ、コンテンツが許可されたプロジェクトにパブリッシュされている場合にのみ読み込まれます (該当する場合)。認証されたユーザーは、JWT で定義された範囲で埋め込みコンテンツを操作できます。

## 接続済みアプリを作成する

### ステップ1: 接続済みアプリを作成する

Tableau Cloud の \[設定\] ページから接続済みアプリを作成します。

1. サイト管理者として、Tableau Cloud にサインインします。
2. 左側のペインから、\[設定\] > \[接続済みアプリ\] の順に選択します。
3. \[新しい接続済みアプリ\] ボタンのドロップダウン矢印を選択して、\[直接的な信頼関係\] を選択します。
4. \[接続済みアプリの作成\] ダイアログ ボックスで、次の_いずれか_の手順を行います。
    - _REST API 認可ワークフローの場合 (認証に REST API を使用するメタデータ API ワークフローを含みます)_、\[接続済みアプリ名\] テキスト ボックスに接続済みアプリ名を入力し、\[作成\] ボタンを選択します。
        
        **注:** REST API とメタデータ API の認可用に接続済みアプリを構成する場合は、アクセス レベルとドメイン許可リストを無視できます。
    - _埋め込みのワークフロー_の場合、次の手順を実行します。
        1. \[接続済みアプリ名\] テキスト ボックスに、接続済みアプリ名を入力します。
        2. \[適用先\] ドロップダウン メニューから、\[すべてのプロジェクト\] または \[1 つのプロジェクトのみ\] を選択して、埋め込むことができるビューまたはメトリクスを制御します。\[1 つのプロジェクトのみ\] オプションを選択した場合は、スコープを設定する特定のプロジェクトを選択します。これらの 2つ のオプションの詳細については、「[アクセス レベル (埋め込みのワークフローのみ)](#projects)」を参照してください。
            
            **注:** 
            
            - メトリクスを埋め込む機能は、2023 年 10 月 (Tableau 2023.3) に廃止されました。
            - 2024 年 2 月 (Tableau 2024.1) では、Tableau REST API を使用して複数のプロジェクトを指定できます。詳細については、REST API ヘルプの 「[接続済みアプリ](https://help.tableau.com/current/api/rest_api/ja-jp/REST/rest_api_ref_connected_app.htm#create_connectedapp)」と「[接続済みアプリの更新](https://help.tableau.com/current/api/rest_api/ja-jp/REST/rest_api_ref_connected_app.htm#update_connectedapp)」のメソッドを参照してください。
        3. ドメイン許可リストで、以下の「[ドメインの書式設定](#domain_formatting)」に記載されているルールを使用してドメインを指定し、ビューまたはメトリクスを埋め込むことができる場所を制御します。
            
            **重要:** Tableau コンテンツが許可した場所にのみ埋め込まれるように、セキュリティのベスト プラクティスとしてドメイン許可リストを使用することをお勧めします。
        4. 完了したら、\[作成\] ボタンを選択します。
            
            ![アプリ名、アクセス レベル、ドメイン許可リストのフィールドを含む、接続済みアプリを作成するためのフォーム。](/tableau/current/ja-jp/online/ja-jp/Img/connectedapp_create.png)
5. 接続済みアプリ名の横にあるアクション メニューを選択し、\[有効\] を選択します。セキュリティ上の理由から、接続済みアプリは作成時に既定で無効に設定されています。
    
    ![接続済みアプリを有効化、編集、削除するダイアログ。](/tableau/current/ja-jp/online/ja-jp/Img/connectedapp_action_menu.png)
6. 接続済みアプリ ID (クライアント ID とも呼ばれます) をメモして、以下のステップ 3 で使用します。
    
    ![クライアント ID とコピー ボタン。](/tableau/current/ja-jp/online/ja-jp/Img/connectedapp_clientid.png)

### ステップ 2: シークレットを生成する

接続済みアプリごとに合計 2 つのシークレットを生成できます。2 番目のシークレットは、シークレットのローテーションの目的で使用し、シークレットが侵害された場合の問題からシークレットを保護することができます。

1. ステップ 1 で作成した接続済みアプリの詳細ページで、\[新しいシークレットの生成\] ボタンを選択します。
2. 以下のステップ 3 で使用するシークレット ID とシークレット値をメモします。
    
    ![アクションの生成日、ID、および値。](/tableau/current/ja-jp/online/ja-jp/Img/connectedapp_secret.png)

### ステップ 3: JWT を構成する

シークレットを生成したら、外部アプリケーションから有効な JWT を送信できるようにします。JWT は、2 者間で情報を安全に転送するために使用される標準規格です。JWT は、Tableau Cloud に情報を安全に送信するために、外部アプリケーションによって署名されています。JWT は、接続済みアプリ、セッションが生成されるユーザー、およびユーザーが持つ必要があるアクセス レベルを参照します。

有効な JWT には、次の情報が含まれます。

- ステップ 1 の接続済みアプリ ID (クライアント ID とも呼ばれます)
- ステップ 2 で生成されたシークレット ID とシークレット値
- 登録されたクレームとヘッダー:<table style="width: 90%;mc-table-style: url('Resources/TableStyles/Basic-Border-Light.css');margin-left: 0;margin-right: auto;" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1" style="width: 126px;"><col class="TableStyle-Basic-Border-Column-Column1" style="width: 126px;"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">クレーム</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">名前</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1" style="font-weight: bold;">説明または必要な値</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>kid</code>"</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">シークレット ID</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">必須 (ヘッダー内)接続済みアプリのシークレット キー識別子</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>iss</code>"</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">発行者</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">必須 (ヘッダー内)信頼できる接続済みアプリとその署名キーを識別する一意の発行元 URI</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>alg</code>"</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">アルゴリズム</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">必須 (ヘッダー内)JWT 署名アルゴリズム。HS256 のみがサポートされています。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>sub</code>"</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">件名</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">認証された <span class="mc-variable Variables.ProductName variable">Tableau Cloud</span> ユーザーのユーザー名 (メール アドレス)</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>aud</code>"</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">オーディエンス</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">値は "<code>tableau</code>" である必要があります。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>exp</code>"</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">有効期限</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">JWT の有効期限が切れないようにする必要があります。JWT の有効期限 (UTC) は、最大有効期間 (10分) 内である必要があります。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>jti</code>"</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT ID</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">クレームとして必要です。JWT ID クレームは、JWT に一意の識別子を提供し、大文字と小文字を区別します。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">"<code>scp</code>"<p><b style="font-style: normal;">重要:</b> "<code>scope</code>" は使用しないでください。</p></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">範囲</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><i>埋め込みのワークフロー</i>の場合、サポートされる値は次のとおりです。<p>"<code>tableau:views:embed</code>"<br>"<code>tableau:views:embed_authoring</code>"<br>"<code>tableau:metrics:embed</code>" (2023 年 10 月 (Tableau 2023.3) で廃止)<br>"<code>tableau:ask_data:embed</code>" (2024 年 2 月 (Tableau 2024.1) に廃止)</p><p><b>注:</b></p><ul><li>値はリスト型として渡す必要があります。</li><li><code>tableau:views:embed</code> と <code>tableau:views:embed_authoring</code> の場合、この範囲は、<span class="mc-variable Variables.ProductName variable">Tableau Cloud</span> で既に構成されているユーザーのパーミッションを考慮し、元のビューで使用可能な場合は、ユーザーが埋め込みビューのツールを操作できるようにします。</li><li>埋め込みコードでは、ツールバー パラメーターを除外することをお勧めします。詳細については、以下の「<a href="#known_issues" class="xref">既知の問題 (埋め込みのワークフローのみ)</a>」を参照してください。</li></ul><p><i>REST API 承認ワークフロー</i>の場合は、「<a href="https://help.tableau.com/current/online/ja-jp/connected_apps_scopes.htm#scopes" class="xref">JWT 認可をサポートする REST API メソッド</a>」を参照してください。</p><p><i>認証に REST API を使用するメタデータ API ワークフローの場合</i>、サポートしているスコープは <code>tableau:content:read</code> のみです。</p><p><i>認証に REST API 使用する VizQL データ サービス ワークフロー</i>の場合、サポートされるスコープは <code>tableau:viz_data_service:read</code> のみです。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><code>https://tableau.com/oda</code></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">オンデマンド アクセス - クレーム (機能を有効化)</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><i>埋め込みのワークフロー</i>のみ。<p>値は "<code>true</code>" にして、1 つまたは複数の Tableau Cloud グループを指定する必要があります (次の行を参照)。詳細については、埋め込み分析や容量ベースの Viewer ブロックのライセンスなどの前提条件を含め、Tableau 埋め込み API v3 ヘルプの<a href="https://help.tableau.com/current/api/embedding_api/en-us/docs/embedding_api_user_attributes.html#on-demand-access-for-users" target="_blank">「データ アクセスのカスタマイズと制御」</a>のページを参照してください。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" rowspan="2"><code>https://tableau.com/groups</code></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">オンデマンド アクセス - クレーム (グループ名を指定)</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><i>埋め込みのワークフロー</i>のみ。<p>値は、Tableau Cloud の 1 つまたは複数のグループの名前に一致する必要があります。詳細については、埋め込み分析や容量ベースの Viewer ブロックのライセンスなどの前提条件を含め、Tableau 埋め込み API v3 ヘルプの<a href="https://help.tableau.com/current/api/embedding_api/en-us/docs/embedding_api_user_attributes.html#on-demand-access-for-users" target="_blank">「データ アクセスのカスタマイズと制御」</a>のページを参照してください。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">動的グループ メンバーシップ</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><i>埋め込みのワークフロー</i>のみ。<p>値は、Tableau Cloud の 1 つまたは複数のグループの名前に一致する必要があります。詳細については、<a href="https://help.tableau.com/current/online/ja-jp/to_add_users_groups.htm#assertions" class="xref">アサーションを使用した動的グループ メンバーシップ</a>を参照してください。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">(ユーザー属性)</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">(ユーザー属性値)</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1"><i>埋め込みのワークフロー</i>のみ。<p>JWT にユーザー属性を含めることができます。埋め込みコンテンツでユーザー属性関数が使用されると、Tableau は認証されたユーザーのコンテキストをチェックし、ランタイムに表示できるデータを決定します。</p><p><b>注:</b></p><ul><li><p>ワークフローに影響を与える可能性のある<i>既知の問題</i><i>と制約</i>については、<a href="https://help.tableau.com/current/api/embedding_api/ja-jp/docs/embedding_api_user_attributes.html#known-issues" target="_blank">Tableau 埋め込み API v3</a> のヘルプを確認してください。</p></li><li><p>ユーザー属性を機能させるためには、1) <span class="uicontrol">[Control User Access in Authentication Workflows (認証ワークフローのユーザー アクセス制御)]</span> の設定を有効にする必要があり、2) コンテンツ作成者は<a href="https://help.tableau.com/current/pro/desktop/ja-jp/functions_functions_user.htm#user_attributes" target="_blank">ユーザー属性関数</a>を作成する必要があります。</p></li><li>ユーザー属性は、大文字と小文字を区別します。</li></ul></td></tr></tbody></table>

#### JWT の例

以下に、Java 言語と Python 言語の両方の JWT の 例を示します。Java と Python の例では、それぞれ nimbus-jose-jwt ライブラリと PyJWT ライブラリを使用しています。

**Java**

import com.nimbusds.jose.\*;
import com.nimbusds.jose.crypto.\*;
import com.nimbusds.jwt.\*;

import java.util.\*;

...

String secret = "secretvalue";
	String kid = "connectedAppSecretId";
	String clientId = "connectedAppClientId";
	List<String> scopes = new
ArrayList<>(Arrays.asList("tableau:views:embed"));
	String username = "user@domain.com";
	JWSSigner signer = new MACSigner(secret);
	JWSHeader header = new
JWSHeader.Builder(JWSAlgorithm.HS256).keyID(kid).customParam("iss", clientId).build();
	JWTClaimsSet claimsSet = new JWTClaimsSet.Builder()
		.issuer(clientId)
		.expirationTime(new Date(new Date().getTime() + 60 \* 1000)) //expires in 1 minute
		.jwtID(UUID.randomUUID().toString())
		.audience("tableau")
		.subject("username")
		.claim("scp", scopes)
		.claim("https://tableau.com/oda", "true").claim("https://tableau.com/groups", "Contractors", "Team C", "Group1", "Group2")
		.claim("Region", "East")
		.build();
	SignedJWT signedJWT = new SignedJWT(header, claimsSet);
	signedJWT.sign(signer);
	model.addAttribute("token", signedJWT.serialize());

**Python**

import jwt

token = jwt.encode(
	{
		"iss": connectedAppClientId,
		"exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=5),
		"jti": str(uuid.uuid4()),
		"aud": "tableau",
		"sub": user,
		"scp": \["tableau:views:embed", "tableau:metrics:embed"\],"https://tableau.com/oda":"true","https://tableau.com/groups": \["Contractors", "Team C", "Group1", "Group2"\],"Region": "East"
	},
		connectedAppSecretKey,
		algorithm = "HS256",
		headers = {
		'kid': connectedAppSecretId,
		'iss': connectedAppClientId
        }
  )

JWT を構成した後、外部アプリケーションでコードを実行すると、トークンが生成されます。

### ステップ 4: 次のステップ

#### 埋め込みのワークフローの場合

JWT を構成したら、埋め込みコードを外部アプリケーションに追加する必要があります。外部アプリケーションが呼び出す Web コンポーネントに、上記のステップ 3 で構成した有効な JWT が含まれていることを確認します。

埋め込みのワークフローでサポートされる Tableau のコンテンツと機能の詳細については、以下を参照してください。

- [Tableau 埋め込み API v3](https://help.tableau.com/current/api/embedding_api/ja-jp/index.html) を使用して Tableau コンテンツを埋め込みます。
- 属性ベースのアクセス制御 (ABAC)、オンデマンド アクセス、動的グループ メンバーシップのユーザー属性については、Tableau 埋め込み API v3 の「[データ アクセスのカスタマイズと制御](https://help.tableau.com/current/api/embedding_api/ja-jp/docs/embedding_api_user_attributes.html)」を参照してください。
- メトリクスの埋め込みについては、Tableau ヘルプの「[Web ページへのメトリクスの埋め込み」](https://help.tableau.com/current/pro/desktop/ja-jp/embed_metrics.htm)トピックを参照してください。( 2023 年 10 月 (Tableau 2023.3) で、Tableau はメトリクスを埋め込む機能を廃止しました。)

**注:** 埋め込みコンテンツにアクセスするユーザーを正常に認証するには、ブラウザーがサードパーティーの Cookie を許可するように設定されている必要があります。

#### REST API 認証ワークフローの場合

JWT を構成したら、認証アクセスのために、有効な JWT を REST API サインイン要求に追加する必要があります。詳細については、「[接続済みアプリのアクセス スコープ](https://help.tableau.com/current/online/ja-jp/connected_apps_scopes.htm)」を参照してください。

#### メタデータ API ワークフローの場合

JWT を構成したら、有効な JWT を REST API サインイン要求に追加する必要があります。詳細については、「[接続済みアプリのアクセス スコープ](https://help.tableau.com/current/online/ja-jp/connected_apps_scopes.htm)」を参照してください。

#### SCIM ワークフローの外部トークンの場合

JWT を構成したら、SAML 認証を構成し、SCIM 機能を有効にする必要があります。詳細については、「[直接的な信頼関係を使用して接続済みアプリを設定する](#scim)」を参照してください。

## 接続済みアプリの管理

\[接続済みアプリ\] ページでは、サイトのすべての接続済みアプリを管理できます。接続済みアプリの作成、削除、無効化などのタスクを実行できるほか、既存のシークレットが侵害されている場合は、新しいシークレットを取り消したり、生成したりすることができます。

1. サイト管理者として、Tableau Cloud にサインインします。
2. 左側のペインから、\[設定\] > \[接続済みアプリ\] の順に選択します。
3. 管理する接続済みアプリの横にあるチェック ボックスを選択し、次のいずれか 1 つまたは複数の操作を実行します。
    
    - 組織のセキュリティ ポリシーで指定されたローテーション タイムラインに従って、**新しいシークレットを生成**します。追加のシークレットを生成するには、接続済みアプリの名前をクリックしてから、\[Generate New Secret (新しいシークレットの生成)\] ボタンをクリックします。接続済みアプリは、最大 2 つのシークレットを持つことができます。両方のシークレットは同時にアクティブにすることができ、有効期限はなく、削除されるまで有効です。
    - 接続済みアプリの名前を選択して**接続済みアプリの詳細**を表示し、接続済みアプリの作成日、ID、プロジェクトとドメインの範囲、およびシークレットを確認します。
    - **プロジェクトの範囲またはドメインを変更**し、\[アクション\] メニューで \[編集\] を選択します。変更を加えて、\[更新\] を選択します。
        
        **注:** プロジェクトまたはドメインの範囲を変更していて、埋め込みコンテンツが新しいプロジェクトまたは新しいドメインのいずれにも存在しない場合は、埋め込みビューまたはメトリクスを表示することができなくなるため、ユーザーが埋め込みコンテンツにアクセスするとエラーが表示されます。
    - 接続済みアプリの名前を選択して、**シークレットを削除**します。接続済みアプリのページで、シークレットの横にある \[アクション\] をクリックし、\[削除\] を選択します。確認ダイアログ ボックスで、もう一度 \[削除\] を選択します。
        
        **注:** 接続済みアプリのシークレットが外部アプリケーションで使用されている場合、シークレットを削除すると、埋め込みビューやメトリクスを表示できなくなります。詳細については、以下の「[接続済みアプリの無効化と削除、およびシークレットの削除による影響](#effects)」を参照してください。
    - **接続済みアプリを無効**にし、\[アクション\] メニューで \[無効\] を選択します。接続済みアプリが外部アプリケーションで使用されている場合、接続済みアプリを無効にすると、埋め込みビューやメトリクスを表示できなくなります。詳細については、以下の「[接続済みアプリの無効化と削除、およびシークレットの削除による影響](#effects)」を参照してください。
    
    ![ランダムに生成された 2 つのクライアント コードを表示するフォーム。](/tableau/current/ja-jp/online/ja-jp/Img/connectedapp_details.png)

### 接続済みアプリの無効化と削除、およびシークレットの削除による影響

接続済みアプリを介してユーザーに埋め込みコンテンツを表示したり、REST API アクセスを有効にしたりするには、接続済みアプリを有効にして、そのシークレットを生成する必要があります。接続済みアプリが外部アプリケーションで使用されていて、無効化または削除されているか、そのシークレットが削除または置換されている場合、403 エラーが発生します。

この問題を回避するには、接続済みアプリが有効になっていて、JWT で正しいシークレット ID と値が使用されていることを確認します。

### アクセス レベル (埋め込みのワークフローのみ)

接続済みアプリのアクセス レベルを構成する際は、次の 2 つのプロジェクト タイプのうちいずれかを選択できます。アクセス レベルは、どのコンテンツを埋め込むことができるかを制御します。

- **すべてのプロジェクト:** このオプションを使用すると、すべてのプロジェクトのコンテンツを埋め込むことができます
- **1 つのプロジェクトのみ:** このオプションを使用すると、指定されたプロジェクト内のコンテンツのみを埋め込むことができます。指定したプロジェクトにネストされたプロジェクトが含まれている場合、そのネストされたプロジェクトにコンテンツを埋め込むことはできません。

**複数のプロジェクトについて**

2024 年 2 月 (Tableau 2024.1) 以降、Tableau REST API のみを使用して接続済みアプリの複数のプロジェクトでコンテンツを有効にすることができます。プロジェクトを指定するには、[接続済みアプリの作成](https://help.tableau.com/current/api/rest_api/ja-jp/REST/rest_api_ref_connected_app.htm#create_connectedapp)、または[接続済みアプリの更新](https://help.tableau.com/current/api/rest_api/ja-jp/REST/rest_api_ref_connected_app.htm#update_connectedapp)のいずれかのメソッドで「プロジェクト ID」を使用します。

**注:** 接続済みアプリに複数のプロジェクトが構成されている場合、Tableau は接続済みアプリのアクセス レベルに対応する**複数のプロジェクト**を表示します。\[1 つのプロジェクトのみ\] または \[すべてのプロジェクト\] を選択して接続済みアプリを更新すると、\[Multiple projects (複数のプロジェクト)\] オプションは表示されなくなります。複数のプロジェクトに対して接続済みアプリをもう一度構成する必要がある場合は、REST API を使用する必要があります。

### ドメイン許可リスト ルール (埋め込みのワークフローのみ)

接続済みアプリのドメイン許可リストを使用すると、埋め込まれた Tableau コンテンツへのアクセスをすべてのドメインまたは一部のドメインに制限するか、一部のドメインを除外するか、またはすべてのドメインをブロックすることができます。

**重要:** Tableau コンテンツが許可した場所にのみ埋め込まれるように、セキュリティのベスト プラクティスとしてドメイン許可リストを使用することをお勧めします。

#### ドメイン オプション

接続済みアプリのドメイン許可リストを構成する際は、次の 2 つのオプションのいずれかを選択できます。

- **すべてのドメイン:** 既定のオプションとして、このオプションは埋め込みコンテンツへの無制限のアクセスを有効にします。
- **特定のドメインのみ:** このオプションを使用すると、埋め込みコンテンツへのアクセスの範囲を限定できます。このオプションを使用する場合は、次のセクション「[ドメインの書式設定](#domain_formatting)」指定されている書式設定ルールに従ってください。

#### ドメインの書式設定

\[domain allowlist (ドメイン許可リスト)\] テキスト ボックスには、以下の書式設定の例を使用して、1 つまたは複数のドメインを入力することができます。

**注:** ドメインの書式設定のルールは、Tableau REST API で [接続済みアプリのメソッド](https://help.tableau.com/current/api/rest_api/ja-jp/REST/rest_api_ref_connected_app.htm)を使用する場合にも適用されます。

一般的なシナリオに基づく書式設定の例をいくつか示します。

<table style="width: 90%;mc-table-style: url('Resources/TableStyles/Basic-Border-Light.css');margin-left: 0;margin-right: auto;" class="TableStyle-Basic-Border" cellspacing="0">
                    <colgroup><col class="TableStyle-Basic-Border-Column-Column1">
                    <col class="TableStyle-Basic-Border-Column-Column1">
                    <col class="TableStyle-Basic-Border-Column-Column1">
                    </colgroup><tbody>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">指定する内容</td>
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">例</td>
                            <td class="TableStyle-Basic-Border-BodyD-Column1-Body1" style="font-weight: bold;">埋め込みへのアクセス</td>
                        </tr>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">ドメインの範囲</td>
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">*.myco.com</td>
                            <td class="TableStyle-Basic-Border-BodyD-Column1-Body1">埋め込みコンテンツには、myco.com のすべてのサブドメインからアクセスできます。</td>
                        </tr>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">すべてのポート</td>
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">myco.com:*</td>
                            <td class="TableStyle-Basic-Border-BodyD-Column1-Body1">埋め込みコンテンツには、myco.com のすべてのポートからアクセスできます。</td>
                        </tr>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">特定のポート</td>
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">myco.com:8080</td>
                            <td class="TableStyle-Basic-Border-BodyD-Column1-Body1">埋め込みコンテンツには、myco.com のポート 8080 からのみアクセスできます。</td>
                        </tr>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">複数の個別のドメイン</td>
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">myco.com<br>events.myco.com<br>ops.myco.com<br></td>
                            <td class="TableStyle-Basic-Border-BodyD-Column1-Body1">
                                <p>埋め込みコンテンツには、3 つのすべてのドメインからアクセスできます。</p>
                                <p><b>注:</b> 複数のドメインを指定するときは、各ドメインを新しい行に入力するか、ドメインをスペースで区切ってください。REST&nbsp;API の場合は、ドメインをスペースで区切る必要があります。</p>
                            </td>
                        </tr>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">セキュアなトラフィックのみ</td>
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">https://</td>
                            <td class="TableStyle-Basic-Border-BodyD-Column1-Body1">埋め込みコンテンツには、ドメインに関係なく、安全にアクセスできます。</td>
                        </tr>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">ドメインの範囲のすべてのポートへのセキュアなトラフィック</td>
                            <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">https://*myco.com:*</td>
                            <td class="TableStyle-Basic-Border-BodyD-Column1-Body1">埋め込みコンテンツには、myco.com のすべてのサブドメインのすべてのポートから安全にアクセスできます。</td>
                        </tr>
                        <tr class="TableStyle-Basic-Border-Body-Body1">
                            <td class="TableStyle-Basic-Border-BodyB-Column1-Body1">ドメインなし</td>
                            <td class="TableStyle-Basic-Border-BodyB-Column1-Body1">[ドメインなし]</td>
                            <td class="TableStyle-Basic-Border-BodyA-Column1-Body1">埋め込みコンテンツへのアクセスはブロックされます。</td>
                        </tr>
                    </tbody>
                </table>

### 既知の問題 (埋め込みのワークフローのみ)

接続済みアプリの使用にはいくつかの既知の問題がありますが、これらは今後のリリースで対処される予定です。

- **ツールバー機能:** 埋め込みコンテンツにツールバーのパラメーターが定義されている場合、すべてのツールバー機能が動作するとは限りません。この問題を回避するには、次の例のようにツールバーのパラメーターを非表示にすることをお勧めします。
    
    <tableau-viz id='tab-viz' src='https://online.tableau.com/t/<your\_site>/...'
    	toolbar='hidden'>
    </tableau-viz>

- **パブリッシュされたデータ ソース:** データベースの認証資格情報の入力を求める \[ユーザーにメッセージを表示\] が設定されているパブリッシュされたデータ ソースは表示されません。この問題を回避するには、可能であれば、データ ソースの所有者がデータベースの認証資格情報を埋め込むことをお勧めします。

- **埋め込みダッシュボードの「データに聞く」オブジェクト**: 埋め込みダッシュボードの「データに聞く」オブジェクトは読み込まれません。(2024 年 2 月 (Tableau 2024.1)、Tableau は「データに聞く」機能を廃止しました。)
- **メトリクスとドメイン許可リスト:** 接続済みアプリのドメイン許可リストでアクセス制限が指定されているかどうかにかかわらず、埋め込みメトリクスのビューが表示されます。**注:** 埋め込みビューのツールバーからアクセスされるメトリクス データは、期待どおりに機能します。( 2023 年 10 月 (Tableau 2023.3) で、Tableau はメトリクスを埋め込む機能を廃止しました。)

## トラブルシューティング

接続済みアプリに関連する可能性のあるエラーと、推奨されるトラブルシューティングのステップについては、「[接続済みアプリをトラブルシューティングする - 直接信頼](https://help.tableau.com/current/online/ja-jp/connected_apps_troubleshoot.htm)」を参照してください。