Amazon Web Services ブログ
Azure MFAサーバーを使用したAmazon WorkSpacesの多要素認証(Multi-Factor Authentication)
EUC Specialized SAの渡邉(@gentaw0)です。Amazon WorkSpaces は、AWS で稼働するマネージド型でセキュアな DaaS (Desktop-as-a-Service) ソリューションです。Amazon WorkSpaces を使用すると、仮想的な、クラウドベースの Microsoft Windows デスクトップを簡単にプロビジョニングし、ユーザーは必要なドキュメント、アプリケーション、リソースにサポートされている任意のデバイスから、いつでもどこでもアクセスできるようになります。Amazon WorkSpacesでは多要素認証(Multi-Factor Authentication)をサポートしており、オンプレミスまたはクラウド上のRADIUSサーバーと連携することにより認証のセキュリティを強化することが可能です。
多要素認証(MFA)とは、本人確認(認証)する方法として複数の手段を使う事です。認証にパスワードを使用する事が多いかと思いますが、これは本人だけが知っているはずの情報を確認して、認証を行います。MFA を使用する場合は、このパスワードに加えてトークン等が生成するワンタイムパスワード(OTP)も確認する事で、本人しか持っていないはずのトークン(物)も持っている事を確認して認証できます。
Amazon WorkSpaces での認証は、フルマネージド型のディレクトリサービスであるMicrosoft AD、または既存の Active Directory で認証するための AD Connector を選択することができます。お客様は MFA で使用するワンタイムパスワードを認証できる RADIUS サーバーを別途用意する必要があります。RADIUS サーバーはオンプレミスにあっても、AWS 上にあっても構いません。RADIUSに対応しているものであればさまざまな製品を利用することが可能ですが、このブログ記事ではそのなかでもAzure Multi-Factor Authenticationサーバーを使用してAmazon WorkSpacesのMFAを構成する方法について解説します。
ディレクトリの構成
まず、MFAを有効にするためのディレクトリを作成します。現在のところ、以下のタイプのディレクトリでMFAを構成することが可能です。Simple ADはMFAに対応していないため、このシナリオでは利用することはできません。
- AD Connector
- Microsoft AD
オンプレミスまたはVPC上にすでにActive Directoryドメインを展開する場合は、AD Connectorを使用します。VPC上に独立したActive Directoryドメインを作成する、またはオンプレミスのActive Directoryドメインと信頼関係を結ぶ場合はMicrosoft ADを使用します。AD Connectorの作成方法については、こちら(https://docs.thinkwithwp.com/ja_jp/directoryservice/latest/admin-guide/create_ad_connector.html)、Microsoft ADの作成方法についてはこちら(https://docs.thinkwithwp.com/ja_jp/directoryservice/latest/admin-guide/create_managed_ad.html)のドキュメントを参照してください。ディレクトリの作成が完了したら、AWSマネージメントコンソールからAD ConnectorもしくはMicrosoft ADのIPアドレスを確認しておきます。
Azure MFAサーバーの構成
つぎに、AzureポータルにログオンしてAzure MFAサーバーをダウンロードしてインストールします。Active Directoryドメインに参加したオンプレミス、もしくはAmazon EC2のWindowsインスタンス上にAzure MFAサーバーを構成することが可能です。ダウンロードおよびインストール手順の詳細は、こちら(https://docs.microsoft.com/ja-jp/azure/multi-factor-authentication/multi-factor-authentication-get-started-server)を参照してください。
MFAサーバーのインストールが完了したら、MFAサーバーでRADIUS認証を構成します。Azure MFAサーバーでは、認証プロトコルとしてPAP(パスワード認証プロトコル)またはMS-CHAPv2(Microsoft チャレンジハンドシェイク認証プロトコル)をサポートします。
MFAサーバーをインストールしたWindowsインスタンス上で「Multi-Factor Authentication Server」を開き、「RADIUS認証」で「RADIUS認証を有効にする」にチェックをつけます。「クライアント」タブで「追加」をクリックし、以下のように入力します。
- IPアドレス:ディレクトリのIPアドレス
- アプリケーション名:任意の名前(WorkSpacesなど)
- 共有シークレット:任意の文字列
- 共有シークレットの確認入力:上と同じ
ディレクトリのIPアドレスは2つあるため、同様にして2つのIPアドレスを追加します。MFAサーバーの構成が完了すると以下のようになります。
次に、MFAサーバーでユーザーの構成を行います。「ユーザー」で「Active Directoryからインポート」をクリックすると、Active Directoryユーザーをインポートすることが可能です。「ユーザーの編集」をクリックして、必要に応じて認証方法や電話番号を入力して「有効」にチェックをつけ、設定内容を適用します。
現在のところ、Amazon WorkSpacesの多要素認証に利用可能なのは以下の認証方法となります。
- 電話:StandardまたはPIN
- テキストメッセージ:Two-Way OTPまたはTwo-Way OTP + PIN
- モバイルアプリ:StandardまたはPIN
MFAサーバーの構成が完了したら、次のステップで使用するためにMFAサーバーのIPアドレスを確認して記録しておきます。また、EC2インスタンス上にMFAサーバーを構築している場合はセキュリティグループでAD ConnectorまたはMicrosoft ADからのUDP 1812によるインバウンドアクセスを許可しておく必要があります。その他、Azure MFAサーバーにおけるRADIUS認証の構成方法についてはこちら(https://docs.microsoft.com/ja-jp/azure/multi-factor-authentication/multi-factor-authentication-get-started-server-radius)を参照してください。
多要素認証の有効化
AWSマネージメントコンソールで、ディレクトリを選択します。「多要素認証」タブをクリックして「多要素認証の有効化」にチェックをつけ、以下のように入力します。
- RADIUSサーバーのIPアドレス:MFAサーバーのIPアドレス
- ポート:1812
- 共有シークレットコード:Azure MFAで設定した共有シークレットコード
- 共有シークレットコードの確認:上と同じ
- プロトコル:CHAPまたはMS-CHAPv2
- サーバータイムアウト(秒単位):30以上
- 最大再試行回数:1以上
「ディレクトリの更新」をクリックします。しばらくしてMFAサーバーへの接続が成功したら、「RADIUSステータス」が「完了済み」になります。
Amazon WorkSpacesへの接続
ディレクトリで多要素認証の構成が完了したら、Amazon WorkSpacesコンソールからディレクトリを登録してWorkSpacesを起動します。WorkSpacesの起動が完了したら、ユーザーはAzure MFAによる多要素認証を利用してWorkSpacesにログオンできるようになります。WorkSpacesクライアントをインストールして、以下のように入力してログオンします。
ユーザー名:Active Directoryユーザーのユーザー名
パスワード:Active Directoryユーザーのパスワード
MFAコード:上と同じ
ここで、MFAコードにActive Directoryユーザーのパスワードを入力する必要があることに注意してください。Azure MFAサーバーは、ここで第一認証としてActive Directoryユーザー認証を要求するためこの段階でワンタイムパスワードを入力することができません。
パスワードによる第一認証が成功すると、ワンタイムパスワードなどによる第二認証をおこなうことができます。SMSでTwo-Way OTPを有効している場合は、登録した電話番号に対してワンタイムパスワードが通知されますのでそれをそのままSMSに入力することにより認証が成功し、そのままWorkSpacesにログオンできるようになります。
まとめ
このブログ記事では、Azure Multi-Factor Authenticationサーバーを使用してAmazon WorkSpacesの多要素認証を構成する方法について解説しました。そのほかのRADIUSサーバーと同様に、Azure MFAを使用して多要素認証を有効にして認証のセキュリティを強化することが可能ですが、Azure MFAは2段階認証を前提とするためはじめにMFAサーバーに対してActive Directoryユーザー認証を行う必要があることに注意してください。また、タイムアウトを長めに設定することによりログオン認証が失敗するリスクを回避することができます。