Windows Virtual Desktop #89 Azure AD で多要素認証を設定する

この記事のWVDは”Windows Virtual Desktop Spring 2020 Release”が対象です。

Windows Virtual Desktop のサインインに Azure AD の多要素認証を設定する話です。 Azure AD とわざわざ明記するのはちょっと前に Windows Virtual Desktop が ADFS に対応したということがあります。もちろん、ADFS ≠ 多要素認証ですし、ADFS 経由で Third Party ツールや Azure AD と連携しての多要素認証ということではあります。 クライアント証明書での認証やHello for Business の連携など Windows Virtual Desktop と ADFS の連携も近々テストしてみる予定です。

今回の設定を行うことで、Windows Virtual Desktop へのアクセス時、Azure AD のアカウントとパスワードの入力に加えて以下の3つのどれかで追加の認証が求められるようになり、より安全な Windows Virtual Desktop 環境となりました。

  • スマートフォン上の Microsoft Authenticator アプリでの承認操作
  • スマートフォン上の Microsoft Authenticator アプリから取得するワンタイムパスワードコードの入力
  • 指定の電話番号への SMS メッセージに記載のコードの入力

なお、Microsoft Authenticator アプリの起動時にセキュリティロックを設定することでセキュリティを強化することが可能です。 私の Android スマートフォンで利用出来る指紋認証と連携し上記の Azure AD の多要素+指紋認証を構成することが出来ています。

多要素認証設定の概要

具体的な設定方法は Microsoft Docs に詳しい説明があります。 URL はこちら。 

前提条件としては

  • Azure Active Directory Premium P1 または P2 を含むライセンスをユーザーに割り当てます。
  • ユーザーがグループ メンバーとして割り当てられている Azure Active Directory グループ。
  • すべてのユーザーに対して Azure 多要素認証を有効にします。 その方法の詳細については、「ユーザーに 2 段階認証を要求する方法」を参照してください。

なお、以下の動作仕様は注意が必要です。 簡単に言うと、最初のサインインでは多要素認証が求められますが次回はバイパスされるという話です。 トークンの記憶ということになりますが、実際の現場のセキュリティポリシーに応じてトークン保持の有効期間を調整する必要があります。

初めてサインインすると、クライアントによって、ユーザー名、パスワード、Azure 多要素認証が要求されます。 その後、次回のサインイン時に、クライアントで、Azure Active Directory (AD) エンタープライズ アプリケーションからのトークンが記憶されます。 セッション ホストの資格情報を求めるプロンプトで [このアカウントを記憶する] を選択した場合、ユーザーは、クライアントの再起動後に、資格情報を再入力しなくてもサインインできます。
資格情報を記憶させることは便利ですが、企業のシナリオや個人のデバイスでのデプロイのセキュリティを低下させる可能性もあります。 ユーザーを保護するには、クライアントが Azure 多要素認証の資格情報をより頻繁に要求し続けるようにできます。 この記事では、Windows Virtual Desktop の条件付きアクセス ポリシーを構成して、この設定を有効にする方法について説明します。

実際の設定は条件付きアクセスで以下の Windows Virtual Desktop のアプリケーションを指定し、多要素認証を有効にするだけです。

Windows Virtual Desktop (アプリ ID 9cdead84-a844-4324-93f2-b2e6bb768d07)

条件付きアクセスの設定

Azure Portal にサインインし、Azure AD のテナントからセキュリティ > 条件付きアクセス に移動します。

新しいポリシーをクリックします。

名前に任意のポリシー名を設定します。

ユーザーとグループに対象を指定します。 今回は特定の1ユーザを指定していますが、グループで指定するケースが多いかと思います。

クラウドアプリまたは操作には Windows Virtual Desktop (アプリ ID 9cdead84-a844-4324-93f2-b2e6bb768d07) を指定します。

条件ではクライアントアプリに以下の2つを指定します。

  • ブラウザー
  • モバイルアプリとデスクトップクライアント

許可の設定で、多要素認証を要求するのチェックボックスを有効にします。

セッションでは多要素認証を要求する頻度を指定します。 ここでは最小の1時間を指定します。

最後にポリシーの有効化オンに変更し、作成をクリックします。

トークンのリセット

多要素認証が有効に動作するかのテストを行います。しかし、条件付きアクセスの設定直後となること、そしてすでにトークンは保持された状態のため多要素認証は求められないはずです。

実際にアクセスしてみます。Windows Virtual Desktop のクライアントを起動し、登録をクリックします。 

アカウントを選択します。

予想通り、多要素認証は求められませんでした。 トークンが保持されているためです。

Azure AD のユーザー管理画面からセッションを取り消すを実行します。

動作テスト

Windows Virtual Desktop のクライアントを起動し、登録をクリックします。

アカウントを指定します。

パスワードを入力します。

多要素認証が要求されます。

Windows Virtual Desktop の Workspace へのサインインが完了しました。

3つの認証要素

アカウントとパスワードに加えての認証要素は3つ利用可能です。

  • スマートフォン上の Microsoft Authenticator アプリでの承認操作
  • スマートフォン上の Microsoft Authenticator アプリから取得するワンタイムパスワードコードの入力
  • 指定の電話番号への SMS メッセージに記載のコードの入力

以下は Microsoft Authenticator アプリで要求を承認するを利用した場合の画面です。 この時、事前に登録しているスマートフォン上の Microsoft Authenticator で承認操作が求められます。 スマートフォン上で承認を行うことで、多要素認証は成功します。

以下はモバイル アプリの確認コードを使用しますの場合です。 スマートフォンの Microsoft Authenticator アプリを起動し、ワンタイム パスワード コードに表示される6桁のコードを入力します。

以下は、SMSを利用した場合です。 事前に登録している電話番号に届いた SMS に記載のコードを入力します。

多要素認証に失敗した場合の挙動

例えば、スマートフォンの Microsoft Authenticator で承認処理を実施しないで放置すると、以下の画面のとおり、お客様からの返信がありませんでしたとメッセージが表示されます。  再度認証したい場合は Microsoft Authenticator アプリにもう一度要求を送信するをクリックします。

多要素認証の承認を拒否した場合の挙動

スマートフォン側での承認を拒否した場合は以下の画面となります。 要求は拒否されましたと案内されます。 

以上