【AzureAD】Tableauとのシングルサインオンとユーザプロビジョニングを設定してみた

AzureADとTableauとのシングルサインオンとユーザプロビジョニングを設定をしてみました。
Tableauは14日間のトライアルが出来るようです。それを利用してSSOの設定を実施してみます。

##Tableauにアカウントの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/88bb0765-8e6a-8b43-2676-d41fb678b20b.png)

Tableauはいくつか種類がありますが、Tableau onlineで設定できそうなので
試してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/e459a2bb-fdd4-1631-fe08-d679ac1473d6.png)

利用に必要な情報を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/1f1b894c-64b1-1b30-a846-611682fcb1c1.png)

自分宛てに承認メッセージを送り、サイトをアクティブにします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b9b3ff70-b140-40cf-66dd-862f0095f037.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/adfafec3-3dd6-2846-35bd-5b7da30e8caa.png)

アカウントを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/7d2b7003-b267-7451-a702-fb592c51a675.png)


Tableauにアカウントが作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/fdfb7abc-938c-021f-d5f3-0bba988cb41c.png)



##シングルサインオンの設定
設定画面から"認証"タブをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/7dc4c6ac-f9d0-81d3-f011-0f1baa96add8.png)

追加の認証方法でSAMLを押して、以下ポップアップが出た場合は続行をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/a94e1677-6e42-de86-0f43-b0b3e549cb00.png)

メタデータがあるようですね。エクスポートして、適当なところに保存しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/d59d8caa-bd64-0219-db80-e05626894391.png)

AzureADにログインします。
エンタープライズアプリーケーションからTableauOnlineをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/af80a6eb-d52c-771b-4dfd-5355cd5983a8.png)

概要画面から"シングルサインオンの設定"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b65f3493-c507-3a72-119e-fdc760d2aa21.png)

SAMLをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/eccaa3ec-9d61-5f69-71c2-e58514a78f51.png)

先ほどエクスポートしたメタデータをアップロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b520b61f-a215-1671-9dcd-1064ada0b3f0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/add3700a-c78a-22f3-433d-df3da32549d8.png)

追加ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/cfa87342-ff8f-8efc-255e-782198657077.png)

識別子と応答URLが自動で入りました。便利ですね。
サインオンURLが入っていないようなので、入れる必要あります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/7775c5c6-23e5-b9c0-003c-1ecffc61c487.png)

サインオンURLは識別子を利用します。
識別子の
https://sso.online.tableau.com/public/sp/metadata?alias=***
を
https://sso.online.tableau.com/public/sp/login?alias=***

と"metadata"を"login"に変えます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/6d92e9f4-b8ac-3cf9-6aed-6cc90d667334.png)

保存ボタンを押すと、シングルサインオンのTestを促してきますが、
ここでは　いいえ、後でtestします　をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b854c276-cbef-6918-d5a3-192cee1131b9.png)

今度はAzureAD側のメタデータをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/782a4205-aaa5-ac28-df66-3f96a257124d.png)

Tableauの設定画面に戻ります。
Azureのメタデータをインポートをするために、参照をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/9980b815-b4f7-add4-d8e2-67c27769189e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/4b66de36-a1ed-1a93-f7bd-6ce4af6c8b39.png)

自動的にエンティティIDとサービスURLが入ったので"適用"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/c28ace2a-1ce5-1bf8-0dde-4c72a80ff803.png)

テスト接続したら、エラーが出てしまいました。原因を見てみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/930ac51c-5148-5014-9d97-40738fad7b46.png)

ユーザーとグループにユーザーが割り当てられていない事が原因っぽいですね。
ここでTableauへアクセスするユーザーを登録してもいいですが、登録をしない
方法でアクセスを試してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/28d812fd-4974-6538-627a-7cade2527298.png)

AzureADのTableauプロパティを選択し、ユーザーの割り当てが必要ですか？がデフォルトが"はい"となっているのを"いいえ"にします。

アクセスすると勝手にユーザーが作成されてしまうアプリの場合は、本設定はおすすめしませんが、それ以外のアプリであればアプリ側でユーザを制御できるので本設定をしても問題ないと思います。これでユーザの割り当てが不要になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/a070be99-e7ab-587e-dc77-3d5ed7e0de70.png)

もう一度テスト接続を押下したところ、サーバに正常に接続されました。と表示されました。
これでSSOの設定ができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/5b2eb922-b872-ca71-787a-9dc21935140c.png)

埋め込まれたビューの認定の認証タイプを
以下のように設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b3b3e6be-f1e0-8d3c-4fd5-91ab997198f4.png)

##ユーザープロビジョニングの設定
続いてユーザプロビジョニングの設定を実施します。
以下赤丸で囲った部分をnotepad等に保存しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/38f8f968-0b81-f8d4-278e-9802daf75e3f.png)


プロビジョニングさせるユーザーを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/344a4d35-0edf-b7a4-7950-18ac0a734632.png)

作業の開始をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/f98004d0-d0ec-9ea4-c52f-ca040f29a6ff.png)

自動をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/fe48ea44-3525-d753-9e21-f7e35d0a6be2.png)

以下のように設定します。
ドメイン：TableauのURLで赤丸した情報をいれます。
管理ユーザー名：Tableau Online テナントの管理者アカウントのユーザー名を入力します
管理者パスワード：管理者のパスワードを入力します。
content URL：TableauのURLで赤丸した情報をいれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/e14c6f02-795e-ec83-c5c5-33559b3c98f3.png)

プロビジョニング状態を"オン"にして保存を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/75d7d600-f012-ac3b-f1b8-03ca736a6a84.png)

試しにテストしてみます。要求時にプロビジョニングでテスト用のユーザーを指定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/401c3070-7545-9777-524e-ce749d46c1b7.png)

無事プロビジョニングできました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/70605fae-f6a2-81c7-8bc0-823979e6c201.png)

Tableauにもユーザーが登録されたようですね。これでシングルサインオンが
出来るか試してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/6af3fbef-7ff6-bd58-6681-96f0827ca9e9.png)

##シングルサインオンテスト
シングルサインオンテストを実施してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/35ef6cb4-684e-9a01-70e4-257d8e85b54b.png)

テストユーザーを入れてサインインをクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/81bd3106-abf4-d49f-6fc3-f4635d3ae53c.png)

AzureADにリダイレクトされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/0a368da0-cab5-96e8-9042-5c57a6e4364e.png)

無事サインインできました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/db908c38-8bf3-884f-af4c-0fb067b0f17d.png)

無事Tableauとのシングルサインオンとユーザプロビジョニングを設定が出来ました。
参考になれば幸いです（＾＾）