Active DirectoryごしのAmazon WorkSpacesにOkta MFAを追加してみた

OktaをAmazon WorkSpacesのMFAとして利用したいユースケースについて記載しています。
2021.10.12

こんにちは!ネクストモード株式会社 のSaaS部、hagiです。

今回は、実案件に少し絡んでいた都合で、Okta MFAとAmazonWorkspaceを統合する構成において、その実際の立て付けを試してみました。
OktaMFAとAmazonWorkSpacesの統合

分かりにくいので、私の苦手な図表でご説明しますね。

図の通り、EC2上にActive Directoryが鎮座しており、ADコネクターごしにAmazon WorkSpaces環境が立てつけられているという環境を想定しています。
この環境に、Oktaとの橋渡しのため、各種エージェントをバンドルさせて、Oktaとのディレクトリ同期を構成した上で、Active Directory由来のユーザーでもOktaのMFAを使えるようにしましょうというのが今回のゴールです。上記AWSの資料ではEC2を別立てしていますが、今回は横着してActive Directory内に同梱しました。
まだ難しいですか?


要約すると、Amazon WorksSacesのログイン画面にMFAコードの欄が増えるということです。 ここで入力するコードは、Okta Verifyに表示される6桁の数字になります。

Amazon Workspaces

Okta Verify

ちなみに

結果を先にお伝えします。チョー簡単にセットアップできました。

これほど簡単とは思いませんでしたので、やる前に十分な休息を取って、相棒に声をかけ、Slackハドルでストレス緩和しながら慎重に進めていったのですが本当にびっくりするほどあっさりセットアップできてしまったのでこの記事はエンタメの域を出られなくなってしまいました。

どれだけ簡単だったのかお伝えしたいので、先に今回のレシピを箇条書きしておきます。

【AWS側】

  • FW穴あけ
  • EC2にOkta RADIUS Server Agentsを入れる
  • EC2にOkta Active Directory agentを入れる

【Okta側】

  • MFAの設定
  • Active DirectoryのユーザーをOkta側でアクティベート

【Amazon WorkSpaces側】

  • MFAの有効化
  • Amazon WorkSpacesのリソースを作成してログイン

はじめに

まず事前に用意されたAWS環境をマネコンで確認してみましょう。
(環境手配にご協力いただいた関係各位ありがとうございます!)

【Active Directoryが乗っているEC2】

【AD Connectorが乗っているDirectory Service】

【ただのWorkSpaces】

もう、あえて細かいところは説明しないです。実機が正です!
また、Okta側は特に事前に何かしている必要はありません。Admin権限だけ持っていればOKです。

さて、

セットアップを開始しましょう。 まずはAWS側でしたね。

Active Directoryに対してSGの穴あけを行っていきます。 RADIUSで使用するのはTCP/UDP 1812なので、こちらのインバウンドを開けていきます。 開けるとAmazon WorkSpacesがココをめがけてRADIUSを聞けるようになります。

忘れちゃいけないOS側もしっかり開けていきましょう。
(実際よく忘れがちなのはOSよりSGなのはあるあるですが、ダサいので表立っては触れません)

Okta提供のエージェントをEC2に入れていく

次にエージェントです。ソースはOktaの管理画面です。
ログインしてSettings → Downloadsへ。

ワード検索で"radius"とすればOkta RADIUS Server Agent (EXE)が見つかるはずです。
ダウンロードしましょう。

間髪入れずに今度はDirectory → Directory Integrationsへ。
Add Directory → Add Active Directory

説明文を華麗に読み飛ばしてSet Up Active Directoryをクリック

Download Agentをクリックしてエージェントをゲットしたのち、下部にWaiting for the agent installer to update this page...が出ているのをちょっと脇に置きつつ、横でActive Directoryの入っているEC2にリモデしましょう。

コピペで先程ゲットしたexe2つをEC2のデスクトップ上へ転送し、まずはRADIUSからセットアップします。

特に難しいことは考えず、次へ次へとやっていただければ大丈夫です。
ここにはOktaのドメイン名を入れます。

すると、突然見慣れた自アカウントのログイン画面がWindowsデスクトップ上に出現しますので、管理者アカウントでログインします。

最後に、押したいほうのボタンをクリックしてRADIUSエージェントのセットアップは完了です。

EC2、50%完了

はい簡単!次はAD Agentですね。

こちらもサクッと入れたあと、下記の画面でAD側のドメイン名を入れます。

私はおすすめに弱いのでrecommended選びます。

このあとまたドメインを入力する画面になり、管理者アカウントでログイン後、Allow Accessする手順が待っています。

そしてEC2のターン終了。

Okta先生の出番です

画面をOktaに戻したころには、下記のおめでたい画面が出ているはずです。

ちゃんとディレクトリが読み込まれているようですね。次へ

Build User Profile画面でattibuteの整理整頓が行えます。
(一旦そのままでも大丈夫だろうという気立てがあると助かります。)

Doneボタン押してほしそうですね。押してあげましょう。

さて、Active Directoryの連携が完了しました。 早速ユーザーを読み込んでみましょう。 Import画面でImport Nowしてみてください。

Active Directory側のユーザーが読み込まれました。

Confirm Assignmentsして、下記の、ちょっとおフザけ感のあるユーザー名をOktaに取り込んでみましょう。
#お昼何食べたかの脈絡でつけただけで他意はありません。

この後Oktaディレクトリを確認すると…
panmcdがOktaのディレクトリに追加されていますね!

Okta MFAの設定

Security → MultifactorからOkta Verifyを有効化しつつ、Factor Enrollmentで対象ユーザーのグループにOkta Verifyが効くように設定します。 もう、Oktaユーザーなら、分かりますよね!?いちいち説明しないですよココでは。

Applicationsの登録

こちらもいわずもがな。
Brouse App CatalogからAmazon WorkSpacesを探してください。
登録したら、先程のPAN MCDさんをアプリケーションにアサインします。

パラメタとして、ポート1812を追加してあげるのと、この後Amazon Workspace側にも設定する共有シークレット(任意文字列)を設定します。
おもしろパラメタを設定する絶好のチャンスですね!

Oktaユーザーのアクティベート

Active DirectoryからOktaに複製されたユーザーは、Oktaとして初期アクティベートが必要になります。 Oktaログイン画面から初期パスワードでセットアップするか、招待メールを踏んでアクティベートしてください。

Amazon WorkSpacesのMFAを有効化

今度はAmazon WorkSpaces側の設定に参ります。 WorkSpacesのディレクトリから該当するディレクトリを選択して詳細の更新へ。

MFA 認証のセクションから、EC2のアドレス等を入力してパラメタを更新します。 共有シークレットコードは、Oktaに設定したものと同じキーワードを設定します。

RADIUSステータスが美しくなったら完了です。

ゴール

いよいよWorkSpacesの出番です。 ユーザー情報を入力して、先程登録したOkta VerifyからAmazon WorkSpaceへのログインを施行してみましょう。 入れない?いや、PAN MCDさんのWorkSpaceリソース作ってなくないですか?

まとめ

あ!この記事がエンタメの域を出ないことを忘れていたなんていう方がいたら、大変ですね。
難しいことなんて、ただの一つもないのです!
もしまだ、難しく感じるようであれば、それは私の書く文章が読みにくいだけです。