追加します。公式の手順は以下の通り。
https://help.okta.com/en/prod/Content/Topics/Security/AmaznWS_App.htm
OktaなどIdpにログインして、そこからいろいろなサービスにシングルサインオンできれば便利ですし、Oktaでログイン時にプッシュ通知+認証時に別デバイスでの承認が必要な設定にしておけばパスワードの総当たり攻撃や、フィッシングサイトにパスワードを提供してしまった際にも第三者のログインを防ぐことができます。
今回Amazonが提供するVDIに対してシングルサインオンしたいと思ったのですが、残念ながらWorkSpacesはSAMLなどに対応していないようです(2020/09時点)。その変わりRADIUS認証経由の多要素認証をサポートしていて、Oktaでも利用可能です。
今回の目的
Workspacesのログイン時にOktaのワンタイムコードも入力することでログイン可能とする
やること
AWS上に「AWS Managed Microsoft AD」の構築
AWS上に「Windows Server 2016」の構築
Oktaに「Amazon WorkSpaces」の設定と追加(今回はトライアル版を利用します)
Oktaにユーザの追加
Workspacesの割当+ワンタイムコードを用いたログイン
AWS上に「AWS Managed Microsoft AD」の構築
今回はStandardで構築します。AWSの画面上から必須項目のみ入力します。
AWS上に「Windows Server 2016」の構築
EC2のAMIに2016baseを選択します。
(OktaのRADIUSエージェントのサポートOSで最新版のためこれを選択します)
本サーバはRADIUS認証のみに利用して、インターネット経由でOktaとUDPで通信する必要があります。通信を受け付ける必要はないのでNATゲートウェイのサブネットに配置します。構築用のWorkspacesを作り、プライベートIP間でリモートデスクトップで操作します。
Oktaに「Amazon WorkSpaces」の設定と追加
ディレクトリからWindowsサーバにUDP1899を開放する
Windowsサーバのファイアウォールで「UDP1899」を通す
認証情報の登録
(ログインするユーザとの付き合わせはメールアドレスのプレフィックスにします)
ディレクトリの多要素認証をONにします
失敗しました。WindowsサーバのSG(IN)にUDP1899を追加してなかったため追加して再度実施
Oktaにユーザの追加
メールアドレス「kai.kusakari@gmail.com」を追加して、Workspacesにアサインします。設定時に「Application username format」に「Email prefix」を指定したため、Oktaの「App Username」は@より前の数値をとっています。ユーザ登録時にアクティベートのメールを送付するため、Okta Verifyの設定をしておきます。
Workspacesの割当+ワンタイムコードを用いたログイン
ユーザ名「kai.kusakari」として割当する
ワンタイムコードを使ってログインできます
実現できました。シングルサインオンは実現できないため、カスタムURIを用いてユーザ名だけ補完してあげるなど検討していければと思います。
https://docs.aws.amazon.com/workspaces/latest/adminguide/customize-workspaces-user-login.html