OpenID Connect に対応するように Tableau Server を構成する
このトピックでは、シングルサインオン (SSO) に OpenID Connect (OIDC) を使用するよう Tableau Server を構成する方法を説明します。これは、複数のステップにわたるプロセスの 1 ステップです。次のトピックでは、Tableau Server.での OIDC の構成および使用に関する情報を提供します。
-
OpenID Connect の概要
-
OpenID Connect に対応するように Tableau Server を構成する (現在のセクション)
注:
- ここで説明するステップを実行する前に、OpenID Connect に対応するように ID プロバイダーを構成する で説明されている OpenID アイデンティティ プロバイダー (IdP) を構成する必要があります。
- このトピックで説明する手順は、アイデンティティ プールを使用して設定された OIDC 認証に適用される場合があります。ただし、最初に「アイデンティティ プール (ID プール) を使用したユーザーのプロビジョニングと認証」に従い、その後、必要に応じてこのトピックに戻って参照してください。
- Tableau REST API および tabcmd では、OIDC シングル サインオン (SSO) はサポートされていません。tabcmd または REST API(新しいウィンドウでリンクが開く) を使用するには、ユーザーは TableauID アカウントを使用して Tableau Server にサインインする必要があります。
-
ブラウザーで TSM を開きます。
https://<tsm-computer-name>:8850詳細については、「Tableau サービス マネージャーの Web UI へのサインイン」を参照してください。
-
[構成] タブで、[ユーザー ID とアクセス] > [認証方法] の順に選択します。
-
[認証方法] で、ドロップダウン メニューから [OpenID Connect] を選択します。
-
OpenID Connect で、[サーバーの OpenID 認証を有効化] を選択します。
-
自分の組織の OpenID 構成情報を次のように入力します。
注:
-
ステップ 3: プロバイダーが、パブリック URL でホストされたファイルではなくローカル コンピューター上でホストされた構成ファイルに依存している場合は、tsm authentication open-id <commands> を実行してファイルを指定できます。
--metadata-file <file_path>オプションを使用して、ローカル IdP 構成ファイルを指定します。 -
ステップ 4: Tableau Server 2025.3 以降では、シングル ログアウト (SLO) を有効にして、サインアウト後にユーザーをリダイレクトする URL を指定できます。
-
ステップ 5: Tableau Server 2026.2 以降では、OIDC 認証ワークフローの一部としてユーザー属性とその機能を有効にすることができます。詳細については、「OIDC クレームのユーザー属性」を参照してください。
-
-
構成情報を入力したら、[保留中の変更を保存] をクリックします。
-
ページ上部の [変更を保留中] をクリックします。
-
[変更を適用して再起動] をクリックします。
このセクションでは、TSM コマンド ライン インターフェースを使用して OpenID Connect を構成する手順を説明します。OpenID Connect の初期構成には、構成ファイルを使用することもできます。openIDSettings エンティティを参照してください。
-
tsm authentication open-id <commands> の
configureコマンドを使用して以下の必要オプションを設定してください。-
--client-id <id>: IdP がアプリケーションに割り当てているプロバイダー クライアント ID を指定します。たとえば、“xxxkjwdlnaoiloadjkwha"のように使用します。
-
--client-secret <secret>: プロバイダー クライアント シークレットを指定します。これは、Tableau が IdP からの応答の真偽を検証するために使用するトークンです。この値は秘密で、保護しておく必要があります。たとえば、“xxxhfkjaw72123="のように使用します。
-
--config-url <url>または--metadata-file <file_path>: プロバイダー構成 json ファイルの場所を指定します。プロバイダーがパブリック JSON 検出ファイルをホストしている場合、--config-urlを使用してください。それ以外の場合、代わりにローカルコンピューター上のパスと--metadata-fileのファイル名を指定してください。
-
--return-url <url>: サーバーの URL です。一般的には、これはサーバーのパブリック名 ("http://example.tableau.com"など) になります。
たとえば、このコマンドを実行します。
tsm authentication openid configure --client-id “xxxkjwdlnaoiloadjkwha" --client-secret “xxxhfkjaw72123=" --config-url "https://example.com/openid-configuration" --return-url "http://tableau.example.com"注:
-
openIDSettings エンティティ を使用して Open ID Connect に設定できるその他のオプション構成もあります。または、tsm authentication open-id <commands> を使用できます。さらに、IdP クレーム マッピングを構成する必要がある場合は、openid map-claims のオプションを参照してください。
-
Tableau Server 2025.3 以降では、tsm authentication open-id <commands> を使用して、必要に応じてシングル ログアウト (SLO) を有効にできます。
-
-
次のコマンドを入力して Open ID Connect を有効にします。
tsm authentication openid enable -
tsm pending-changes applyを実行して変更を適用します。保留中の変更にサーバーの再起動が必要な場合は、
pending-changes applyコマンドの実行時に、再起動が行われることを知らせるメッセージが表示されます。このメッセージはサーバーが停止していても表示されますが、その場合には再起動は行われません。--ignore-promptオプションを使用してメッセージが表示されないようにできますが、そのようにしても再起動に関する動作が変わることはありません。変更に再起動が必要ない場合は、メッセージなしで変更が適用されます。詳細については、tsm pending-changes applyを参照してください。
ユーザー属性を使用したデータ アクセスのカスタマイズと制御
ユーザー属性は、組織で定義されるユーザー メタデータです。ユーザー属性を使用して、一般的な属性ベースのアクセス制御 (ABAC) 許可モデルでアクセスを判定することができます。ユーザー属性には、職務、部門メンバーシップ、管理レベルなど、ユーザー プロフィールのあらゆる側面が該当します。また、ユーザー属性は、ユーザーがサインインしている場所や言語設定など、ランタイム ユーザー コンテキストに関連付けられている場合もあります。
ユーザー属性をワークフローに含めることで、データ アクセスとパーソナライゼーションを通じてユーザー エクスペリエンスを制御したりカスタマイズしたりできます。
- データ アクセス: ユーザー属性を使用して、データ セキュリティ ポリシーを適用できます。これにより、ユーザーが表示できるのは閲覧が許可された情報のみになります。
- パーソナライゼーション: 場所や役割などのユーザー属性を渡すことで、コンテンツをカスタマイズして、アクセスするユーザーに関連する情報のみを表示し、ユーザーが必要な情報を見つけやすくすることができます。
ユーザー属性を渡すステップの概要
ワークフローでユーザー属性を有効にするプロセスの手順は、次のとおりです。
- ユーザー属性設定を有効にする
- アサーションにユーザー属性を含める
- コンテンツ作成者がユーザー属性関数と関連フィルターを含めていることを確認する
- コンテンツを確認する
ステップ 1: ユーザー属性設定を有効にする
セキュリティ上の理由から、ユーザー属性が認証ワークフローで検証されるのは、
-
ブラウザーで TSM を開きます。
https://<tsm-computer-name>:8850詳細については、「Tableau サービス マネージャーの Web UI へのサインイン」を参照してください。
-
[構成] タブで、[ユーザー ID とアクセス] > [認証方法] の順に選択します。
-
[認証方法] で、ドロップダウン メニューから [SAML] を選択します。
-
ステップ 8で、[Enable capture of user attributes during SAML authentication (SAML 認証中にユーザー属性のキャプチャを有効にする)] チェックボックスをオンにします。
-
終了したら、次を実行します。
-
[保留中の変更を保存] をクリックします。
-
ページの上部にある[保留中の変更] ボタンをクリックします。
-
[変更を適用して再起動] をクリックします。
-
ステップ 2: アサーションにユーザー属性を含める
アサーションにユーザー属性が含まれていることを確認します。
注: SAML 応答の属性には、scope 属性または scp 属性を除き、4096 文字の制限が適用されます。応答の属性 (ユーザー属性を含む) がこの制限を超える場合、Tableau は属性を削除し、代わりに ExtraAttributesRemoved 属性を渡します。その後、コンテンツ作成者は ExtraAttributesRemoved 属性を使用して計算を作成し、この属性が検出された場合のユーザーに対するコンテンツの表示方法を決定できます。
例
南部地域のマネージャーである Fred Suzuki という従業員がいるとします。あなたは、Fred がレポートをレビューするときに、南部地域のデータのみが表示されるようにしたいと考えています。このようなシナリオでは、以下の例のように、SAML 応答に Region ユーザー属性を含めることができます。
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
<saml;Issuer">https://myidp.okta.com/saml</saml:Issuer">
<saml;Subject">
<saml:NameId Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"fsuzuki@example.com</saml:NameID">
<saml:AttributeStatement xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:Attribute Name="Region" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue">South</saml:AttributeValue">
</saml:Attribute">
</saml:AttributeStatement">
</saml:Assertion">
ステップ 3: コンテンツ作成者が属性関数を含めていることを確認する
コンテンツ作成者がユーザー属性関数と関連フィルターを含めていて、コンテンツに表示できるデータの制御が可能になっていることを確認します。ユーザー属性アサーションが Tableau に確実に渡されるようにするには、コンテンツに次のユーザー属性関数のいずれかが含まれている必要があります。
USERATTRIBUTE('attribute_name')USERATTRIBUTEINCLUDES('attribute_name', 'expected_value')
コンテンツ作成者が使用する関数は、ユーザー属性が単一の値を返すと想定されるのか、複数の値を返すと想定されるのかによって異なります。これらの関数の詳細とそれぞれの例については、Tableau ヘルプの「ユーザー関数(新しいウィンドウでリンクが開く)」を参照してください。
注:
- Tableau Desktop や Tableau Cloud で作成する場合、これらの関数を使用したコンテンツのプレビューは利用できません。関数は、NULL または FALSE を返します。ユーザー関数が想定どおりに動作するようにするために、作成者には、コンテンツを公開した後、関数を確認することをお勧めします。
- コンテンツ作成者は、コンテンツが想定どおりにレンダリングされるようにするために、1) この属性をチェックして、2) メッセージの表示など、属性によるコンテンツの処理方法 (処理する場合) を決定する
ExtraAttributesRemovedを使った計算を含めることを検討してもよいでしょう。SAML XML の属性が 4096 文字を超える場合、Tableau は、ExtraAttributesRemoved属性のみを追加し、他のすべての属性 (scpまたはscopeを除く) を削除します。これは、最適なパフォーマンスを確保するとともに、ストレージの制限を考慮するためです。
例
上記の「ステップ 2: アサーションにユーザー属性を含める」で紹介した例を続けます。「Region」ユーザー属性アサーションをワークブックに渡すには、作成者は USERATTRIBUTEINCLUDES を含めることができます。たとえば、USERATTRIBUTEINCLUDES('Region', [Region]) では、‘Region’ はユーザー属性であり、[Region] はデータの列です。作成者は新しい計算を使用して、「Manager (マネージャー)」データと「Sales (売上)」データを含む表を作成できます。計算が追加されると、ワークブックは想定どおり「False」値を返します。
作成者は、埋め込まれたワークブックに「South (南部)」地域に関連付けられたデータのみを表示するために、フィルターを作成してカスタマイズし、「South (南部)」地域が「True」のときに値を表示することができます。関数が「False」値を返し、フィルターが「True」値のみを表示するようにカスタマイズされているため、フィルターを適用すると、ワークブックは想定どおり空白になります。
ステップ 4: コンテンツを確認する
コンテンツを確認して検証します。
例
ステップ 3: コンテンツ作成者が属性関数を含めていることを確認するの例を完結させます。Fred Suzuki のユーザー コンテキストが「South (南部)」地域であるため、ビューの「Sales (売上)」データが「Fred Suzuki」にカスタマイズされていることがわかります。
ワークブックに示されている地域のマネージャーには、担当地域に関連付けられた値が表示されるはずです。たとえば、「West (西部)」地域の Sawdie Pawthorne には、その地域固有のデータが表示されます。
ワークブックに地域が記載されていないマネージャーには、空のワークブックが表示されます。
既知の問題と制限事項
ユーザー属性関数を使用する際に考慮すべき、いくつかの既知の問題と制限があります。
