Tableau Serverの認証方法変更手順(単一サーバ構成:ローカル認証→AD認証)

2016.05.20

Tableau Serverでは認証方法にActive Directoryを利用する事が出来ますが、AD認証を活用するケースとしては

  • 利用当初からAD認証を活用するケース(クラスタ構成+AD認証)
  • 任意のタイミングでローカル認証からAD認証に切り替える(単一サーバ構成+ローカル認証=>単一サーバ構成+AD認証、またはクラスタ構成+AD認証)

と言ったバリエーションが考えられるかと思います。前者の場合はAD認証前提のグループやユーザーありきでサーバを構成するので整合性的には最初から整っている状態ではありますが、後者の場合についてはそもそもの参照すべき認証情報が変わってしまうので、コンテンツの所有者や権限についても変更してしまうと以前の情報は意味を為さなくなってしまうのでは?という様な懸念が生まれてきます。

そこで当エントリでは"認証方法を途中で変えたらどうなるか"というシナリオを確認する為に『単一サーバ+ローカル認証』のTableau Server構成を『単一サーバ+AD認証』に実際に変えてみて、内容的にどの様な変化が起こるのか、どの様な対処をしなければならないのかについて探ってみたいと思います。

目次

認証方法変更に関する大事なポイント

Tableauのナレッジベースに、Tableau Serverの認証方法変更に関するドキュメントがまとめられていましたので内容を確認して見ます。以下冒頭部分の抜粋です。

重要: 最初に選択する認証方法は、後で変更しないことを前提とすることをお勧めします。認証方法を変更する必要がある場合は、パブリッシュされたビューとそのビューをパブリッシュしたユーザーとの間の関連付けを Tableau Server が失うことになり、Tableau Server では、そのパブリッシャーの名前で、パブリッシュ済みのビューをフィルターできなくなることを理解しておく必要があります。ご質問がある場合は、Tableau テクニカル サポートまでお問い合わせください。

...という訳で、『そ、そうか...』という一文が記載されていました。今回試す内容は、ここでは前提とされていないケースとなります。パブリッシュしたユーザーとコンテンツの紐付けが無くなってしまうので結果としてはコンテンツの所有者含めコンテンツのパーミッション周りも再設定しなければ行けなくなるような気はしているのですが、その辺りどうなのでしょうか。

前提条件・構成の説明

環境構成図

検証にあたり用意した環境は以下の様なものとなります。AD環境を予め用意した上でTableau Serverをローカル認証で導入、検証コンテンツやユーザー設定などを行った上で認証方法をAD認証に変更し、その内容がどの様に変わっているのか、また変わらないのかを確認する、という流れです。

TableauServer-change-authtype_00

Active Directory環境の準備

今回は認証方法AD認証に変更するという事で、以下のエントリを参考に、EC2を2台用いた冗長構成で同一VPC内に構築する事としました。cmad.localというドメインでAD環境の冗長構成を用意しています。

Active Directory環境にグループ及びユーザーを作成

移行対象となるAD環境には既に(もしくは移行前には)グループなりユーザーが存在しているはずですので、その環境を想定したグループやユーザーも併せて作成しておきます。詳細については後述します。

今回は幾つかのバリエーションを確認する為に以下の様な構成のグループ及びユーザーを用意する事としました。パスワードはADユーザー作成時に定められた基準の文字列構成で設定しています。これと同じ構成の内容をTableau Serverでも作成します。

  • グループ:[cmdev]
    • ユーザー:cmuser01 / パスワード:XXXXXXXXX
    • ユーザー:cmuser02 / パスワード:YYYYYYYYY
  • グループ:[awsdev]
    • ユーザー:awsuser01 / パスワード:AAAAAAAAAA
  • その他ユーザー(グループに所属しないユーザー)
    • ユーザー:cmuser03 / パスワード:ZZZZZZZZZZZ

また、AD認証変更後のシステム管理者もAD認証で管理するため、別途管理者用のユーザーを作成しておきます。

  • ユーザー:cmadtabadmin / パスワード:XYZXYZXYZXYZ

グループの作成

[サーバーマネージャー]=>[ツール]=>[Active Directory ユーザーとコンピューター]からグループの新規作成を選択。

TableauServer-change-authtype_03

所定のグループ名を設定してグループを作成します。

TableauServer-change-authtype_04

ユーザーの作成及びグループへのユーザー追加

グループ同様、ユーザーも同じ新規作成メニューで必要人数分作成します。

TableauServer-change-authtype_01 TableauServer-change-authtype_02

ユーザーを任意のグループに追加します。

TableauServer-change-authtype_05

TableauServer-change-authtype_06

作成イメージ

こんな感じでグループ及びユーザーを準備しました。

TableauServer-change-authtype_07

TableauServer-change-authtype_08

AD認証後の管理者として活用するユーザーも併せて作成しておきます。

TableauServer-change-authtype_09

Tableau Serverの準備(単一サーバー・ローカル認証)

Tableau Serverのインストール

認証方法変更前の環境を用意します。単一サーバかつローカル認証のTableau Server環境です。Tableau Serverを導入するインスタンスは予め用意しておいてください。環境が用意出来たらTableau Serverのインストールを開始。今回はDドライブを持つ環境を用意し、D:¥Tableauをインストールパスに指定して導入を進めました。

TableauServer-change-authtype_10 TableauServer-change-authtype_11

認証方法はデフォルトのまま、『Use Local Authentication』を選択し[OK]押下。

TableauServer-change-authtype_12

システム管理者情報についてもローカル認証用の管理者情報を別途入れておきます。

TableauServer-change-authtype_13

Tableau Server上にグループ及びユーザーを作成

AD環境で作成したものと同じ構成になるように、必要なグループとユーザーを用意します。まずは管理者経由で検証に用いるユーザーを作成。

TableauServer-change-authtype_14 TableauServer-change-authtype_15

グループも併せて作成。

TableauServer-change-authtype_16 TableauServer-change-authtype_17

AD認証環境同様、想定ケースを検証する為のグループとユーザーが準備出来ました。

TableauServer-change-authtype_18 TableauServer-change-authtype_19 TableauServer-change-authtype_20

パーミッションを定めたコンテンツのパブリッシュ

今回の検証では、コンテンツに定めたグループやユーザーのパーミッションが認証方法を変える事でどの様に変わるのか(または変わらないのか)を確認したいと思っています。ですので、(管理者以外の)任意のユーザーがパブリッシュするコンテンツにカスタマイズしたパーミッション設定を行い、その内容がどの様に変わるか確認します。

まずはコンテンツをパブリッシュするプロジェクトを別途作成。

TableauServer-change-authtype_20-2

Tableau Desktopにて、任意のユーザー(今回はcmuser01としてみました)でサーバーにサインイン。

TableauServer-change-authtype_21

コンテンツのパブリッシュ、この際、以下の様な形でコンテンツに紐付くパーミッションを、グループやユーザーそれぞれに対して設定してみます。(全てのユーザーに関する権限がある場合、まず第一にこの権限が見られてしまうようなので今回は一旦これを削除しておきます)

TableauServer-change-authtype_22

上記操作後、パーミッションの新規追加を行い、グループ・ユーザーに対しての権限をそれぞれ以下の様に設定してみました。

TableauServer-change-authtype_23

TableauServer-change-authtype_24

TableauServer-change-authtype_25

TableauServer-change-authtype_26

パブリッシュ完了。

TableauServer-change-authtype_27

Tableau Server上でも、定めた権限を確認する事が出来ました。

TableauServer-change-authtype_28

Tableau Server:認証方法変更の準備作業

いよいよ本題となる『認証方法の変更』です。以降の手順については、冒頭でご紹介した以下ナレッジベースに従う事で進める事が出来ます。

Tableau Serverの停止

上記までの『コンテンツのパブリッシュ』に関する内容を確認出来たところで、一旦Tableau Serverを停止。

Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator> D:
PS D:\> cd .\Tableau
PS D:\Tableau> cd '.\Tableau Server'
PS D:\Tableau\Tableau Server> cd .\9.3
PS D:\Tableau\Tableau Server\9.3> cd .\bin
PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe status
Status: RUNNING
PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe stop
===== Stopping service...
   -- Service stopped successfully
PS D:\Tableau\Tableau Server\9.3\bin>

認証方法変更後に用いるリストア用のファイルをバックアップコマンド(tabadmin backup)で作成します。

PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe stop
===== Stopping service...
   -- Service stopped successfully
PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe backup D:¥tableau-server-backup -d
===== Using as backup tmp directory: D:/Tableau/Tableau Server/data/tabsvc/temp (free space: 76.49 GB)
===== Cleaning entries from http_requests log older than 7 days
   -- Deleted 0 rows
===== Backing up database data
===== Backing up dataengine extracts
===== Backup of database data done
===== Backup of dataengine extracts done
===== Backup written to D:/tableau-server-backup-2016-05-19.tsbak

サーバの停止を確認後、コントロールパネルからTableau Serverのアンインストールを行います。

TableauServer-change-authtype_32

アンインストール後に、インストール時に指定したフォルダ配下の[Tableau Server]フォルダを削除します。

TableauServer-change-authtype_33

Tableau Server:認証方法の変更実践

Tableau Server導入環境のWindowsをドメインに参加

AD認証を行う際には、Tableau Serverも該当するドメインに参加した上で認証を行う必要があります。ですので、再インストール前にドメインへの接続を行っておきます。

TableauServer-change-authtype_29

Tableau Serverの再インストール(認証方法:AD認証)

そしてTableau Serverの再インストール実施。導入パスはローカル認証の時と同じです。

TableauServer-change-authtype_30

そして、認証方法を選ぶところで『Use Active Directory』を選択。前の手順で所定のドメインにWindowsを参加させているのでここでは認証方法を変更するだけでOKです。

TableauServer-change-authtype_31

一通りの作業が完了し、管理者情報記入のログインブラウザが起動しました。ですがここでは何も行わず、ブラウザは閉じてしまいます。

TableauServer-change-authtype_34 TableauServer-change-authtype_35

Tableau Serverバックアップファイルのリストア実行

上記では管理者アカウントを入力せずにブラウザを閉じてしまいましたが、以下で行う作業を実施する事でADの管理者アカウントを連携・入力出来るようになります。

先ほど取得したバックアップファイルをリストア。--no-configオプションを付けて実行します。

PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe restore D:¥tableau-server-backup-2016-05-19.tsbak --no-config
===== Beginning to restore the backup
===== Stopping service...
   -- Service stopped successfully
===== Verifying backup manifest
===== Initializing Tableau Server File Store remotely
   -- Initiating built-in extract engine data restore
   -- Restoring service data from backup file
   -- Database restore completed.
   -- Migrations already up to date.
===== Validating Database schema signature
===== Database schema is different from the expected schema. Use tabadmin validate_schema_signature for further investigation.
===== User language: ja
===== Initializing Tableau Server Coordination Service 0 remotely
   -- Waiting for built-in extract engine data restore to finish.
   -- Extract engine data restore completed.
===== Migrating extract data to filestore...
===== Finished Migrating. Cleaning up unmigrated data...
===== Cleaning up any unmigrated folders.
   -- Restoring web data connectors
   -- Web data connectors were distributed to all gateways.
   -- Web data connectors restore completed.
  *** The run-as password is empty. If the run-as user is a built-in system account, this is likely fine. Otherwise, services will likely fail to start.
===== Locking permissions on D:/Tableau/Tableau Server/data
===== Locking permissions on D:/Tableau/Tableau Server/config
===== Building search index
===== Search index built
===== Backup restore completed
===== Enter "tabadmin start" to start the service
PS D:\Tableau\Tableau Server\9.3\bin>

Tableau Server: 設定のリセット

次に、tabadmin resetコマンドで設定のリセットを行います。この処理で、Tableau Server 管理者アカウントがリセットされます。Tableau Server起動時に行う必要があるので、起動(tabadmin start)後実施。

PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe reset
  *** Error: Tableau Server must be running to reset state.

PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe status
Status: STOPPED
PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe start
===== Starting service...
   -- Service was started successfully
PS D:\Tableau\Tableau Server\9.3\bin> .\tabadmin.exe reset
   -- Reset Tableau Server state
PS D:\Tableau\Tableau Server\9.3\bin>

管理者情報の設定

リセットが完了した状態で導入端末上のブラウザでhttp://localhost/にアクセス。AD環境で作成した管理者ユーザー(cmadtabadmin)を使って作成してみます。

TableauServer-change-authtype_36

無事、AD環境下ユーザーを使ってサインインする事が出来ました!

TableauServer-change-authtype_37

認証方式変更後の各種内容確認

認証方法は無事切り替わったようです。では、コンテンツ周りについてはどの様な形になっているのでしょうか。以下は切り替え直後のパブリッシュ済みコンテンツに関するパーミッション周りの設定内容です。既存の設定がそのまま移行出来ている様ですが、こちらの内容は『ローカル認証』ユーザーやグループの設定のものとなります。

TableauServer-change-authtype_38

ユーザーを確認してみます。一番下のユーザーは上記の設定でADのユーザーを指定したものですのでドメインがAD認証を示すcmad.localとなっていますが、その他はローカル認証(local)のままです。

TableauServer-change-authtype_39

ローカル認証ユーザーは果たしてこの状態で使えるのでしょうか?当然と言えば当然ですが、認証方法が切り替わった時点でローカル認証の情報は意味を為さなくなっているのでサインインで弾かれてしまいました。

TableauServer-change-authtype_40

AD認証の情報については、インポートで情報を連携する事が可能です。管理者権限で『ユーザーの追加』を行うと、以下の様に追加方法にADの手段が追加されるようになります。

TableauServer-change-authtype_41

インポートはグループとユーザーそれぞれの単位で行えます。ここで1つ気になるのが『サイトロール』の制御について。先程のローカル認証ではグループ内のユーザーはユーザー個別にサイトロールを設定していましたが、この取り込みではグループ内のユーザーは一括でサイトロールを指定しなければならないようです。個別に設定したい場合はまず一律『パブリッシャー』等でグループ(及びグループ内ユーザー)を取り込んでおき、後でユーザー個別の制御を行う...といった対応を行う必要が出て来そうです。

TableauServer-change-authtype_42

ユーザー毎のインポートについては以下の様な形で取込む事が可能となっています。

TableauServer-change-authtype_43

今回対象としたユーザーをそれぞれ取込む事が出来ました。(※赤枠線内のユーザー)

TableauServer-change-authtype_44

取り込んだAD環境のユーザーでログインを試してみます。

TableauServer-change-authtype_45

今度は上手く行きました!

TableauServer-change-authtype_46

AD環境の情報を引き継げたという事で、これまで利用していたローカル認証の情報は不要なものとなります。ローカルドメインの対象ユーザーを選択し、削除実施。

TableauServer-change-authtype_47

コンテンツ所有者であるユーザーの場合は、ユーザー削除では無くライセンス解除となり、そうでないユーザーは削除されます。今回の場合はcmuser01がパブリッシュしたコンテンツの所有者だったのでライセンス解除のみに留まりました。

TableauServer-change-authtype_47-2

プロジェクトについても同様にローカルドメインのものが残ってますので削除。

TableauServer-change-authtype_52

プロジェクトやコンテンツの所有者についても同様です。こちらは然るべきユーザーへの所有者変更を実施しました。

TableauServer-change-authtype_49

TableauServer-change-authtype_48

TableauServer-change-authtype_50

するとどうなるか。結局のところ、各種権限を定めていたユーザーやグループがローカル認証のものである為、認証方法を変えてしまうとその部分の情報がバッサリ無効化されてしまう形となり、個別に設定を施していた場合は全面的に設定を見直しつつ、必要に応じたカスタマイズを個別に設定して行かなければならなさそうです。パブリッシュしているコンテンツが多い場合、また、デフォルト設定(全てのユーザーに対して操作可能、等)やプロジェクトのパーミッション設定ではなく、細かい調整を行ったコンテンツ等がある場合は事前にどの様な設定を行っていたのかを情報として控えておく必要もありそうです。

TableauServer-change-authtype_51

まとめ

だいぶ長くなってしまいましたが、Tableau Serverに於ける認証方法の変更について、その手順と変更前後の状況を見て行きました。Tableau Serverの方でよしなにやってくれるかなぁと期待していた部分もありましたが、根本の部分(認証方式そのもの)がガラリと変わってしまう訳ですので、この対処法もやむ無し、と言ったところでしょうか。プロジェクト及びコンテンツのパーミッションについては結果として『全面見直し・再設定』は避けられないような気がしますので、これらを踏まえたパーミッション設計・運用を検討するか、もしくは小規模人数で始める段階から予めAD認証連携で始めておく、といった案も検討しておくといった事も視野に入れておく必要があるのかも知れません。

また、今回はボリュームの都合上省きましたが、実際には本番環境とは別の検証環境を用意してコンテンツをバックアップ&リストアさせておいた上で、まずは検証環境下で諸々の挙動や設定をお試し頂き、フィードバックを得た上で本番環境の認証方法変更作業に移って頂く、という形をオススメしたいと思います。

TableauServer-change-authtype_99

Tableau Serverを活用してコンテンツ共有を行う様になってくると利用者数も増えて来る傾向にあり、どこかのタイミングで『AD認証と連携させて管理を効率化させたい』という要望が挙がってくる事かと思います。Tableau Serverの利用を検討したい、という段階で今回ご紹介したポイントについても併せてご検討頂ければ、またその際にこちらのエントリが参考になりましたら幸いです。