サーバー全体の SAML の構成
サーバー全体の SAML の構成は、Tableau Server のすべてのシングル サインオン (SSO) ユーザーに対し、単一の SAML アイデンティティ プロバイダー (IdP) を使用して認証するように設定する場合、またはマルチサイト環境でサイト固有の SAML を構成する最初のステップとして実行します。
サーバー全体の SAML を構成しており、サイトを構成する準備が整っている場合は、サイト固有の SAML の構成を参照してください。
SAML 構成手順では次を前提にしています。
-
SAMLトピックで説明されているとおり、Tableau Server で SAML 認証を構成する際のオプションを熟知している。
-
お使いの環境が SAML 要件を満たすことを確認し、それらの要件で説明されている SAML 証明書ファイルを取得してある。
はじめる前に
災害復旧計画の一環として、証明書と IdP ファイルのバックアップを Tableau Server 外部の安全な場所に保管することをお勧めします。Tableau Server にアップロードする SAML アセット ファイルは、クライアント ファイル サービスによって他のノードに格納および配布されます。ただし、これらのファイルは復元可能な形式では格納されません。Tableau Server クライアント ファイル サービスを参照してください。
注: SSL に同じ 証明書ファイルを使用する場合は、代わりに既存の証明書の場所を使用して SAML を構成することも、ファイルをダウンロードして後でこの手順を実行する場合に IdP メタデータ ファイルをディレクトリに追加しておくこともできます。詳細については、SAML 要件のSAML での SSL 証明書およびキー ファイルの使用を参照してください。
クラスタ内で Tableau Server を実行している場合は、SAML の有効化時に、SAML 証明書、キー、およびメタデータ ファイルがノードに自動的に配布されます。
この手順では、SAML 証明書を TSM にアップロードして、証明書がサーバー構成で適切に保存および配布されるようにする必要があります。SAML ファイルには、この手順で TSM Web インターフェイスを実行しているローカル コンピューターのブラウザーからアクセスできる必要があります。
前のセクションで推奨されているように SAML ファイルを収集して Tableau Server に保存した場合は、ファイルをコピーした Tableau Server コンピューターから TSM Web インターフェイスを実行します。
別のコンピューターから TSM Web インターフェイスを実行している場合は、続行する前にすべての SAML ファイルをローカルにコピーする必要があります。以下の手順に従ってローカル コンピューター上のファイルを参照し、TSM にアップロードします。
-
ブラウザーで TSM を開きます。
https://<tsm-computer-name>:8850詳細については、Tableau サービス マネージャーの Web UI へのサインインを参照してください。
-
[構成] タブで [ユーザー ID とアクセス] を選択してから [認証方法] タブを選択します。
-
[認証方法] で、[SAML] を選択します。
-
SAML セクションが表示されるので、以下の設定を入力して GUI のステップ 1 を完了します (まだチェック ボックスをオンにしてサーバーで SAML を有効にしないでください)。
-
Tableau Server リターン URL - Tableau Server のユーザーがアクセスされる http://tableau_server などの URL です。
https://localhost または末尾にスラッシュがある URL (http://tableau_server/ など) の使用はサポートされていません。
-
SAML エンティティ ID — Tableau Server のインストールを IdP に対して一意に識別するエンティティ ID。
ここで Tableau Server URL を再度入力できます。サイト固有の SAML を後ほど有効にする場合、この URL は各サイトの固有の ID のベースとしても役立ちます。
-
SAML 証明書とキー ファイル — [ファイルの選択] をクリックして、各ファイルをアップロードします。
PKCS#8 パスフレーズで保護されたキー ファイルを使用している場合、TSM CLI を使用してパスフレーズを入力する必要があります。
tsm configuration set -k wgserver.saml.key.passphrase -v <passphrase>GUI のステップ 1 で必要な情報を入力後、GUI のステップ 2 の [XML メタデータ ファイルのダウンロード] ボタンが使用できるようになります。
-
-
GUI のステップ 1 の上にある [サーバーの SAML 認証を有効化] チェック ボックスを選択します。
-
残りの SAML 設定を完了します。
-
ステップ 2 および 3 では、メタデータを Tableau Server と IdP の間で交換します(IdP のドキュメントをチェックする必要がある場合があります)。
[XML メタデータ ファイルをダウンロード] を選択して、ファイルの場所を指定します。
その他の IdP の場合は、IdP アカウントに進み Tableau Server をそのアプリケーションに追加し (サービス プロバイダーとして)、適宜 Tableau メタデータを入力します。
IdP の Web サイトまたはドキュメントに記載の指示に従って IdP のメタデータをダウンロードします。.xml ファイルを、SAML 証明書およびキー ファイルと同じ場所に保存します。例:
/var/opt/tableau/tableau_server/data/saml/idp-metadata.xml -
TSM Web UI に戻ります。GUI のステップ 4 では、IdP メタデータ ファイルへのパスを入力し、次に [ファイルの選択] をクリックします。
-
ステップ 5: IdP によって渡されるアサーション名と一致するように、Tableau Server 構成でアサーション値を変更することが必要になる場合があります。
アサーション名は、IdP の SAML 構成で確認できます。異なるアサーション名が IdP から渡される場合は、同じアサーション値を使用するように Tableau Server を更新する必要があります。
ヒント: “アサーション” は主要な SAML コンポーネントであり、アサーション マッピングのコンセプトは最初は扱いにくい場合があります。これを表データ コンテキストにすると便利な場合があります。そこでは、アサーション (属性) 名を表の列ヘッダーと同じにします。その列に表示される値の例ではなく、“ヘッダー” 名を入力します。
-
ステップ 6 では、ユーザーがシングル サインオンできる Tableau アプリケーションを選択します。
注: Tableau Mobile アプリのバージョン 19.225.1731 以上を実行するデバイスでは、モバイル アクセスを無効化するオプションは無視されます。当該バージョンを実行するデバイスで SAML を無効にするには、Tableau Server でクライアント ログイン オプションとしての SAML を無効にする必要があります。
-
SAML サインアウト リダイレクト用に、IdP がシングル ログアウト (SLO) に対応している場合は、サインアウト後にユーザーをリダイレクトするページを、Tableau Server リターン URL に入力したパスからの相対パスとして入力します。
-
(オプション) 手順 7 では、以下を実行します。
-
AuthNContextClassRef属性にコンマ区切りの値を追加します。この属性の使用方法の詳細については、SAML 互換性についての注意事項と要件を参照してください。 -
ユーザー名の一部として定義域を送信しない場合は、定義域属性を指定します (例:
domain\username)。詳細については、「複数のドメインを実行している場合」を参照してください。
-
-
(オプション) ステップ 8 で、[Enable capture of user attributes during SAML authentication] チェックボックスをオンにします。ユーザー属性の詳細については、ユーザー属性を使用したデータ アクセスのカスタマイズと制御を参照してください。
-
-
構成情報を入力したら、[保留中の変更を保存] をクリックします。
-
ページ上部の [変更を保留中] をクリックします。
-
[変更を適用して再起動] をクリックします。
はじめる前に
開始する前に、以下を行ってください。
-
IdP の Web サイトまたはアプリケーションから移動し、IdP のメタデータ XML ファイルをエクスポートします。
IdP からの XML メタデータに SingleSignOnService 要素が含まれていることを確認します。これは、次の例のようにバインドを
HTTP-POSTに設定する要素です。<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/SSO.saml2"/>
-
証明書ファイルを収集し、Tableau Server 上に配置します。
Tableau Server フォルダーに SAML という名前の新しいフォルダーを作成し、そのフォルダーに SAML 証明書ファイルのコピーを保存します。例は次のとおりです。
/var/opt/tableau/tableau_server/data/saml
ステップ 1:リターン URL、SAML エンティティ ID を構成し、証明書ファイルとキー ファイルを指定する
-
コマンド プロンプト シェルを開き、サーバーの SAML 設定を構成します (プレースホルダー値を環境パスとファイル名で置き換えます)。
tsm authentication saml configure --idp-entity-id https://tableau-server --idp-metadata /var/opt/tableau/tableau_server/data/saml/<metadata-file.xml> --idp-return-url https://tableau-server --cert-file /var/opt/tableau/tableau_server/data/saml/<file.crt> --key-file /var/opt/tableau/tableau_server/data/saml/<file.key>詳細については、「
tsm authentication saml configure」を参照してください。 -
パスフレーズで保護されている PKCS#8 キーを使用している場合は、パスフレーズを以下の通りに入力してください。
tsm configuration set -k wgserver.saml.key.passphrase -v <passphrase> -
SAML がまだ Tableau Server 上で有効でない場合、たとえば、初回設定時や、それを無効にしている場合は、ここで SAML を有効にします。
tsm authentication saml enable -
変更を適用します。
tsm pending-changes apply保留中の変更にサーバーの再起動が必要な場合は、
pending-changes applyコマンドの実行時に、再起動が行われることを知らせるメッセージが表示されます。このメッセージはサーバーが停止していても表示されますが、その場合には再起動は行われません。--ignore-promptオプションを使用してメッセージが表示されないようにできますが、そのようにしても再起動に関する動作が変わることはありません。変更に再起動が必要ない場合は、メッセージなしで変更が適用されます。詳細については、tsm pending-changes applyを参照してください。
ステップ 2:Tableau Server メタデータを生成し IdP を構成する
-
次のコマンドを実行して Tableau Server のために必要な XML メタデータ ファイルを生成します。
tsm authentication saml export-metadata -f <file-name.xml>ファイル名を指定するか、
-fパラメーターを省略して、samlmetadata.xmlという名前の既定のファイルを作成することができます。 -
IdP の Web サイトまたはアプリケーションで次のように実行します。
-
Tableau Server をサービス プロバイダーとして追加します。
追加の方法は IdP のマニュアルを参照してください。Tableau Server をサービス プロバイダーとして構成するプロセスの一環として、
export-metadataコマンドで生成した Tableau Server メタデータ ファイルをインポートします。 -
IdP がユーザー検証のためにユーザー名を属性要素として使用することを確認します。
-
ステップ3: アサーションを一致させる
Tableau Server 構成でアサーション値を変更し、IdP により渡されるアサーション名と一致させる必要がある場合があります。
アサーション名は、IdP の SAML 構成で確認できます。異なるアサーション名が IdP から渡される場合は、同じアサーション値を使用するように Tableau Server を更新する必要があります。
ヒント: “アサーション” は主要な SAML コンポーネントであり、アサーション マッピングのコンセプトは最初は扱いにくい場合があります。これを表データ コンテキストにすると便利な場合があります。そこでは、アサーション (属性) 名を表の列ヘッダーと同じにします。その列に表示される値の例ではなく、“ヘッダー” 名を入力します。
次の表は、既定のアサーション値と、その値を保存する構成キーを示しています。
| アサーション | 既定値 | キー |
|---|---|---|
| ユーザー名 | username
|
wgserver.saml.idpattribute.username
|
| 表示名 | displayName
|
Tableau はこの属性タイプをサポートしていません。 |
| メール | email
|
Tableau はこの属性タイプをサポートしていません。 |
| ドメイン | (既定ではマッピングされない) | wgserver.saml.idpattribute.domain
|
指定した値を変更するには、適切なキーと値のペアを使用し、tsm configuration set コマンドを実行します。
たとえば、username アサーションを name という値に変更するには、次のコマンドを実行します。
tsm configuration set -k wgserver.saml.idpattribute.username -v name
tsm pending-changes apply
または、tsm authentication saml map-assertions コマンドを使用して、指定された値を変更します。
たとえば、ドメイン アサーションを domain という値に設定するには、その値を「example.myco.com」として指定し、次のコマンドを実行します。
tsm authentication saml map-assertions --domain example.myco.com
tsm pending-changes apply
オプション: SAML を使用したクライアントのタイプの無効化
既定では、Tableau Desktop と Tableau Mobile アプリの両方で SAML 認証を使用できます。
IdP でこの機能がサポートされていない場合、以下のコマンドを使用して Tableau クライアント向けの SAML サインインを無効にできます。
tsm authentication saml configure --desktop-access disable
tsm authentication saml configure --mobile-access disable
注: Tableau Mobile アプリのバージョン 19.225.1731 以上を実行するデバイスでは、--mobile-access disable オプションは無視されます。当該バージョンを実行するデバイスで SAML を無効にするには、Tableau Server でクライアント ログイン オプションとしての SAML を無効にする必要があります。
tsm pending-changes apply
オプション: AuthNContextClassRef 値を追加します。
AuthNContextClassRef 属性にコンマ区切りの値を追加します。この属性の使用方法の詳細については、SAML 互換性についての注意事項と要件を参照してください。
この属性を設定するには、次のコマンドを実行します。
tsm configuration set -k wgserver.saml.authcontexts -v <value>
tsm pending-changes apply
構成のテスト
-
Web ブラウザーで新しいページまたはタブを開き、Tableau Server の URL を入力します。
ブラウザーによって IdP のサインイン フォームにリダイレクトされます。
-
シングル サインオンのユーザー名とパスワードを入力します。
IdP で認証資格情報が検証され、リダイレクトされて Tableau Server のスタート ページに戻ります。
ユーザー属性を使用したデータ アクセスのカスタマイズと制御
ユーザー属性は、組織で定義されるユーザー メタデータです。ユーザー属性を使用して、一般的な属性ベースのアクセス制御 (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 には、その地域固有のデータが表示されます。
ワークブックに地域が記載されていないマネージャーには、空のワークブックが表示されます。
既知の問題と制限事項
ユーザー属性関数を使用する際に考慮すべき、いくつかの既知の問題と制限があります。
