個人用アクセス トークン (PAT) を使用すると、Tableau Server ユーザーは長期間有効な認証トークンを作成することができます。このトークンを使用すると、ユーザーはハードコードされた認証資格情報やインタラクティブなサインインを必要とすることなく、Tableau REST API を使用して自動化を実行できます。Tableau REST API での個人用アクセス トークンの使用の詳細については、「サインインとサインアウト (認証)」(新しいウィンドウでリンクが開く)(英語) を参照してください。

個人用アクセス トークンは、Tableau Server Web インターフェイス、TSM、tabcmd インターフェイスへの一般的なクライアント アクセスには使用されません。

Tableau REST API で作成された自動スクリプトとタスクで使用する個人用アクセス トークンを作成することをお勧めします。

  • セキュリティの強化: 個人用アクセス トークンは、認証資格情報が侵害された場合のリスクを軽減します。Tableau Server が Active Directory または LDAP を アイデンティティ ストアとして使用する場合には、自動化タスクで個人用アクセス トークンを使用することで認証資格情報の侵害範囲を縮小できます。この場合、アプリケーション固有のトークンを使用すると、自動化ファイルやスクリプト ファイルが侵害されたとしても、広範囲にわたってシステムが危険にさらされることはありません。トークンが侵害される場合や、自動化で使用されて失敗したりリスクが生じたりする場合は、トークンを取り消すだけで十分です。ユーザーの認証資格情報を交換したり、取り消したりする必要はありません。
  • 監査と追跡: 管理者は、Tableau Server ログを確認し、トークンが使用された時期、そのトークンから作成されたセッション、それらのセッションで実行されたアクションを追跡することができます。また、セッションや関連タスクが、トークンから生成したセッションで実行されたか、インタラクティブなサインインから生成したセッションで実行されたかを確認することもできます。
  • 自動化の管理: トークンは実行されるスクリプトやタスクごとに作成できます。これにより、組織全体の自動化タスクをサイロに入れ、確認することができます。さらに、トークンを使用すると、ユーザー アカウントのパスワード リセットやメタデータの変更 (ユーザー名、メールなど) を行っても、認証資格情報がスクリプトにハードコードされている場合と同様、自動化が中断することはありません。

個人用アクセス トークンについて

トークンが作成されると、ハッシュされ、リポジトリに保存されます。トークンがハッシュされて保存されると、元のトークンは削除されます。ユーザーは、トークンを安全な場所にコピーし、パスワードと同様に扱うように指示されます。実行時にトークンを使用すると、Tableau Server はユーザーが提示したトークンをハッシュし、それをリポジトリに保存されているハッシュ値と比較します。一致すると、認証済みセッションが開始されます。

注: 同時要求ごとに 1 つの個人用アクセス トークンが必要です。同じサイトまたは別のサイトで、同じアクセス トークンを使用して再度サインインすると、前のセッションが終了し、認証エラーが表示されます。

認可では、Tableau Server はユーザーが持つ対話ユーザーと同じパーミッションと権限を使用して認証済みセッションを処理します。

サーバー管理者の偽装

バージョン 2021.1 以降では、Tableau Server で個人用アクセス トークンの偽装を有効にすることができます。このシナリオでは、Tableau Server REST API を使用する場合に、サーバー管理者によって作成されたアクセス トークンをユーザーの偽装(新しいウィンドウでリンクが開く)に使用することができます。偽装は、アプリケーション内にエンド ユーザー固有の Tableau コンテンツを埋め込むというシナリオで役に立ちます。具体的には、偽装アクセス トークンを使用すると、認証資格情報をハードコーディングせずに、特定のユーザーとしてクエリを実行するアプリケーションを構築し、Tableau Server 内でアクセスが許可されているコンテンツを取得できます。

詳細については、Tableau REST API ヘルプの「ユーザーの偽装」(新しいウィンドウでリンクが開く)を参照してください。

偽装サインインの要求時に Tableau Server で個人用アクセス トークンが承認されるようにする

既定では、Tableau Server ではサーバー管理者の個人用アクセス トークンの偽装は許可されていません。次のコマンドを実行して、サーバー全体で設定を有効にする必要があります。

tsm authentication pat-impersonation enable [global options]

tsm pending-changes apply

重要: コマンドを実行した後は、サーバー管理者が作成したすべての個人用アクセス トークン (既存のトークンを含む) を偽装に使用できます。既存のすべてのサーバー管理者の個人用アクセス トークンを一括で取り消す場合は DELETE /api/{api-version}/auth/serverAdminAccessTokens URI をポストできます。Tableau REST API ヘルプの「ユーザーの偽装」(新しいウィンドウでリンクが開く)を参照してください。

トークンの作成

Tableau Server にアカウントを持つユーザーは、[マイ アカウントの設定] ページで個人用アクセス トークンの作成、管理、取り消しを行うことができます。詳細については、「Tableau Desktop と Web 作成のヘルプ」「アカウント設定の管理」(新しいウィンドウでリンクが開く)を参照してください。

ユーザーは、独自の個人用アクセス トークンを作成する必要があります。管理者はユーザーのトークンを作成できません。

トークンの有効期限

個人用アクセス トークン が 15 日連続で使用されない場合、そのトークンは期限切れになります。アクセス トークン が 15 日ごとよりも頻繁に使用される場合、トークンは 1 年後に期限切れになります。1 年後に新しいトークンを作成する必要があります。期限切れの個人用アクセス トークンは、[マイ アカウントの設定] ページには表示されません。

トークンの有効期限の更新間隔は、tsm configuration set コマンドによる設定オプションの refresh_token.absolute_expiry_in_seconds を使用すると変更できます。

ユーザーのトークンの取り消し

ユーザーは [マイ アカウントの設定] ページで自分のトークンを取り消すことができます。管理者も個人用アクセス トークンを取り消すことができます。

  1. サイト管理者またはサーバー管理者としてTableau Server 管理者エリアへのサインインを行います。
  2. トークンを取り消すユーザーを見つけます。サーバー管理者ページ内の移動とユーザーの検索の詳細については、ユーザーの表示、管理、削除を参照してください。
  3. ユーザー名前をクリックし、プロフィール ページを開きます。
  4. ユーザーのプロフィール ページで、[設定] タブをクリックします。
  5. [個人用アクセス トークン] セクションで取り消すトークンを特定し、[取り消す] をクリックします。
  6. 確認のポップアップで [削除] をクリックします。

使用状況の追跡と監視

トークン関連のすべてのアクションは、Tableau Server のアプリケーション サーバー (vizportal) サービスに記録されます。

トークン関連のアクティビティを見つけるには、RefreshTokenService の文字列を含むログ エントリをフィルターします。

トークンは Token Guid: <TokenID(Guid)> の形式で保存されます。TokenID は Base64 エンコード化された文字列です。トークン シークレットはログに含まれていません。例:

Token Guid: 49P+CxmARY6A2GHxyvHHAA== (e3d3fe0b-1980-458e-80d8-61f1caf1c700)

以下は 2 つのログ エントリのスニペット例です。1 つ目はユーザーがどのようにトークンにマッピングされているかを示しています。2 つ目は同じトークンの更新イベントを示しています。

RefreshTokenService - Issued refresh token to the following user: jsmith. Token Guid: 49P+CxmARY6A2GHxyvHHAA== (e3d3fe0b-1980-458e-80d8-61f1caf1c700)
RefreshTokenService - Redeemed refresh token. Token Guid: 49P+CxmARY6A2GHxyvHHAA== (e3d3fe0b-1980-458e-80d8-61f1caf1c700)

主要な操作を見つけるには、OAuthController の文字列を含むログ エントリをフィルターします。

ありがとうございます!