QuickSight と Azure AD を使って、SP Initiated SSO をやってみた


# SP Initiated SSO とは

QuickSight は、直接 QuickSight にログインする URL が公開されています。

https://quicksight.aws.amazon.com/



SP Initiated SSO に関する設定を有効にするとこで、直接の QuickSight のログインを禁止することが出来、IdP 経由のログインを強制できます。具体的な例があるとわかりやすいとおもうので、SP Initiated SSO を使わない通常の構成の画面を使って説明をしていきます。



**<u>通常の構成の場合</u>**

この URL にアクセスすると、QuickSight のアカウント名を入力できる画面が開かれます。

![image-20220101184855252.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ea7ec446-c7fa-5651-2d2b-cb38d556e0d7.png)



アカウント名を入れたのちに、QuickSight のローカルアカウントを使ってログインする画面となります。

![image-20220101185001917.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/75927849-21fc-88df-ffa7-3d4c4051bb7f.png)





<u>**SP Initiated SSO に関する設定を入れた場合**</u>

QuickSight のアカウントを、Azure AD などを使った IdP ログインに設定しているとき、ローカルログインを禁止して Idp 側にリダイレクトしてほしいです。そこで、SP Initiated SSO に関する設定をすることで、ローカルログインの画面を禁止が出来ます。更にセキュリティの向上が期待できるというわけですね。

SP Initiated SSOを有効にしているときの例を実際の画面とともに説明します。QuickSight のログインURLで、自分のアカウント名を入れて続行を押します。

![image-20220101184855252.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e14251d1-7eb5-1ac7-f05c-54537f9c64d8.png)



SP Initiated SSO の設定により、Azure AD のログイン画面が開かれます。ここで、Azure AD 上のユーザー名を入力します。

![image-20220101215009227.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e66673ae-9112-4a52-f96d-98ce0c1f4c91.png)



同様にパスワードも入れます。

![image-20220101215032638.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2d18d85d-fd75-586f-07f5-16882d195394.png)



すると、QuickSight の画面が開かれます。

![image-20220101215118039.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f0ddbc71-37d7-75a4-f8bb-08e98d1bd80d.png)



このように、IdP 経由でのログインを強制することで、セキュリティの向上を期待できるということです。

それでは、SP Initiated SSO に関する設定方法を紹介します。
前提条件として、既に Azure AD と QuickSight を使った連携は設定済みの環境で行います。もし、Azure AD と QuickSight の連携方法から試したい場合は、このあたりの記事を参考にしてみてください。

https://qiita.com/sugimount-a/items/9fb1c7a204f372c2c95d



# Azure AD 上で各種値を調べる

QuickSight で SP Initiated SSO を設定する際に、IdP である Azure AD 側で設定値を調べる必要があります。

Azure AD の画面に入り、プロパティを選択し、テナントIDを調べます。

![image-20220101194700817.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d76160d0-2177-e989-a5ba-382e62515aab.png)



次に、エンタープライズアプリケーションを選びます。

![image-20220101194450288.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/927172d9-68df-9429-fab9-2a0dfe363444.png)



QuickSight に連携するために設定した、アプリケーションを選択します。

![image-20220101194513394.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/3eef017d-0c36-dc0d-7a21-c004ba7589a1.png)





この画面から、名前とアプリケーション ID をメモっておきます

![image-20220101194604021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1b301ef1-0f14-a820-6cd9-9d118d801ede.png)



# QuickSight の SP Initiated SSO 設定

Azure AD で調べた設定値を使って、QuickSight で SP Initiated SSO に関する設定を入れていきます。

QuickSight の Document に設定値に関する説明が書かれています。

https://docs.aws.amazon.com/quicksight/latest/user/setup-quicksight-to-idp.html#sp-idp-r-parm



この表の中で、Microsoft Azure の部分を使っていきます。

![image-20220101213718221.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/61abf3c7-72b4-b6f0-27b8-07ff5f4ae97d.png)



Azure AD に連携する URL の形式はこちらです。この形式に、先ほど調べた設定値を当てはめていきます。

```
https://myapps.microsoft.com/signin/<app_name>/<app_id>?tenantId=<tenant_id>
```



・app_name
Amazon QuickSight

・app_id
a3c86eb6-a0f9-419e-8368-58569a4a436c

・tenant_id
54d4fb23-4655-46de-ab3a-4698ab819886

あてはめた後のURLはこんな感じです。

```
https://myapps.microsoft.com/signin/AmazonQuickSight/a3c86eb6-a0f9-419e-8368-58569a4a436c?tenantId=54d4fb23-4655-46de-ab3a-4698ab819886
```



URL を組み立てられたので、QucikSight の設定をしていきます。QuickSight の画面を開いて、Manage QuickSight を選びます。

![image-20220101214610926.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d93786e4-1a28-8f57-dc0b-3ddd14d2e64c.png)



メニューから、SSO を選択します。

![image-20220101194251381.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5d53214b-0501-0f67-7681-31ba91b1af1b.png)



以下のパラメータを入れます。

- Status : ON
- IdP URL : 上で組み立てた URL を指定
- IdP redirect URL Parameter : `RelayState` を指定

![image-20220101214706176.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/3fb0cff7-cc80-9d78-9092-d6eaf3bd883a.png)





これで準備完了です。



# 動作確認

QuickSight のログイン用 URL を開きます。

https://quicksight.aws.amazon.com/



QuickSight のログインURLで、自分のアカウント名を入れて続行を押します。

![image-20220101184855252.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f8b197d1-f9e4-41a5-841a-31c6650f7612.png)



Azure AD のログイン画面が開かれます。ここで、Azure AD 上のユーザー名を入力します。

![image-20220101215009227.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/69312b4f-8d5a-6590-bd86-ef0841ce347b.png)



同様にパスワードも入れます。

![image-20220101215032638.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/09239fc0-7774-fa78-06fd-af0abfe9d68c.png)



すると、QuickSight の画面が開かれます。

![image-20220101215118039.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/62ce355a-1588-f747-3b42-eaf763b43eed.png)





# 参考URL

https://docs.aws.amazon.com/quicksight/latest/user/setup-quicksight-to-idp.html#sp-idp-r-parm

https://qiita.com/shinsaka/items/0b0d126a59021c11da59
![image-20220101215118039.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9c4ff440-47e3-2b21-fb0d-bc8e171036f0.png)