
Microsoft AD は Duo の膝で多要素認証の夢をみる
先日さらっと紹介した 仮想デスクトップ Amazon WorkSpaces
本日はコレにロマンを注入していきます!
MS AD の下の方にこんな設定があります

つまり MS AD では RADIUS 連携で MFA を実現できるわけです!
こんな記事を見つけたのでやってみました
AWS Managed Microsoft AD で Duo を使用して、AWS クライアント VPN エンドポイントに接続するエンドユーザーに多要素認証を提供する方法を教えてください。
https://repost.aws/ja/knowledge-center/client-vpn-use-duo-for-mfa-to-endpoint
コレは VPN を対象にしていますが ここでは WorkSpaces の認証に MFA を追加します
では 設定していきます!

まず サインアップ
有償アプリのようですが 無償期間があるようです

Duo のアカウントを作ったら スマホに Duo アプリケーションをインストールしてアカウント認証を完了します
次に Duo にログインします
[アプリケーション] から [RADIUS] を選択し インストールしましょう!

RADIUS ユーザーを作成します
[Users] から [Add User] を選択します
WorkSpaces のユーザーを RADIUS ユーザーとして追加します
Active Directory ユーザー名と一致するユーザー名で追加しましょう

そして電話番号を設定します
この電話番号で MFA コードを受け取ります

[Activate Duo Mobile] を選択します
そして以下を実行
ユーザーごとに [Duo モバイルアクティベーションコードを生成] を選択します。2 つの方法を使用して、ユーザーにアクティベーションリンクを通知できます。最初の方法では、[SMS で指示を送信する] を選択して、各エンドユーザーにメールでこのアクティベーションリンクを送信します。
2 番目の方法では、[このステップをスキップする] を選択します。次に、各エンドユーザーのそれぞれのアクティベーションリンクをコピーし、リンクを手動で送信します。
RADIUS として EC2 Windows インスタンスを作成します
これは AD ドメインに参加させてあげてください
EC2 に Windows 用の認証プロキシをインストールします

と 設定ファイル書き換えツール (?) が!

使ってみると [Save] をクリックすれば設定をセーブしてくれて (ゲームかよ) [Validate] をクリックすれば設定を検証してくれます
AWS でのガイドでは以下のように編集するようにとありました
ikey、skey、api_host は DUO の Application > RADIUS で確認する値を入れます
[duo_only_client]
[radius_server_auto]
ikey=XXX
skey=YYY
api_host=api-ZZZ.duosecurity.com
radius_ip_1=<AD-DNS-address#1>
radius_secret_1=<My-password>
radius_ip_2=<AD-DNS-address#2>
radius_secret_2=<My-password>
failmode=safe
client=duo_only_client
port=1812

ちなみに <任意のシークレット> は後で Microsoft AD で設定します
ここがちょこっとハマりました
元の設定ファイルにはコレがあるんですよね
[ad_client]
host=
service_account_username=
service_account_password=
search_dn=
[Validate] をクリックするとエラーに!
どげんなっとーと?
エラー内容を読むとどうもココがアヤしかったので とっぱらいました
それで設定が通りました!
ちなみに直にファイルを編集するときはココです
C:\Program Files (x86)\Duo Security Authentication Proxy\conf\authproxy.cfg
ここまでくればあと一歩です
次はセキュリティグループをいじります
Microsoft AD のセキュリティグループ名は <ディレクトリ名>_controllers です
これのアウトバウンドルールに RADIUS EC2 の疎通を設定します

RADIUS EC2 のセキュリティグループのインバウンドにも Microsoft AD からの疎通を通します

そして… RADIUS EC2 で Duo 認証サービスを起動します!
サービス名は [Duo セキュリティ認証プロキシサービス] です

では 最後の仕上げです
MS AD で多要素認証を有効化しましょう
MS AD コンソールで下の方へスクロールし [多要素認証] セクションで多要素認証を有効化します!
値を入れろと出て来ます

値を設定します

しばらくすると RADIUS ステータスが「完了」になります
では WorkSpaces にログインしてみましょうか
WorkSpaces アプリを起動します
MFA コード枠が増えています!

MFA コードを発行してスマホで承認すると
ログインできました!


ははーっ