WorkSpaces で Azure AD と SAML 連携をやってみた

# はじめに

2022 年 11 月ごろに、[WorkSpaces が SAML 2.0 の一般提供を開始する](https://aws.amazon.com/jp/about-aws/whats-new/2022/11/amazon-workspaces-integration-saml-2-0-availability/)アップデートがありました。Azure AD や Okta, OneLogin といった IdP と連携が出来るようになったため、会社の中で全社的な IdP が有る場合はそれと連携ができます。これによって、会社全体のガバナンスポリシーに沿うことができたり、人の入れ替えに対応する負担が軽減できるメリットがあります。

今回の記事では、WorkSpaces と Azure AD で SAML 2.0 の連携を行う設定を紹介します。[AWS の公式 Document](https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html) や[サーバーワークスさんの記事](https://blog.serverworks.co.jp/workspaces-saml)を参考にしました！ありがとうございます！



# どんなログイン画面になるの？

いきなり設定に入る前に、どんなログイン画面になるのか紹介します。

まず、WorkSpaces Client を起動します。初回限定ですが、WorkSpaces の Registration Code を入力します。

![image-20230525012107519.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f4d15b12-ac74-4770-b951-1b9babcf085a.png)



Azure AD と SAML 連携をしているため、「Continue to sign in to WorkSpaces」というボタンが表示されます。非 SAML 連携の場合は、このボタンではなく、ID・Password を入力する画面となっています。このボタンを押します。

![image-20230525012220991.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a3f3f127-4437-e514-bd25-53397fff79d5.png)



自動的にブラウザが立ち上がり、Azure AD のログイン画面が表示されます。Azure AD にログインします。

![image-20230525012257602.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9a732bf8-06ef-ae88-caf7-f86da8db2d15.png)



Azure AD 側で管理されているパスワードを入力します。

![image-20230525012312887.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/cb946aad-239c-8009-4c20-04eba3cfe688.png)



ブラウザ上で「Log in to WorkSpaces」が表示されるため、これを押します。

![image-20230525012339355.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f1f364b8-3033-850e-480f-f190f3d7d12b.png)



すると、WorkSpaces Client の画面が自動的に切り替わります。ブラウザで入力したユーザー名が自動的に入力され、再度パスワードが求められます。**これは、WorkSpaces と連携している Active Directory 上のユーザーのパスワードを入力します。** Azure AD だけで完結するわけではなく、別途 Active Directory や Microsoft AD が必要なのが注意点ですね。

Active Directory 側のパスワードを入力します。技術的には Azure AD と Active Directory のパスワードが異なっている場合でも、それぞれ別のパスワードを入力すれば利用可能です。ただ、二重管理は面倒です。本番環境では、[Azure AD Connect](https://learn.microsoft.com/ja-jp/azure/active-directory/hybrid/connect/whatis-azure-ad-connect) を構成することで、Active Directory と Azure AD 間のユーザーやパスワードを同期するとよいでしょう。

![image-20230525015046569.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f10b415c-5df8-a240-0520-a3d4379b8beb.png)



無事にログインが出来ると、WorkSpaces の画面が表示されます。

![image-20230525023525075.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/04eb9293-473d-4d64-43f1-c289364a0d7a.png)



# 構成図

この記事で検証する構成図を紹介します。個人的に勘違いしていたのが、Azure AD があれば Active Directory が不要だと思い込んでいたんですが、そんなことなかったです。Azure AD と Active Directory の両方を利用しています。

![image-20230525123348472.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/14531d9b-2c29-4f19-1cae-655ac06b3e36.png)



これは余談ですが、本番環境を想定すると、Azure AD と Active Directory でユーザー情報を二重管理するのは大変です。[Azure AD Connect](https://learn.microsoft.com/ja-jp/azure/active-directory/hybrid/connect/whatis-azure-ad-connect) を EC2 などで構成することで、Azure AD と Active Directory 間のユーザーやパスワードを同期するとよいでしょう。次の構成図のように、Azure AD Connect を用意する構成が考えられます。

![image-20230525123613819.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/050a1227-e609-7730-70fd-eba5800ce539.png)



それでは設定をしてみましょう！



# Azure AD : エンタープライズアプリケーションの作成

![image-20230524230607901.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/06cc8e54-bb40-f48f-51f6-bf0cc1f96e92.png)



新しいアプリケーションを選択します。

![image-20230524230723289.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8696d548-41b1-fe18-de69-08fa7d74da1c.png)



独自アプリケーションの作成を押します。

![image-20230524230750775.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f07fbd95-f03d-e05f-969e-2951abc36e1a.png)



適当に名前を入れて、作成を押します。

![image-20230524230846653.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9e93cad8-b923-a94b-5878-b9337c5ddfd7.png)



作成されました。

![image-20230524233326869.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/08436378-7eb1-9f6f-797e-39bd7ee1c7e3.png)



# Azure AD : フェデレーションメタデータのダウンロード

作成したエンタープライズアプリケーションを選択します。

![image-20230524233334542.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/13901bde-eb6a-28a1-be10-af0bd52267b9.png)



シングル サインオンの設定を押します。

![image-20230524233219906.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/3f165fdc-73cf-b95a-7b3c-2b6a77799078.png)



SAML を選択します。

![image-20230524233355902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ae5b2723-3008-aba3-0a79-756930f59d67.png)



AWS で提供されている SAML メタデータを、作業用端末にファイルとして保存します。

https://signin.aws.amazon.com/static/saml-metadata.xml



メタデータ ファイルをアップロードする　を押します。

![image-20230524233530451.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/cf097944-10a5-f601-2b54-d4c63cb372d8.png)



ダウンロードした XML ファイルを選択して、追加を押します。

![image-20230524233604867.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e5e046d4-5520-55c6-9576-ba2befe44ef8.png)



保存を押します。

![image-20230524233705093.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8ec9b4cb-2228-2724-41b8-4e9f53685cf5.png)



フェデレーション メタデータ XML をダウンロードします。

![image-20230524233837543.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/54b26d4b-f7e3-ccf7-62cf-a771bd7240f3.png)



# AWS : IAM で Identity Provider を作成

AWS のマネージメントコンソールにある IAM で作業を進めます。Identity Provider のメニューで Add provider を押します。

![image-20230524234000051.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c90a1235-9cd4-3b2f-6e9b-2da2b1307b3b.png)



名前の指定や、ダウンロードしたメタデータ XML ファイルをアップロードして、Add provider を押します。

![image-20230524234103925.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/7ae636a4-3bf5-99d2-7a5c-490283abd2e9.png)



Identity Provider が作成されました。

![image-20230524234216437.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/096ed4cc-cb85-de45-1be6-474e168a6cf3.png)



# AWS : IAM Role を作成

WorkSpaces と Azure AD が連携するための IAM Role を作成します。

Create Role を押します。

![image-20230524234316867.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8742e3be-22bb-be01-7626-eadeac710946.png)



Identity Provider 等の指定を行います。

![image-20230524234512784.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/907761be-0e05-96a9-b14b-fe48612555bd.png)



後で権限設定をするため、Next を押します。

![image-20230524234544237.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b2efbf22-c647-9b55-3e13-a2ed41088ebc.png)





IAM Role 名を適当に指定します。

![image-20230524234750691.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8a039223-69a9-6672-929c-9d60b8f5ee1f.png)



Create Role を押します。

![image-20230524234813036.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/aaf34271-1f60-875b-4a71-cfca3d1651c5.png)



IAM Role が作成されました。作成した IAM Role の画面で、Edit trust policy を押します。

![image-20230524234930743.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8e1f5d70-f297-975d-2c0e-000331f94ac3.png)



TagSession を追加して、Update policy を押します。

![image-20230524235015391.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b48dcf38-68b5-ed0d-8a59-1892e7a74a44.png)



次に、Permissions から、Create Inline policy を押します。

![image-20230524235106571.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1346b6ab-23c4-60f1-b45c-75bafb6968cb.png)



次のような JSON ポリシーを入力します。環境に合わせて書き換えてください。

- リージョン名 : `ap-northeast-1`
- AWS アカウント ID : `111111111111`
- Directory の ID : `d-95677d48dc`

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "workspaces:Stream",
            "Resource": "arn:aws:workspaces:ap-northeast-1:111111111111:directory/d-95677d48dc",
            "Condition": {
                "StringEquals": {
                    "workspaces:userId": "${saml:sub}"
                }
            }
        }
    ]
}
```

![image-20230525000310836.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c4990227-7715-cc3b-f32a-2ba3db6f8033.png)



適当に名前を入れて、保存を押します。

![image-20230525000440303.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5d7dd14b-52f2-ac4d-6dd5-c400ff98f2ec.png)



# Azure AD : SAML 認証応答のアサーションを設定

Azure AD の画面で、属性とクレームから編集を押します。

![image-20230525000611435.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d0b56e8a-097f-9601-7fc0-bae232777042.png)



次の値を入れていきます。

| クレーム名                                                | 値                                           |
| --------------------------------------------------------- | -------------------------------------------- |
| 一意のユーザー識別子 (名前 ID)                            | user.mailnickname [nameid-format:persistent] |
| https://aws.amazon.com/SAML/Attributes/Role               | IAM ロールのARN,Identity Provider の ARN |
| https://aws.amazon.com/SAML/Attributes/RoleSessionName    | user.mailnickname                            |
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email | user.mail                                    |



まず、デフォルトで存在している 4 行のクレームは削除します。

![image-20230525001612376.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/dd68364f-7f39-1004-1dd7-019fd72409c1.png)



新しいクレームの追加を押します。

![image-20230525001755093.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/97490593-9d21-417e-aa81-25e9564e9236.png)



Role に関する設定を入れます。この「ソース属性」は、AWS IAM 上で作成した IAM Role と、Identity Provider の ARN をカンマ区切りで入力します。AWS アカウント ID はダミーですが、こんな感じで入力します。

```
arn:aws:iam::111111111111:role/WorkSpacesSamlAccessRole,arn:aws:iam::111111111111:saml-provider/AzureADforWorkSpaces
```

![image-20230525002046538.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/738ed350-197c-19bc-d935-45cb82f0c0b9.png)



設定されました。

![image-20230525002227927.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/35f7634c-9b1b-46ec-a5d8-b4b4a49791ad.png)



このような感じで、残りの設定を入れていきます。次の画面が全て入れた状態です。

![image-20230525002607785.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2c7ed15e-72a4-9f0e-c3f4-8bdf1f98e037.png)



「必要な要求」の部分は、このように設定します。「永続的」と指定するところが見逃し気味なので注意しましょう。

![image-20230525002520683.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/6e2b84c1-bae8-cff2-ecf8-ad71cd47114c.png)



# Azure AD : フェデレーションのリレー状態を構成する

基本的な SAML 構成を編集します。

![image-20230525002732900.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d134a2d8-f87c-9416-a828-4e0379cbcf20.png)



リレーの状態に設定するURLは、リージョンごとに異なりますが、東京リージョンの場合は、以下のURLになります。

```
https://workspaces.euc-sso.ap-northeast-1.aws.amazon.com/sso-idp?registrationCode=【WorkSpacesの登録コード】
```



WorkSpaces の登録コードは、AWS マネージメントコンソールから確認が可能です。

![image-20230525003540085.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f1b00de0-caa6-1f48-7fec-dd4361b94a3c.png)



次のように指定して保存します。

![image-20230525003441617.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/78473d4a-54f2-844f-4561-0908f087d78c.png)



# Active Directory : ユーザーを登録

Active Directory 上でユーザーを作成します。今回は技術検証なので、Active Directory 上のユーザーと、Azure AD 上でそれぞれ二重管理をします。本番の環境は二重管理になるの辛いので、Azure AD Connect を使って同期をするとよいでしょう。

![image-20230525005622772.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/497272ca-5647-b8f7-a7f2-2e972981647f.png)



ws-user01 で作成します。

![image-20230525013240164.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/68b99003-221a-b27b-eac8-2ea8a592f454.png)



パスワードを指定します。

![image-20230525005801148.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/30750089-4476-8d9c-fee7-cb758ee09732.png)



ユーザーが作成されました。

![image-20230525013313107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c04ba96f-b4b7-92df-d9eb-d3054d4185ef.png)



該当のユーザーのプロパティから、メールアドレスを指定します。これは、Azure AD 上のユーザーのメールアドレスと同じであることが必要です。

![image-20230525015901707.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/200bbc1f-5647-6f4e-9c6e-5bb016c6f33b.png)





# Azure AD : ユーザー作成

新しいユーザーを作成します。

![image-20230525005936221.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c30373c9-02e6-19ce-51f4-6cfb639d0106.png)



Azure AD 上でも同じ名前でユーザーを作成します。

![image-20230525010401081.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1181d7f7-f9e1-a652-dda8-06c55aeeb6f4.png)



作成を押します。

![image-20230525010428215.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/296bc9b4-3413-86a9-3b2f-e18b229e6bca.png)



ユーザーが作成されました。

![image-20230525010532290.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a0f279d4-bdfa-2201-98b5-8f7abb731e7d.png)



作成したユーザーのプロパティを編集します。

![image-20230525020108852.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2bf13610-e097-8339-56f6-9e4d3eb0c2fe.png)



メールアドレスを指定して、保存を押します。Active Directory 側と一致が必要です。

![image-20230525020142880.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e57cadb8-27df-a782-165d-1eb3820c6336.png)



WorkSpaces 用に作成したエンタープライズアプリケーションにユーザーを紐づけます。

![image-20230525010615980.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/be9a94e5-afa6-5a35-86e0-2c89133015c3.png)



選択を押します。

![image-20230525010640167.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/097ffe21-1749-5149-0971-85cd279111f3.png)



割り当てを押します。

![image-20230525010712437.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ca26f97f-6e94-eb85-0648-928c7144614e.png)



割り当てられました。

![image-20230525010800635.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d7619753-ee23-10bc-efc2-2c695ec7e354.png)









# Azure AD : アプリのリンクをコピー

https://myapps.microsoft.com/
にアクセスして、Azure AD 上で作成したユーザーを使ってログインします。



WorkSpaces のアプリが表示されているので、「リンクのコピー」を押します。

![image-20230525011118063.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/de300911-69ea-9539-2c65-6e7738506b46.png)



このような URL がコピーされます。

```
https://launcher.myapps.microsoft.com/api/signin/e3b25c8a-1e91-452b-b7fb-26894694fb31?tenantId=54d4fb23-4655-46de-ab3a-4698a1111116
```



上記リンクの「/signin/」以降をコピーして、https://myapps.microsoft.com/signin/ の末尾に付与します。付与した例が以下の通りです。

```
https://myapps.microsoft.com/signin/e3b25c8a-1e91-452b-b7fb-26894694fb31?tenantId=54d4fb23-4655-46de-ab3a-4698a1111116
```



# WorkSpaces : SAML 2.0 を有効化する

WorkSpaces から、Directory を選択します。

![image-20230525011430028.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b7d7059d-c8ef-8829-07c8-ec1418ce6669.png)



Authentication を編集します。

![image-20230525011508617.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/bcb3ce1d-43f3-5314-23ff-6610375e104d.png)



SAML 2.0 Identity Provider を編集します。

![image-20230525011533580.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/70b70fb3-01b5-be28-375b-baa807d48e2a.png)



生成した URL を入力して、Save を押します。

![image-20230525011639861.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/874d4104-240c-dc76-f325-4476e78ff92d.png)



# WorkSpaces で該当のユーザーに作成する

WorkSpaces で、概要のユーザー用の環境を作成します。Create WorkSpaces を押します。

![image-20230525015408349.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e63d9285-ecb1-4453-8beb-6fb10fe9e267.png)



該当の Directory を指定します。

![image-20230525015432367.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b8a07e65-73ef-e72b-8d3f-5e2e1771121d.png)



該当のユーザーを選択して、Next を押します。

![image-20230525015545623.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4f8890da-a0fe-d303-558d-b5cb7b6a0a85.png)



適当に Bundle を指定して Next を押します。

![image-20230525015645053.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a0389a63-bb2f-ef47-27cc-1f995406594c.png)



自動停止を有効にして、Next を押します。

![image-20230525015722383.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9e84f6aa-8fac-5ed0-5a32-02d907af770f.png)



デフォルトのまま Next を押します。

![image-20230525015741107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/bc26bc0d-8722-6386-3ced-b2ad7f58036e.png)



Create を押します。

![image-20230525015750440.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/90a213ed-4f31-a14b-458a-934b4adb0195.png)



これで設定が完了です！



# 動作確認

動作確認をしていきましょう。WorkSpaces Client がインストールされている端末で、Registration Code を入力します。Registration Code は二回目以降はスキップすることもできます。

![image-20230525012107519.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9170aa55-bbf4-8f50-34c0-871b7a0fc56d.png)



「Continue to sign in to WorkSpaces」 のボタンを押します。

![image-20230525012220991.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c3e9ac66-2406-f7ce-1042-aae638e9b2b3.png)



自動的にブラウザが立ち上がり、Azure AD のログイン画面が表示されます。Azure AD にログインします。

![image-20230525012257602.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/daacb467-2778-5476-7853-5902b4849171.png)



Azure AD 側で管理されているパスワードを入力します。

![image-20230525012312887.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/7891fdfb-ae14-0072-d98a-d696c9c3a1a9.png)



ブラウザ上で「Log in to WorkSpaces」が表示されるため、これを押します。

![image-20230525012339355.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5f960e5a-0375-9ff3-6e2b-ccce2d6bb5e8.png)



すると、WorkSpaces Client の画面が自動的に切り替わります。ブラウザで入力したユーザー名が自動的に入力され、再度パスワードが求められます。**これは、WorkSpaces と連携している Active Directory 上のユーザーのパスワードを入力します。** 

![image-20230525015046569.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4d844e1d-bbf9-6eac-bdc8-7f6fdc5f039c.png)



無事にログインが出来ると、WorkSpaces の画面が表示されます。

![image-20230525023525075.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/352db762-5e4c-73a2-9525-0eb0a642b84f.png)



# Tips1 : sAMAccountName の確認方法

Active Directory の sAMAccountName と、Azure AD 側で設定した「一意のユーザー識別子 (名前 ID)」の「user.mailnickname」の一致が必要です。

Active Directory の sAMAccountName は、PowerShell で以下のコマンドを実行することで確認できます。

以下の表示の「SamAccountName」がsAMAccountName です。

```
PS C:\Users\Admin> Get-ADUser -Filter { SamAccountName -eq "ws-user01" } | Format-List


DistinguishedName : CN=ws-user01,OU=Users,OU=sharead,DC=sharead,DC=local
Enabled           : True
GivenName         :
Name              : ws-user01
ObjectClass       : user
ObjectGUID        : df0ea6fe-3b1c-4698-a2fe-e348ef7eb87f
SamAccountName    : ws-user01
SID               : S-1-5-21-2415499674-2393242095-994390223-1610
Surname           : ws-user01
UserPrincipalName : ws-user01@sharead.local



PS C:\Users\Admin>
```



この記事の環境では、sAMAccountName の「ws-user01」と、Azure AD 上のメールニックネームの「ws-user01」一致していることが必要です。なお、SAML のクレーム要求の設定で紐づけを変えることもできるはずです。

![image-20230525130015293.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a8a09ab9-ffc9-679c-5680-b66f1d36e99b.png)

# 検証を通じてわかったこと

- Azure AD と連携をしても、別途 Active Directory や Microsoft AD が必要。
- ユーザーやパスワードが、Azure AD と Active Directory で二重管理するのが辛いので、[Azure AD Connect](https://learn.microsoft.com/ja-jp/azure/active-directory/hybrid/connect/whatis-azure-ad-connect) で連携するのが良さそう
- WorkSpaces で SAML 連携をしていると、Web ブラウザからのアクセスが利用できない。ログインしようとしてもエラー画面が表示される。SAML 連携を行う場合は、OS にインストールする WorkSpaces Client から利用する。




# 参考 URL

【Amazon WorkSpaces】Azure ADを利用したSAML認証を試してみた
https://blog.serverworks.co.jp/workspaces-saml

Setting up SAML 2.0
https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html