Amazon WorkSpacesの多要素認証でAzure MFAを使用する

記事タイトルとURLをコピーする

こんにちは。 SRE2課の島村です。

WorkSpacesの多要素認証にAzure MFAを使用するために構成を作成していきます。
早速ですが、今回使用する環境は以下の構成図の通りです。

構成図

f:id:swx-shimamura:20201111180246p:plain

前提条件

  • Azure AD DSの構築が完了していること
  • Azure - AWS間がVPN接続されていること
  • 使用するNPSサーバにAzure MFA拡張機能がインストール済みであること
  • Azure ADのUserでMFAを有効にし、設定済みであること

なお、今回のブログではNPSの設定とAD Connectorの設定をご紹介しますが、 前提条件となる部分の構成については紹介しません。 事前に構成済みとなるように準備をしておいてください。 最後に環境構築に詰まったポイントをメモ書きを記載しておきます。

NPSサーバ設定

Radiusクライアント設定

早速、NPSの設定を行っていきます。 NPSコンソール開きます。

まずはRadiusクライアントを設定していきます。 左ペインの[Radiusクライアント]上で右クリックし、新規作成していきます。

f:id:swx-shimamura:20201102172536p:plain

ここで入力する値は次の通りです。

項目 入力値
FrindryName 任意
アドレス AD ConnectorのIPアドレス
共有シークレットキー 自動生成

共有シークレットキーはGenerateのラジオボタンを一度選択することで 自動生成されます。その後、Manualに戻します。

ここで生成した共有シークレットキーは2つめのRadiusクライアントと AD Connector側の設定で使用するのでどこかにメモしておいてください。

1つ目のRadiusクライアントが作成できたら2つ目を作成します。 1つ目で指定したAD ConnectorのIPアドレスとは別のIPアドレスを入力します。

Radiusクライアントの設定は完了です。

接続要求ポリシーの設定

次に接続要求ポリシーを設定していきます。
新規作成のウィンドウが開いたら構成を進めていきます。

f:id:swx-shimamura:20201102182052p:plain

ポリシー名は任意で問題ありません。
その他はデフォルトのまま、次へ進みます。

f:id:swx-shimamura:20201102182332p:plain

条件に合致したものからの接続要求を受けるよう設定できます。
今回は、RadiusクライアントのIPv4を選択します。

f:id:swx-shimamura:20201102182512p:plain

選択すると、IPアドレスの入力画面が表示されるので、AD ConnectorのIPアドレスを1つ入力します。

入力後、次へ進みます。

f:id:swx-shimamura:20201102182656p:plain

認証の設定を変更します。
資格情報を検証せずにユーザーを受け入れるにチェックをいれます。
この後の設定は全てデフォルトで構成を完了します。

作成したポリシーはコピーができるので、コピーしてから、IPアドレスの部分を2つめのAD ConnectorのIPアドレスに編集します。

これで接続要求ポリシーの設定は完了です。

ネットワークポリシーの設定

どんどんいきます。次にネットワークポリシーの設定を行っていきます。

f:id:swx-shimamura:20201104175432p:plain

名前は任意で入力して、次に進みます。
※他の項目はデフォルトで構いません。

f:id:swx-shimamura:20201104175222p:plain

アクセス許可の条件を設定していきます。
今回はAD Groupを選択します。

f:id:swx-shimamura:20201104175403p:plain

追加できたら次へ進みます。

f:id:swx-shimamura:20201104180618p:plain

使用する認証方式にチェックをつけていきます。
今回はPAPを使用しますが、チェックをつけて次に進もうとすると警告文が表示されます。
無視して次へ進み、完了を選択します。

Security Groupの設定

NPSサーバからAD Connectorに対して、Radius認証(UDP:1812)の通信が発生するので使用するポートを Security Groupのインバウンドルールにて解放しましょう。

AD Connectorの多要素認証の設定

AD Connectorで多要素認証の設定を行います。
Directory Serviceのコンソールへ移動し、AD Connectorの[ネットワークとセキュリティ]タブを選択してください。
[多要素認証]という項目があるので、アクションから[有効化]を押します。

f:id:swx-shimamura:20201111163101p:plain

必要事項を入力していきます。
以下を参考に入力してみてください。

項目 入力値
RadiusサーバのIPアドレス NPSサーバのIPアドレス
共有シークレットコード Radiusクライアント設定で生成したシークレットキー
認証方式 PAP
タイムアウト値 50

入力が完了したら、[有効化]を選択してください。
設定がうまくいくと、5分かからない程度で有効化となります。

必要な設定は以上で終わりです。

接続してみる

WorkSpacesを作成し、WorkSpacesクライアントの接続を試みてください。
今回仮想MFAアプリケーションはMicrosoft Authenticatorを使用しています。
ID/Password、ワンタイムパスワードを入力すると無事接続できるかと思います。
※今回スクリーンショットを取得し忘れてしまいました...。ごめんなさい。

最後に

IDプロパイダーとしてAzure ADを使用している環境は多いと思います。
AWSでWorkSpacesをご利用される場合でも、問題なくAzure AD側のユーザー情報を利用できる点はいいですね。
ただし、NPSサーバの冗長など運用面の検討は必要になりそうです。

メモ

NPSサーバのAzure MFA拡張の場合、NuGetが必要になるので、インストールする必要がありました。
以下のコマンドを管理者権限で実行することで実行できます。
※バージョン指定は任意で変更ください。

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

NuGetの詳細は以下から参照ください。

docs.microsoft.com

また、私の環境では、上記コマンドを実行してもエラーになりました。
どうやら、リポジトリとして設定されているPowerShell GalleryがTLS1.2を デフォルトとして設定されており、TLS1.0や1.1は受け付けないようです。

devblogs.microsoft.com

そのため、PowerShellでTLS1.2に対応できるよう変更を行います。

 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

AWSでNPSサーバを構成する場合は、PowerShellのリポジトリが登録されていなかったので 以下のコマンドも必要になります。

#リポジトリの登録
Register-PSRepository -Default

# 登録されているリポジトリの確認
Get-PSRepository

#結果

Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2

どなたかの参考になれば幸いです。

島村 輝 (Shimamura Hikaru) 記事一覧はコチラ

最近ECS周りをキャッチアップ中。趣味は車・バイク全般。
一応、AWS12冠です。