SAML 要件

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

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

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

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

  • 証明書キー ファイル拡張子 .key が付いた、RSA または DSA 秘密キー ファイル。RSA キーは PKCS#1 または PKCS#8 形式にする必要があります。パスワードの保護要件は次のとおりです。

    • PKCS#1 RSA キー ファイルはパスワードで保護することができません。
    • パスワードで保護されているキー ファイルを使用するには、RSA PKCS#8 ファイルで SAML を構成する必要があります。null のパスワードを含む PKCS#8 ファイルはサポートされていません。
  • SAML 2.0 以降をサポートする IdP アカウント外部アイデンティティ プロバイダーでのアカウントが必要です。いくつかの例として PingFederate、SiteMinder、および Open AM があります。

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

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 または Tableau Server のいずれかによって行われます (このシナリオでは、Tableau Server で認証を実行していないにもかかわらず、ローカル認証と呼ばれます)。

ユーザー認証を構成する際は、SAML の使用方法を反映するオプションを選択します。サイト固有の SAML を使用するには、個々のサイトを構成する前にサーバー全体の SAML を構成する必要があります。

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

  • サーバー全体の SAML の場合: 単一の IdP を使用するサーバー全体の SAML を構成する場合は、ユーザー管理にローカル認証または Active Directory を使用するように Tableau Server を構成できます。Active Directory を選択した場合は、[自動ログオンを有効にする] オプションを無効にする必要があります。

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

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

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

  • ユーザー名の一致: Tableau Server に保存されているユーザー名が、IdP に保存されているユーザー名と一致する必要があります。たとえば、Jane Smith のユーザー名が jsmith として PingFederate に保存されている場合、Tableau Server でも jsmith として保存されている必要があります。

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

    Tableau Server で Active Directory 認証を使用しており、複数の Active Directory ドメインがある (ユーザーが複数のドメインに所属しているか、Tableau Server のインストールに複数のドメインが含まれている) 場合は、IdP でユーザーのユーザー名ドメインの両方を送信する必要があり、送信された情報が Tableau Server で正確に一致する必要があります。これらは domain\username または username@domain.com のいずれかで送信できますが、domain\username の使用をお勧めします。

    詳細については、Active Directory 展開におけるユーザー管理を参照してください。

  • 既定の署名アルゴリズム: Tableau Server は、SHA1 署名アルゴリズムを使用します。多くの IdP は SHA256 に既定で設定されます。IdP と Tableau Server の署名アルゴリズム間の不一致があると、SAML 認証にエラーが発生します。SHA256 に変更するには、初期構成時に sHA256Enabled 構成エンティティを true に設定します。samlSettings エンティティを参照してください。次の TSM コマンドを実行し、SHA256 に変更することもできます。

    tsm configuration set -k wgserver.saml.sha256 -v true

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

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

  • 暗号化されたサイト固有の SAML アサーション : Tableau Server は IdP からの暗号化された SAML アサーションをサポートしていませんが、すべての SAML 要求および応答は HTTPS を介して送信されます。

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

  • Tableau クライアントでの SAML SSO の使用: 既定では、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 authentication saml <commands>を参照してください。

  • 分散インストール: SAML 用に構成されている Tableau Server クラスタでは、アプリケーション サーバー (vizportal) プロセス向けに構成される各ノードで同じ SAML 証明書、SAML キー、および SAML IdP メタデータ ファイルが存在している必要があります。これらのファイルは、各ノードの同じファイル パスにも存在する必要があります。

  • ログイン 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

  • ログアウト後のリダイレクト先 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 の構成を参照してください。

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"

    • 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 は、ユーザーを識別することを目的とした別の属性を返す場合があります。この場合、Tableau Server がユーザー名で読み取る属性の変更が必要な場合があります。認証を正しく行うには、IdP から返される属性の値が、Tableau Server ユーザーの実際のユーザー名の値と一致する必要があります。

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

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

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

フィードバックをくださりありがとうございます! フィードバックの送信中にエラが発生しました。もう一度やり直すか、メッセージをお送りください