AVD セッションホスト (AD DS) を SSO でサインインさせたい

# はじめに
Azure Virtual Desktop (AVD) の セッションホストへのサインイン時に SSO させるためのノウハウです。

この記事では、セッションホストが オンプレミス ドメインコントローラー (AD DS) に参加している構成に対する内容となっています。

# 前提事項
以下の記事を参照して、No.1 ～ No.7 までを行い、AVD がデプロイされている必要があります。

https://qiita.com/carol0226/items/7318fdd7aff780f5177c

No.8 以降の実施で より 高度な AVD を構成できるような構成になっています。

---

# 1. やりたいこと
**セッションホストへのサインイン認証** で ウィンドウを開かずに、**SSO** で接続させたい！

**Before**（毎回、認証ウィンドウが出るので、パスワードを入れる必要アリ）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0a961cec-876d-02a9-807c-72b5fe681300.png)

**After**（認証ウィンドウが出ない）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f2a02271-9a8b-acf7-1415-bcb1f4df6de5.png)

---

# 2. AVD の認証の流れ
AVD では、以下の３段階で、認証が発生します。
2-1. Azure Virtual Desktop へのサービス認証
2-2. セッション ホスト へのサインイン認証
2-3. セッション内認証

**公開情報：認証方法**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/authentication?wt.mc_id=mvp_407731#authentication-methods

---

## 2-1. Azure Virtual Desktop へのサービス認証
AVD のサービスに接続して 接続するための情報を取得するための認証です。
Microsoft Entra ID アカウントを使用します。
※オンプレミスドメインのアカウントが テナントに 同期されたものである必要があります。

1．[Remote Desktop アプリ](https://learn.microsoft.com/ja-jp/azure/virtual-desktop/users/connect-windows "AVD 用 リモートデスクトップアプリのダウンロード") を初めて起動した際に、以下の画面が表示されます。
ここで、**登録** を押して AVD への接続情報を取得していきます。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ab475f26-151c-5e4c-ff29-72b720329197.png">

2．以下の画面で 認証 します（AVD の利用が許可されているユーザー）
Entra ID 側の設定にもよりますが、既定では １回認証すれば、以後 PC を再起動しても２回目の認証は求められません。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/db8cf8fc-12c7-a8e4-4ec8-58b64fb4440b.png">

3．AVD によって、ユーザーに許可されている デスクトップ や アプリ が表示されます。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/9dc4deb2-9881-55a4-3f4d-0285bc4bde11.png">

---

## 2-2. セッション ホスト へのサインイン認証
セッションホスト (AVD 用の VM) に RDP 接続を行う際の認証です。

<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e7fd5866-4f9c-9829-eeaa-fa14d11a6d72.png">

:::note warn
**課題**
この認証窓は、RDP 接続 を行うたびに 毎回 表示されます。
都度、パスワードを入力する必要があります。
:::

:::note info
**ポイント**
このウインドウの表示を 抑止 させることが、本記事 の目的です。
:::

ドメイン認証 に成功すると 以下のようにサインイン画面になり、デスクトップ画面 が表示されます。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f0428234-d3e4-a24b-049b-7ed05a0eb14f.png">

---

# 2-3. セッション内認証
リモート セッション内で他のリソースに接続する際の認証です。
これは、ドメイン内のリソース（ファイルサーバーなど）にアクセスしたり、
Microsoft 365 のサービス（Teams や Outlook）に接続する際に行われます。

オンプレミスドメイン内のリソースは、元々 SSO でアクセスされます。

後述する **4-1. Microsoft Entra ハイブリッド参加** の構成によって、**Microsoft 365** への認証が SSO されるようになります。

:::note info
**ポイント**
実は、**2-3. セッション内認証** だけであれば、以下の記事の シームレス SSO (sSSO) を構成することでも実現できます。

**シームレス SSO の構成**
https://qiita.com/carol0226/items/ebb140fe92fca5471212

しかし **2-2. セッション ホスト へのサインイン認証** と **2-3. セッション内認証** の両方を実現するためには、**ハイブリッド参加** の構成が必要になります。
:::

---

# 3. 実現手段
目標を達成するためには、以下の公開情報に記載されている いずれかの構成が必要です。

**公開情報：セッション ホスト認証**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/authentication?wt.mc_id=mvp_407731#in-session-authentication

（以前の公開情報より抜粋）
2025/3/2 に確認したところ、上記の公開情報が修正されており、以下の図が消去されていましたが、参考となる情報なので、画像は残しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ba9706e4-6073-5ea7-4117-2f0b8ba6e95f.png)

上記の通り、各 クライアントアプリ ごとに、サポートされている認証の種類 が記載されています。
このうち、**ユーザー名とパスワード**（<font color="orange">橙色</font>）は、前章で説明した **Before** の状態ですので、SSO にはなりません。

それ以外の方法を構成すると、**SSO** の動作になります。

なお、<font color="blue">水色</font> 枠 の２通りの方法は、利用できるデバイスが限定される事と、証明機関 を用意する必要があり、非常に難解な構成を必要とするため、今回は 対象から外しました。

そのため、**Microsoft Entra 認証**（<font color="green">緑色</font>）の方法での実現手段を紹介していきます。

---

# 4. セッションホスト への Microsoft Entra 認証 (SSO) の構成
本章が、この記事のメインとなります。
前章の **Microsoft Entra 認証**（<font color="green">緑色</font>）のリンクは、以下の 公開情報 へリンクしています。
下記の記事に記載されている手順を元に説明していきます。

**公開情報**

https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-single-sign-on?wt.mc_id=mvp_407731

まず、公開情報を見ると、とても難しそうな内容が書かれていますが、内容としては 以下の４つの構成を実施するように書かれています。それぞれを順に説明していきます。

4-1. Microsoft Entra ハイブリッド参加
4-2. Microsoft Entra Kerberos 認証
4-3. シングル サインオンを有効にするようにホスト プールを構成する
4-4. 同意プロンプト ダイアログを非表示にする（任意）

---

## 4-1. Microsoft Entra ハイブリッド参加済み
これは、私が別途 記事化している内容 そのもの を指しています。
以下の記事を参照して、AVD の VM を **ハイブリッド参加済み** の状態にしてください。

https://qiita.com/carol0226/items/7c16c4813e2b54a76789

**公開情報：前提事項**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-single-sign-on?wt.mc_id=mvp_407731#prerequisites

:::note warn
前提事項 には、**Microsoft Entra 参加済み** (MEJ) または **Microsoft Entra ハイブリッド参加済み** (MEHJ) のいずれかが必要と書かれています。

テナントに参加したデバイスは、**"MEJ"** を構成できますが、オンプレミス のドメインに参加した セッションホスト の場合は、**"MEJ"** を行う事ができません。
ドメイン参加マシンは、**"MEHJ"** のみ構成ができます。

そのため、ここでは **Microsoft Entra ハイブリッド参加済み** の構成が必須になります。

**MEJ** = **M**icrosoft **E**ntra **J**oined の略
**MEHJ** = **M**icrosoft **E**ntra **H**ybrid **J**oined の略
:::

---

## 4-2. Microsoft Entra Kerberos 認証
接続元のクライアントが、Microsoft Entra ID 認証を行った際に、Kerberos チケットを取得するようになるため、これを使って セッションホスト へ **SSO** を実施できるようになります。

これも、私が別途 記事化している内容 そのもの の内容です。
以下の記事を参考に Microsoft Entra Kerberos 認証 を構成してください。

https://qiita.com/carol0226/items/a52a54ff63c19fa957e6

上記の記事内から転用した図ですが、⑥ を AVD セッションホスト に変更してあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e4acf1a7-56b2-f322-917f-e7a0c120eba0.png)

**公開情報：RDP の Microsoft Entra 認証を有効にします**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-single-sign-on#enable-microsoft-entra-authentication-for-rdp

---

## 4-3. シングル サインオンを有効にするようにホスト プールを構成する
ホストプールごとに 本章 の設定が必要です。

Azure Portal で ホストプール を開き **RDP プロパティ** の設定を 以下の値に変更します。
**"接続は　Microsoft Entra 認証を使用してシングル サインオンを提供します"**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e7e45ddb-35f1-a696-850f-a5809c1f6ab5.png)

なお、設定項目 は、以下の選択肢があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ddae002f-d89b-0367-3caa-5926234cca3f.png)

**保存** を押して、以下のような通知が表示されれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/6d42c3f1-cca0-4c51-f484-bbd26fbd6b0e.png)

:::note info
本章の手順を行う前から 登録済みの PC では、Remote Desktop アプリ で 以下のように **最新の情報に更新** を行うと SSO が利用可能になります。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f6bfccbe-d0ac-57b3-e103-d0806c65b9a4.png">
※構成後に アプリから 新規登録した場合は、特に気にする必要はありません。
:::

**公開情報：シングル サインオンを有効にするようにホスト プールを構成する**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-single-sign-on?wt.mc_id=mvp_407731#configure-your-host-pool-to-enable-single-sign-on

---

## 4-4. 同意プロンプト ダイアログを非表示にする（任意）
SSO で接続はできるようになりますが、初回だけ、以下の赤枠のようなウィンドウが出るようになります。
※各 デバイスと、セッションホスト の組み合わせごとに１回のみ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/760efd46-adcb-d98a-28a4-e0e508d71fb4.png)

初回のみなので、頻度は少ないですし、**はい** を押すだけで、パスワード の入力などは不要なため、特に対処しなくても良いと思います。

このウィンドウ さえも抑止させたい場合は、以下の公開情報の手順を実施します。

**公開情報：同意プロンプト ダイアログを非表示にする**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-single-sign-on?wt.mc_id=mvp_407731#hide-the-consent-prompt-dialog

以上の構成で、AVD へ接続する際に SSO が構成され 認証ウィンドウが抑止されたことを確認できると思います。

# 5. 参考情報
以下の **くらう道 さん** の記事が大変参考になります。

https://www.cloudou.net/azure-virtual-desktop/avd044/

# Next Step
SSO の構成が完成したら、以下の FIDO2 セキュリティキー でのサインインにもチャレンジしてみてください。AVD へのサインインでも 有効になります。

https://qiita.com/carol0226/items/87dbd1f57f80f6da3968

さらに、運用を考慮して 初回ログオン からパスワードレス化 を構成することもでき

https://qiita.com/carol0226/private/6ce91dc030f8fc65a842