ALB 配下の Tableau Server と Okta を連携し Tableau Server の認証を多要素認証にする

2024.01.07

はじめに

Application Load Balancer(ALB) 配下にインストールされた Tableau Server の認証を多要素認証(MFA)にしてみました。

ALB などのリバースプロキシ配下に Tableau Server をインストールしている場合、Tableau Server 側で、リバースプロキシに関する追加設定や SAML 構成時の証明書の使用に関して注意点があるので、その内容をまとめておきたく記事としました。本記事では、IdP として Okta を使用しています。

多要素認証について | Okta Docs

前提条件

以下の環境で検証しています。

  • Okta
  • Tableau Server
    • バージョン:2023.3
    • OS:Windows Server 2019
    • 構成
      • 単一サーバー構成
      • アイデンティティストア:ローカル
  • Tableau Serverをインストールするサーバー(EC2)をローンチするための VPC、サブネットは構築済み
  • Route53 にて検証用に yy16test.xyz のDNS ホストゾーンを作成済み
    • クライアントは、CNAME レコードを使用して Tableau Server にアクセス
      • 具体的には、サブドメインtabsrv.yy16test.xyzを使用してアクセスします

Tableau Server のインストール

構成

本記事では、上記の前提条件に加えて以下の構成で Tableau Server をインストールします。

  • Tableau Server へのアクセスに使用する FQDN を、CNAME で登録し、それに対応するサーバ証明書を用意
  • 作成した証明書類は ACM にインポートし、ALB リスナーに関連付け
  • SSL オフロードを利用して、HTTPS 要求は ALBで終了し、そこから Tableau Server へは HTTP 経由で通信を行う
    • この構成のために、Tableau Server の外部 SSL は無効のままとしています

構成は下図の通りです。

Tableau Server を ALB 配下にインストール際の具体的な手順は、以下の記事をご参照ください。

リバース プロキシ サーバーを使用するための Tableau Server の構成

ALB などのリバースプロキシ配下に Tableau Server をインストールする場合、Tableau Server 側でtsm configuration setコマンドによる以下のオプションの設定変更が必要です。

  • gateway.trusted
  • gateway.public.host
  • gateway.trusted_hosts
  • gateway.public.port

Tableau Server のインストール後に上記の追加設定を行います。各オプションの詳細や、設定コマンド等については以下をご参照ください。
リバース プロキシ サーバーを使用するための Tableau Server の構成 | DevelopersIO

この時点でクライアントから HTTPS 経由で Tableau Server へのアクセスが可能となります。

SAML 構成

Tableau Server のインストール後、外部アイデンティティ プロバイダー(IdP)を使用した SAML の設定を行います。

SSL オフロード時の注意点

本記事の構成のように、HTTPS 要求を ALB で終了し、ALB と Tableau Server 間は HTTP 経由での通信が行われている場合、Tableau Server 側でプロキシ構成を行う必要があるので注意します。
こちらは、上述の手順(リバース プロキシ サーバーを使用するための Tableau Server の構成)を行うことで設定済みとなります。
SSL オフロード | Tableau Help

Okta 側の操作も含めた Tableau Server の SAML 構成の具体的な手順は以下の記事をご参照ください。
Tableau Server と Okta を連携し Tableau Server の認証を SSO にする #Tableau | DevelopersIO

SAML 構成後、Tableau Server にアクセスすると、自動的に Okta 側の ログイン画面に遷移するようになります。

Okta 側:MFA 設定

ここでは、Tableau Server の認証を多要素認証にするために、Okta Verify を用いたプッシュ検証を使用します。
Okta Verify | Okta Docs

Okta Developer の管理コンソールの「Security > Authenticators」から [Add authenticator] をクリックします。

追加する認証を選択できるので、ここでは [Okta Verify] を選択します。

ポップアップが表示されるので、ここではデフォルトの設定で進め [Add] をクリックします。

その後、Okta Verify が Authenticators に追加されます。

Tableau Server へのアクセスに適用する

「Applications」タブから対象のアプリケーションを選択し [Sign On] タブをクリックします。

ページ下部で適用されているポリシー(ここでは Default Policy)を確認できるので、[View policy details] からポリシーの編集を行います。

特に何も設定していない場合、パスワードによる認証が選択されているので、「Actions」から [Edit] を選択します。

項目「User must authenticate with」で、ここでは以下のように、パスワードと追加の要素による認証としました。上記の手順で、Okta Verify を追加している場合、追加の要素として Okta Verify を使用できます。

Tableau Server にアクセス

設定を保存し、Tableau Server にアクセスしてます。Okta 側の画面に遷移するので、Okta 側のユーザーのユーザー名・パスワードを入力します。Okta Verify のセットアップが未実施の場合、次の画面が表示されます。

[セットアップ] をクリックするとQRコードが表示されるので、スマートフォン等にインストールした Okta Verify のアプリケーションから読み取ります。

初期設定後は、ユーザー名・パスワードの入力後に、以下の表示となるのでモバイルアプリケーション側に表示される6桁の一時コード入力することで、Tableau Server にログインできるようになります。

Okta Verify | Okta Docs

Tableau Desktop からログインベースのライセンス管理時にサーバーにサインインする場合も、同様の手順となります。(Okta 側のログイン画面に遷移します。)

さいごに

Okta と連携し、Application Load Balancer(ALB) 配下にインストールされた Tableau Server の認証を多要素認証(MFA)にしてみました。
ALB 配下に Tableau Server をインストールする際は、リバース プロキシ サーバーを使用するための追加設定が必要となる点や、SAML 向けに Tableau Server を構成する際は、証明書とキーファイルも必要となるので、注意が必要と思います。
本記事の内容が何かの参考になれば幸いです。