継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Amazon Workspace を Microsoft EntraID の SAML 認証を行う~設定編~

タダです.

Amazon Workspaces(以下,Workspaces)のログインを Microsoft EntraID の SAML 認証で設定する事があったので今回は SAML 認証設定編です.なお,前回記事は以下になります.

sadayoshi-tada.hatenablog.com

Workspaces のログインを SAML 認証設定でやること

以下のドキュメントにステップが書かれているため,この記事でも沿って書いていきます.

docs.aws.amazon.com

設定工程

事前準備

事前準備として Microsoft EntraID のエンタープライズアプリケーションから SAMLメタデータを取ってくる必要があるので,その設定をまず行います.エンタープライズアプリケーションの SAML 設定でこちらの URL からダウンロードした saml-metadata.xml をアップロードします.アップロードして保存後にフェデレーションメタデータXML ファイルをダウンロードしておきます.

AWS IAM で SAML ID プロバイダーを作成する

IAM で SAML ID プロパイダーを追加します.事前準備でダウンロードしたフェデレーションメタデータ XML ファイルをアップロードして保存します.

SAML 2.0 フェデレーション IAM ロールを作成する & SAML 2.0 ID プロバイダーを設定する

追加した SAML ID プロバイダーを信頼関係に指定した IAM ロールを作ります.ドキュメントの手順に沿って最終的に以下のポリシーを作成できていれば OK です.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::[AWS アカウント番号]:saml-provider/[追加した SAML ID プロバイダー名]"
      },
      "Action": [
        "sts:AssumeRoleWithSAML",
        "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "SAML:sub_type": "persistent"
        }
      }
    }
  ]
}    

IAM ロールにインラインポリシーを埋め込む

作成した IAM ロールのインラインポリシーを追加します.ドキュメントの手順に沿って最終的に以下のポリシーを作成できていれば OK です.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "workspaces:Stream",
            "Resource": "arn:aws:workspaces:ap-northeast-1:[AWS アカウント番号]:directory/[AD Connector のディレクトリ ID]",
            "Condition": {
                "StringEquals": {
                    "workspaces:userId": "${saml:sub}"
                }
            }
        }
    ]
}

SAML 認証レスポンスのアサーションを作成する

次に認証レスポンスの中に Microsoft EntraID が AWS に送信する SAML 属性としての情報を設定します.次の4点をシングルサインオンのページの属性とクレームセクションで指定します.

  • 一意のユーザー識別子 (名前 ID): user.mailnickname
  • https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email : user.email
  • https://aws.amazon.com/SAML/Attributes/Role : arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME,arn:aws:iam::ACCOUNTNUMBER:saml-provider/PROVIDERNAME
  • https://aws.amazon.com/SAML/Attributes/RoleSessionName : user.mailnickname

設定完了すると,以下の画像のような設定になります.

フェデレーションのリレーステートを設定する

Microsoft EntraID を使用した WorkSpaces ディレクトリのリレーステート URL を指すようにフェデレーションのリレーステートを設定します.https://relay-state-region-endpoint/sso-idp?registrationCode=registration-code 形式で指定する必要があるので,東京リージョンで設定する場合は以下のような指定になります.

設定後の URL

WorkSpaces ディレクトリで SAML 2.0 との統合を有効にする

Microsoft EntraID のエンタープライズアプリケーションで SAML 認証を通すユーザーを追加しておき, https://myapps.microsoft.com/ にアクセスして対象のエンタープライズアプリケーションのリンクをコピーしておきます.コピーした URL の signin 以降を切り取り, https://myapps.microsoft.com/signin/ の後ろに付与した URL を手元で作っておきます.ここから Workspaces ディレクトリで SAML との統合設定を進めます.ドキュメントに沿って最終的に画像のように設定が完了します.

Workspaces のログインで動作確認を行う

ここまでの設定が問題なければ,Workspaces クライアントから SAML 認証でログインできるようになるため動作確認を行います.

クライアントを起動して Continue to sign in to Workspaces をクリック

Open "WorkSpacesClient.macOS" をクリック

エンタープライズアプリケーションに追加したユーザーと前回記事の Active Directory に追加したログインユーザー名が一致しており,かつ Active Directory で設定したパスワードが一致してればログインが成功します.

まとめ

この記事では Workspaces へのログインで Microsoft EntraID SAML 認証を使う設定をまとめました.