Tableau Server で SAML を構成する前に、使用している環境が要件を満たしていることを確認してください。

重要: SAML 構成は、IdP と Tableau Server の両方で、大文字と小文字が区別されます。たとえば、IdP と Tableau Server で構成された URL は完全に一致する必要があります。

証明書およびアイデンティティ プロバイダー (IdP) の要件

SAML 向けに Tableau Server を構成するには、次が必要です。

  • 証明書ファイル。 .crt 拡張子が付いた PEM 暗号化 x509 証明書ファイル。このファイルは IdP ではなく Tableau Server によって使用されます。SSL 証明書を持っている場合、ある状況では同じ証明書を SAML で使用できます。詳細については、この記事の後の部分のSAML での SSL 証明書およびキー ファイルの使用を参照してください。

    Tableau Server では、IdP に送信される要求に署名するために証明書キー ペアが必要です。これにより、署名された要求をスプーフィングすることが難しくなるため、中間者攻撃の脅威が軽減されます。さらに、Tableau Server は、信頼できる IdP から受信した AuthNResponse を検証します。Tableau サーバーは、IdP によって生成された署名を使用して AuthNResponse を検証します。IdP 証明書のメタデータは、最初の SAML 構成プロセスの一部として Tableau Server に提供されます。

    署名付き要求は、すべての IdP に必ずしも必要ではありません。既定では、Tableau Server には署名付きの要求が必要です。IdP を使用した通信伝送の安全性をさらに高めるために、この構成をお勧めします。署名付き要求を無効にする必要があるかどうかを理解するために、IdP チームと共同作業してください。署名付き要求を無効にするには、samlSettings エンティティを参照してください。

  • 署名アルゴリズム証明書には、SHA-256 などの安全な署名アルゴリズムを使用する必要があります。SHA-1 署名ハッシュを使用する証明書を使用して Tableau Server に SAML を構成しようとすると、Tableau Server は証明書を拒否します。tsm wgserver.saml.blocklisted_digest_algorithms 構成キーを設定することにより、安全性の低い SHA-1 ハッシュを受け入れるように Tableau Server を構成できます。

  • RSA キーと ECDSA 曲線のサイズTableau Server 証明書の RSA キー強度は 2048 である必要があり、IdP 証明書は RSA キー強度が 2048 であるか ECDSA 曲線サイズが 256 である必要があります。

    それぞれの構成キー wgserver.saml.min_allowed.rsa_key_size および wgserver.saml.min_allowed.elliptic_curve_size を設定することにより、安全性の低いサイズを受け入れるように Tableau Server を構成できます。

  • 証明書キー ファイル。拡張子 .key が付いた、RSA または DSA 秘密キー ファイル。RSA キーは PKCS#1 または PKCS#8 形式にする必要があります。

    パスワードの保護要件は次のとおりです。

    • PKCS#1 RSA キー ファイルはパスワードで保護することができません。
    • パスワードで保護されているキー ファイルを使用するには、RSA PKCS#8 ファイルで SAML を構成する必要があります。注: NULL のパスワードを含む PKCS#8 ファイルはサポートされていません。

    • サイト固有の SAML 展開では、パスワードで保護されたキー ファイルはサポートされていません。

    サポートの概要

    キー ファイル形式 サーバー全体の SAML サポート サイト レベルの SAML サポート
    PKCS#8 RSA あり なし
    PKCS#8 (なし/null のパスワード) なし なし
    PKCS#1 RSA あり あり
    PKCS#1 RSA (パスワード) なし なし
    PKCS#1 DSA (パスワード) なし なし
  • IdP は、安全な署名アルゴリズムを使用して SAML アサーションに署名する必要があります。既定では、Tableau Server は SHA-1 アルゴリズムを使用して署名された SAML アサーションを拒否します。tsm wgserver.saml.blocklisted_digest_algorithms 構成キーを設定することにより、安全性の低い SHA-1 ハッシュを使用して署名されたアサーションを受け入れるように Tableau Server を構成できます。

  • SAML 2.0 以降をサポートする IdP アカウント。外部アイデンティティ プロバイダーでのアカウントが必要です。いくつかの例として PingFederate、SiteMinder、および Open AM があります。

  • XML メタデータのインポート/エクスポートをサポートする IdP プロバイダー。手動で作成したメタデータ ファイルでも動作する可能性はありますが、Tableau テクニカル サポートでは、手動でのファイル生成やそれらのトラブルシューティングをサポートできません。

  • ユーザー名: 必須。IdP 構成には "username" 属性またはクレームが含まれている必要があり、Tableau Server 上の対応する SAML 構成の属性も "username" に設定されている必要があります。

SSL オフロード

組織が認証要求を Tableau Server に送信する前にプロキシ サーバーで IdP より SSL 接続を終了する場合は、プロキシ構成を行う必要がある場合があります。このシナリオでは、SSL はプロキシ サーバーで "オフロード" されています。つまり https 要求がプロキシ サーバーで終了し、http 経由で Tableau Server に転送されます。

Tableau Server は、IdP から返される SAML 応答メッセージを検証します。SSL はプロキシでオフロードされるため、Tableau Server は受信したプロトコルで検証されます (http)。しかし、IdP 応答は https により書式設定されるため、プロキシ サーバーに https に設定された X-Forwarded-Proto ヘッダーが含まれていない限り検証は失敗します。 リバース プロキシ サーバーを使用するための Tableau Server の構成を参照してください。

SAML での SSL 証明書およびキー ファイルの使用

SSL で PEM エンコードされた x509 証明書ファイルを使用している場合、同じファイルを SAML で使用できます。SSL では証明書ファイルはトラフィックを暗号化するために使われます。SAML では証明書は認証のために使われます。

上記の証明書およびアイデンティティ プロバイダー (IdP) の要件に記載されている要件に加え、SSL と SAML の両方で同じ証明書を使用するために、その証明書が SAML で機能するように以下の条件を満たす必要もあります。

  • 証明書には Tableau Server に適用する証明書のみが含まれ、他の証明書やキーが含まれていないことを確認します。

    これを実行するには、証明書ファイルのバックアップ コピーを作成してから、テキスト エディターでコピーを開いてそのコンテンツを確認します。

ユーザー管理要件

SAML を有効化すると、ユーザー認証が Tableau の外部で IdP を使用して実行されます。ただし、ユーザー管理はアイデンティティ ストア (外部アイデンティティ ストア (Active Directory または LDAP) または Tableau Server のローカル アイデンティティ ストア) によって実行されます。Tableau Server でのユーザー管理の計画の詳細については、アイデンティティ ストアを参照してください。

セットアップ時にアイデンティティ ストアを構成する場合は、SAML の使用方法を反映するオプションを選択する必要があります。サイト固有の SAML を使用するには、個々のサイトを構成する前にサーバー全体の SAML を構成する必要があります。

  • サイト固有の SAML の場合: Tableau Server 上に複数のサイトがあり、各サイトで特定の IdP または IdP アプリケーションを設定する場合 (または、SAML を使用しないように一部のサイトを構成する場合) は、ローカル アイデンティティ ストアを使用してユーザーを管理するように Tableau Server を構成します。サイト固有の SAML に関しては、Tableau Server では認証を IdP に依存しているため、パスワードは使用しません。

  • サーバー全体の SAML の場合: 単一の IdP を使用するサーバー全体の SAML を構成する場合は、ローカル アイデンティティ ストアまたは外部アイデンティティ ストアを使用するように Tableau Server を構成できます。Active Directory を使用する場合は、[自動ログオンを有効にする] オプションを無効にする必要があります。

  • サーバー全体の SAML 認証およびサイト固有の SAML 認証。マルチサイト環境では、ユーザーはサイト レベルで構成された SAML IdP を使用して認証を行います。このシナリオでは、複数のサイトに属するユーザー用に、サーバー全体の既定の SAML IdP を指定します。このシナリオを構成するには、Tableau Server をローカル アイデンティティ ストアで構成する必要があります。

注: REST API および tabcmd では、SAML シングル サインオン (SSO) はサポートされていません。サインインするには、サーバーで作成されたユーザーの名前とパスワードを指定する必要があります。ユーザーは、Tableau Server の構成方法に応じてローカル アイデンティティ ストアまたは外部アイデンティティ ストアによって管理できます。Tableau Cloud では、ユーザーの TableauID 認証資格情報を指定できます。REST API または tabcmd 呼び出しで、サインインしているユーザーのパーミッションを取得します。

SAML 互換性についての注意事項と要件

  • ユーザー名の一致: Tableau Server に保存されているユーザー名が、SAML アサーションの IdP によって送信される構成済みのユーザー名属性と一致する必要があります。既定では、Tableau Server は、そのユーザーの情報を含む "username" という属性が着信アサーションに含まれていることを想定しています。たとえば、Jane Smith のユーザー名が jsmith として PingFederate に保存されている場合、Tableau Server でも jsmith として保存されている必要があります。

    認証中に SAML を構成する場合

    最初の Tableau Server のセットアップ時に SAML を構成する場合、使用する予定のアカウントが IdP に存在することを確認してからセットアップを実行してください。Tableau Server のセットアップ時に、サーバー管理者のアカウントを作成します。

    複数のドメインを実行している場合

    Active Directory または LDAP による外部アイデンティティ ストアを使用しており、複数のドメインが存在する (ユーザーが複数のドメインに所属しているか、Tableau Server のインストールに複数のドメインが含まれている) 場合は、SAML アサーションのユーザーに対して、IdP でユーザー名属性とドメイン属性の両方を送信する必要があります。これらのユーザー名属性とドメイン属性はどちらも、Tableau Server に保存されているユーザー名とドメインと完全に一致する必要があります。次のいずれか 1 つを実行します。

    • ユーザー名フィールドに domain\username を設定する
    • 定義域フィールドに定義域を設定し、ユーザー名フィールドにユーザー名を設定する

    定義域属性を設定するときは、完全修飾ドメイン名 (FQDN) または短縮名を使用できます。

    定義域が指定されていない場合は、既定の定義域と見なされます。

    詳細については、複数ドメインのサポートと、サーバー全体の SAML の構成「TSM CLI の使用」タブにある「アサーションの一致」セクションを参照してください。

  • 署名アルゴリズム: Tableau Server は、SHA256 署名アルゴリズムを使用します。

  • シングル ログ アウト (SLO): Tableau Server では、サーバー全体の SAML とサイト固有の SAML の両方で、サービス プロバイダー (SP) によって開始された SLO とアイデンティティ プロバイダー (IdP) によって開始された SLO の両方がサポートされています。

  • 外部認証タイプ: Tableau Server は外部認証タイプの同時利用をサポートしています。

  • 相互 SSL : Tableau Server は相互 SSL (双方向 SSL) と SAML の併用をサポートしていません。相互 SSL を使用する場合は IdP で構成できます。

  • アサーション エンコーディング: アサーションは UTF-8 でエンコードされている必要があります。

  • 暗号化と SAML アサーション: サーバー全体の SAML 用に構成されている場合、Tableau Server は IdP からの暗号化されたアサーションをサポートします。暗号化アサーションは、サーバー全体の SAML の初期構成の一部としてアップロードする証明書によって有効になります。

    サイト固有の SAML 用に構成されている場合、Tableau Server は IdP からの暗号化されたアサーションをサポートしません。ただし、すべての SAML 要求と応答は HTTPS 経由で送信されます。

  • tabcmd ユーザー用の Tableau Server 内のユーザー ID: 上記のユーザー管理要件のセクションで説明されているとおり、tabcmd を使用するには、サーバーで定義されているユーザーとしてサインインする必要があります。tabcmd では SAML アカウントを使用できません。

  • Tableau Desktop で の SAML SSO の使用: 既定では、Tableau Desktop では SP で開始された SAML 認証ができます。

    IdP でこの機能がサポートされていない場合、以下のコマンドを使用して Tableau Desktop 向けの SAML サインインを無効にできます。

    tsm authentication saml configure --desktop-access disable

    詳細については、tsm authentication saml <commands>を参照してください。

  • 分散インストール: TSM バージョンの Tableau Server (2018.2 以降) では、クライアント ファイル サービスによってマルチノード クラスタ内のファイルが共有されます。クラスタの最初のノードで SAML を構成した後、証明書とキー ファイルはクライアント ファイル サービスによって他のノードに配布されます。

  • ログイン URL:ユーザーがサインインできるように、次の URL に POST 要求を送信する SAML ログイン エンドポイントを IdP に構成する必要があります。

    https://<tableauserver>/wg/saml/SSO/index.html

  • ログアウト URL: ユーザーが SAML を使用してサインインした後にサインアウト (シングル ログアウト、SLO) できるように、POST 要求を次の URL に送信する SAML ログアウト エンドポイントを使用して IdP を構成する必要があります。

    https://<tableauserver>/wg/saml/SingleLogout/index.html

    注: Tableau Server では、サーバー全体の SAML とサイト固有の SAML の両方で、サービス プロバイダー (SP) によって開始された SLO とアイデンティティ プロバイダー (IdP) によって開始された SLO の両方がサポートされています。

  • ログアウト後のリダイレクト先 URL: 既定では、ユーザーが Tableau Server からサインアウトすると、サインイン ページが表示されます。 

    サインアウト後に別のページを表示するには、tsm authentication saml configure コマンドで -su または --signout-url オプションを使用します。

    • 絶対 URL を指定するには、次の例のように http:// または https:// で始まる完全修飾 URL を使用します。

      tsm authentication saml configure -su https://example.com

    • Tableau Server ホストの相対 URL を指定するには、/ (スラッシュ) で始まるページを使用します。

      tsm authentication saml configure -su /ourlogoutpage.html

  • Active Directory Federation Service (AD FS): SAML を使用して Tableau 認証用の追加属性を返すよう AD FS を構成する必要があります。Name ID および username 属性は、いずれも次の同じ AD 属性にマッピングできます。SAM-Account-Name。

    構成の詳細については、Tableau Server での AD FS を使用した SAML の構成を参照してください。

  • AuthNContextClassRef: AuthNContextClassRef はオプションの SAML 属性であり、IdP によって開始されるフローで特定の認証の "コンテキスト" を検証します。この属性のコンマ区切り値は TSM を使用して設定できます。この属性が設定されると、Tableau Server は、リストされている値の少なくとも 1 つが SAML 応答に含まれていることを検証します。SAML 応答に構成済みの値のいずれかが含まれていない場合、ユーザーが IdP によって正常に認証された場合でも、認証は拒否されます。

    このオプションの属性を空白のままにすると、既定の動作になります。SAML 応答が認証に成功すると、ユーザーに Tableau Server 内のセッションが付与されます。

    この値はサーバー全体の SAML でのみ評価されます。サイト SAML が構成されている場合、AuthNContextClassRef 属性は無視されます。

    TSM Web インターフェイスでこの値を設定するには、サーバー全体の SAML の構成を参照してください。

    この値を tsm configuration set を使用して設定するには、wgserver.saml.authcontexts キーを使用して、値のコンマ区切りリストを設定します。

    JSON 構成ファイルを使用してこの値を設定するには、samlSettings エンティティを参照してください。

Tableau クライアント アプリケーションでの SAML SSO の使用

Tableau Server ユーザーが SAML 認証資格情報を持っている場合、Tableau Desktop または Tableau Mobile アプリからサーバーにサインインできます。完全な互換性を実現するため、サーバーと同一バージョンの Tableau クライアント アプリケーションを使用することをお勧めします。サイト固有の SAML を使用して接続するには、ユーザーがバージョン 10.0 以降の Tableau クライアント アプリケーションを実行している必要があります。

Tableau Desktop または Tableau Mobile から Tableau Server への接続には、サービス プロバイダー (SP) によって開始された接続が使用されます。

認証されたユーザーを Tableau クライアントに再びリダイレクトする

ユーザーが Tableau Server にサインインすると、Tableau Server は SAML 要求 (AuthnRequest) を IdP に送信します。これには Tableau アプリケーションの RelayState 値が含まれます。Tableau Desktop や Tableau Mobile などの Tableau クライアントから Tableau Server にサインインした場合には、IdP の SAML 要求内の RelayState 値を Tableau に返すことが重要です。

このシナリオで RelayState 値が適切に返されない場合、サインイン元のアプリケーションにリダイレクトするのではなく、ユーザーは Web ブラウザーの Tableau Server ホームページに移動します。

アイデンティティ プロバイダーおよび社内 IT チームと協力し、この値が IdP の SAML 要求の一部として含まれること、またその後に IdP と Tableau Server の間に存在する任意のネットワーク アプライアンス (プロキシやロード バランサーなど) により保持されることを確認してください。

XML データの要件

SAML 構成の一環として、Tableau Server と IdP 間で XML メタデータを交換します。この XML メタデータは、ユーザーが Tableau Server のサインイン プロセスを開始する場合に、ユーザーの認証情報を検証するのに使用します。

Tableau Server と IdP はそれぞれ独自のメタデータを生成します。各セットのメタデータには、以下のリストに記載される情報を含める必要があります。いずれかのセットで情報が不足している場合、SAML の構成時またはサインインの試行時にエラーが発生する可能性があります。

  • HTTP POST: Tableau Server は、SAML 通信の HTTP POST 要求のみをサポートします。HTTP リダイレクトはサポートされません。

  • Binding 属性を HTTP-POST に設定する場合、Tableau Server および各 IdP がエクスポートする SAML メタデータには以下の要素を含める必要があります。

    • 正常に認証された後、IdP がリダイレクトする宛先の URL を指定する要素。これは、アイデンティティ プロバイダー メタデータでなくサービス プロバイダー メタデータで必要です。

      <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://<tableau-server>/wg/saml/SSO/index.html index="0" isDefault="true"/>

      サイトの SAML では、Location エンドポイントは /samlservice/public/sp/metadata?alias=<site alias> です。

    • ログアウトのエンドポイント要素は Tableau Server メタデータに含まれ、IdP が Tableau Server のログアウト エンドポイントに使用する URL を指定します。この要素が IdP メタデータに含まれていない場合、Tableau Server は IdP を使用してログアウト エンドポイントをネゴシエートできず、SAML ログアウト機能は Tableau Server で使用できません。

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"

      : SP によって開始された SLO は、サーバー全体およびサイト固有の SAML でサポートされます。ただし、IdP によって開始された SLO はサポートされていません。

    • 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"/>

    • この要素は IdP メタデータに含まれる必要があり、Tableau Server が IdP のログアウト エンドポイントに使用する URL を指定します。

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"/>

  • username という属性: username 属性を含むアサーションを saml:AttributeStatement 要素に返すように IdP を構成する必要があります。アサーションの属性タイプは xs:string にする必要があります (xs:any と入力しないでください)。

    次の例のようになります。

    <saml:Assertion assertion-element-attributes>
      <saml:Issuer>issuer-information</saml:Issuer>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        ...
      </Signature>
      <saml:Subject>
        ...
      </saml:Subject>
      <saml:Conditions condition-attributes >
        ...
      </saml:Conditions>
      <saml:AuthnStatement authn-statement-attributes >
        ...
      </saml:AuthnStatement>
    
      <saml:AttributeStatement>
        <saml:Attribute Name="username" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
        <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
              user-name
        </saml:AttributeValue>
        </saml:Attribute>
      </saml:AttributeStatement>
    </saml:Assertion>

    既定で Tableau Server は Idp から返される AuthNResponse の username 属性を読み取ります。ただし、一部の IdP は、ユーザーを識別することを目的とした別の属性を返す場合があります。

    username 値を渡す SAML 属性を変更するには、次の TSM コマンドを実行します。

    tsm authentication saml map-assertions --user-name <USER-NAME>

    tsm 認証 を参照してください。

ありがとうございます!