Updated (2026/05/22)
FSLogix や Azure Files のクラウド専用 ID サポートに関して、2026/05/19 に Azure Files のクラウド専用 ID サポートが GA となりましたので情報を更新しました。
これに伴って、更新を行った節には、(Updated: 2026/05/22) のように、更新日を記載しております。
はじめに
企業でお仕事をしているときに、組織外部の人とコラボレーションをする機会があると思います。
その時に、毎回問題になるのは、組織外部の人と、どうやってセキュアにコラボレーションをするかということです。
このコラボレーション実現の方法の一つとなり得るものとして、Azure 外部 ID に対する Azure Virtual Desktop(AVD) のサポートが、2025 年 11 月に GA されました。
参考: Azure Virtual Desktop の新機能 - Azure外部 ID に対する Virtual Desktop のサポートが一般公開されました
この外部 ID を AVD で利用するためのルールや設定などについて、複数回シリーズで紹介しています。
今回は外部 ID を利用するための AVD 関連の設定を中心に紹介していきます。
これまでの関連シリーズ
- 第一章:Enterprise 利用で組織外部の人とコラボレーションをする方法を考える(ライセンス編)
- 第二章(本記事):Enterprise 利用で組織外部の人とコラボレーションをする方法を考える(外部 ID で AVD 利用編)
- 第三章:Enterprise 利用で組織外部の人とコラボレーションをする方法を考える(Entra 運用編)
シリーズではないが関連記事
TL;DR
本記事のポイントを以下にまとめます。詳細は各セクションをご参照ください。
外部 ID で AVD を利用するための設定のポイント
| # | ポイント | 設定箇所 | 設定内容 |
|---|---|---|---|
| 1 | Microsoft Entra ID 上で RDP 認証を有効化 | Microsoft Entra ID | Windows Cloud Login サービスプリンシパルで RDP 認証を有効化する |
| 2 | ホストプールでシングルサインオンを構成 | AVD ホストプール | ホストプールのカスタム RDP プロパティにシングルサインオンを有効化する設定を追加する |
| 3 | クラウド専用 ID で Azure Files を利用するための構成 | Azure Files / Microsoft Entra アプリ |
(1) Azure Files で Entra Kerberos 認証を有効化し、既定の共有レベル権限を設定する (2) ストレージアカウントのサービスプリンシパルに管理者の同意を付与する (3) クラウド専用グループ SID のサポートを有効化する |
検証環境構築時のテンプレートについて
検証環境構築時のテンプレートは GitHub リポジトリ で公開しています。
ご自身で実装する際の参考としてご利用ください。
外部 ID ユーザーのログイン時のポイント
通常の Entra ID ログインと異なり、「組織へのサインイン」から招待先ドメインを指定するステップが必要な点に注意が必要です。
以降では、これらのポイントについて、詳細に紹介していきます。
前提事項 (外部 ID を利用するための要件・制限事項)
AVD で外部 ID を利用するためには、いくつかの要件や制限事項がありますので、まずはそれらについてまとめます。
個別の要素に関しては、公式ドキュメント(サポートされている ID と認証方法 - 外部 ID) に記載があります。
外部 ID を利用するための要件
- セッションホストのオペレーティングシステムの要件
- セッションホストが Entra ID join していること
- ホストプールにてシングルサインオンが構成されていること (本記事の後述参照)
- 接続用のクライアントは Windows App(Windows 版)または Web ブラウザーで GA 済み(macOS 版・Android 版の Windows App ではプレビュー)
外部 ID を利用するための制限事項 (Updated: 2026/05/22)
- 外部 ID を利用する場合、Kerberos または NTLM プロトコルを利用してオンプレミスリソースの認証を利用することができないため、FSLogix のプロファイルコンテナを Azure Files などのクラウドストレージに格納する必要があります。
- FSLogix のプロファイルコンテナの配置場所として Azure Files にプロファイルコンテナを格納する方法が利用可能です
- Intune で制御を行う場合、外部 ID に対してデバイス構成ポリシーを割り当てることができないため、デバイス構成ポリシーはデバイスに割り当てる必要があります
外部 ID を利用した AVD 構築の三つの設定ポイント
一般的な AVD 環境の構成方法は、多くのドキュメントで紹介されていますので、この章では、外部 ID を利用することに特化した AVD の設定のポイントについて、紹介していきます。
本記事で記載している点を一通り考慮した、AVD の外部 ID を利用するための検証環境の構築テンプレートは、以下のリポジトリにて公開しております。
検証環境用途ですので、問題が発生した場合でも責任は取りかねますが、参考にしてみてください。
また、一部に関しては、マイクロソフトの方がブログ記事(AVDで外部IDを試す!)の中で紹介いただいている内容もありますので、そちらも参考にしてみてください。
ポイント1: Microsoft Entra ID 上で RDP 認証を有効化 (設定箇所:Microsoft Entra ID)
この設定は、Entra ID joined 等の端末で、Entra ID の認証を利用して RDP ログインをするために必要な設定となります。
AVD 全体としての機能では、オンプレ の Active Directory Domain Service(AD DS) 等を利用したログインも可能ですが、外部 ID を利用する場合は、Entra ID の認証を利用してログインする必要があるため、この設定が必要となります。
具体的には、Microsoft Graph PowerShell SDK を利用して設定を行いますが、いくつか前提などがありますので、前提・必要モジュールのインストール、および設定の方法をまとめます。
前提
Microsoft Graph PowerShell SDK がインストールされていること。
Microsoft Graph PowerShell SDK のインストールに関しては、Install the Microsoft Graph PowerShell SDK に記載があります。
現時点で日本語訳が無いようですので、ポイントだけ要約します。
環境要件:
- PowerShell 5.1 以降がインストールされていること (個人的には、PowerShell 7 以降をお勧めします)
- .NET Framework 4.7.2 以降がインストールされていること
-
Install-Module PowerShellGetコマンドを実行して、PowerShellGetを最新バージョンに更新しておくこと
Microsoft Graph PowerShell SDK のインストール
以下のコマンドで Microsoft Graph PowerShell SDK をインストールします。
# 実行ポリシーが remote signed かそれよりも緩い設定になっている必要があります。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# もしインストールするスコープを 全てのユーザーにしたい場合は、-Scope AllUsers を指定してください
Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force
RDP 認証の有効化の実行
以下のコマンド群を用いて、Microsoft Entra ID 上で RDP 認証を有効化します。
Import-Module Microsoft.Graph.Authentication
Import-Module Microsoft.Graph.Applications
# Microsoft Graph へログイン
Connect-MgGraph -Scopes "Application.Read.All","Application-RemoteDesktopConfig.ReadWrite.All"
# Windows Cloud Login サービスプリンシパルのオブジェクトIDを取得 (後続のコマンドで利用)
$WCLspId = (Get-MgServicePrincipal -Filter "AppId eq '270efc09-cd0d-444b-a71f-39af4910ec45'").Id
# RDP 認証が有効化されているかを確認し、もし有効化されていない場合は有効化する
$desktopSecurityConf = Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId
if ($desktopSecurityConf.IsRemoteDesktopProtocolEnabled -ne $true) {
Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId -IsRemoteDesktopProtocolEnabled
}
# RDP 認証の設定を確認
Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId
# もし正しく設定ができている場合は、以下のように、IsRemoteDesktopProtocolEnabled が True になっていることが確認できます。
#Id IsRemoteDesktopProtocolEnabled
#-- ------------------------------
#id True
ポイント2: ホストプールでシングルサインオンを構成 (設定箇所:AVD ホストプール)
ホストプールでシングルサインオンを構成します。こちらも、外部 ID を利用して AVD を利用するためには必要な設定となります。
この設定は、bicep テンプレートを利用して、ホストプールをデプロイする際に、customRdpProperty プロパティに enablerdsaadauth:i:1 を追加することでも構成可能です。
Bicep テンプレートでの構成例
Bicep テンプレートでの構成例に関しては、AVD 外部 ID (Entra B2B) + FSLogix on Azure Files 検証環境(GitHub リポジトリ) で公開中のテンプレートの中で、利用しておりますので、こちらの hostPool リソースの構成例をご確認ください。
以降は、bicep テンプレートを利用せずに、既存のホストプールに対して、Azure CLI を利用して customRdpProperty に enablerdsaadauth:i:1 を追加する方法となります。
resourceGroup="<リソースグループ名>"
hostPool="<ホストプール名>"
# 実際に設定する RDP プロパティ値。この値でシングルサインオンを構成します。
addCustomProperties="enablerdsaadauth:i:1"
# 現在の RDP プロパティ値を取得。(既存の構成を残すために利用します)
currentCustomProperties=$(az desktopvirtualization hostpool show \
--name $hostPool \
--resource-group $resourceGroup \
--query [customRdpProperty] \
--output tsv)
# 実装で検証したところ、末尾にセミコロンが入るようだが、念のため既存値に末尾セミコロンが無い場合に備える
if [[ -n "$currentCustomProperties" && "${currentCustomProperties: -1}" != ";" ]]; then
currentCustomProperties="${currentCustomProperties};"
fi
# 既存のプロパティと新しい設定を追加した新プロパティを作成
customProperties="$currentCustomProperties$addCustomProperties"
# リソースの構成を更新
az desktopvirtualization hostpool update \
--name $hostPool \
--resource-group $resourceGroup \
--custom-rdp-property "$customProperties"
ポイント3: クラウド専用 ID で Azure Files を利用するための構成 (設定箇所:Azure Files および Microsoft Entra ID)
Azure Files をクラウド専用 IDで利用するためには、いくつかの構成が必要となります。
具体的な設定方法は、以前の私のブログ記事(Azure Files のクラウド専用 ID による ID ベース認証を試してみる) で詳細を説明していますので、詳細はそちらをご参照ください。
なお、概略としては以下の通りとなります。
以降の手順に関しては、Microsoft の公式ドキュメントにおいて、Azure Portal での作業がメインとなっていますが、IaC (Infrastructure as Code) を実現するために、同じ設定となるように私が検証・確認した、Bicep や Azure CLI、PowerShell などを利用する手順をメインに紹介していきます。
1. Microsoft Entra の Kerberos 認証を有効化する
公式ドキュメントで公開されている手順は、こちら となります。Azure Portalから設定が可能です。
また、Azure リソースの設定になるため、Bicep 等のテンプレートを利用して自動化することも可能です。
以下が、Bicep を利用して Microsoft Entra の Kerberos 認証を有効化するためのコード例となります。具体的には、コメントが記載されている部分が、Microsoft Entra Kerberos 認証を有効化するための設定となります。
// directoryServiceOptions: 'AADKERB' により Entra Kerberos 認証 (クラウド専用 ID) を有効化。
resource profileStorageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: profileStorageAccountName
location: location
tags: tags
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
allowBlobPublicAccess: false
allowSharedKeyAccess: true
minimumTlsVersion: 'TLS1_2'
supportsHttpsTrafficOnly: true
networkAcls: {
bypass: 'AzureServices'
defaultAction: 'Allow'
}
azureFilesIdentityBasedAuthentication: {
// Microsoft Entra Kerberos 認証 (クラウド専用 ID) を有効化するための設定
directoryServiceOptions: 'AADKERB'
// GA 後は個別 RBAC ロール割り当ても利用可能だが、現時点では限定リージョンのみ対応
// (2026/05/22 時点では Japan East 等の日本リージョンは非対応)。
// 汎用性のためデフォルト共有権限を使用し、StorageFileDataSmbShareElevatedContributor を付与。
defaultSharePermission: 'StorageFileDataSmbShareElevatedContributor'
}
}
}
2. Azure Files に関連するMicrosoft Entra アプリケーションに管理者の同意を付与する
ストレージアカウント側で、Microsoft Entra Kerberos認証を有効化した後、ストレージアカウントを表すサービスプリンシパルに対して、権限を付与する必要があります。
公式ドキュメント上では、Azure Portal 上での操作方法のみが記載されておりますが、以下のコマンドでも実行可能です。
STORAGE_ACCOUNT="<Storage Account Name>"
OID=$(az ad sp list --display-name "[Storage Account] ${STORAGE_ACCOUNT}.file.core.windows.net" --query "[0].id" -o tsv)
APP_ID=$(az ad sp show --id ${OID} --query appId -o tsv)
# Microsoft Graph API (00000003-0000-0000-c000-000000000000) に対して、
# User.Read, profile, openid のスコープを許可
az ad app permission grant --id ${APP_ID} --api 00000003-0000-0000-c000-000000000000 --scope User.Read profile openid
3. Microsoft Entra アプリケーション上でクラウド専用グループのサポートを有効にする
最後に、Microsoft Entra アプリケーション上で、クラウド専用グループのサポートを有効にします。
公式ドキュメント上では、Microsoft Graph PowerShell SDKを利用する形となっていますが、Azure CLI を利用したい場合は、以下のコマンドでも実行可能です。
STORAGE_ACCOUNT="<Storage Account Name>"
OID=$(az ad sp list --display-name "[Storage Account] ${STORAGE_ACCOUNT}.file.core.windows.net" --query "[0].id" -o tsv)
APP_ID=$(az ad sp show --id ${OID} --query appId -o tsv)
# アプリケーションにタグを追加して、KDCでクラウドグループSIDを有効にする
az ad app update --id ${APP_ID} --set tags='["kdc_enable_cloud_group_sids"]'
外部 ID を利用して Windows App からログイン
普段から AVD を利用しているユーザーにとっては、AVD へアクセスする際のログインフローが変わります。
そのため、普段通りの方法ではログインできずに戸惑う可能性があるかと思います。
通常の内部 ID (Entra ID上のアカウントなど) でログインする際は、特に意識しないといけないことはないですが、外部 ID でログインする場合は、組織へのサインイン が必要になることがポイントになります。
具体的には、以下の手順となります。
ポイント
ここでは、外部 ID として招待されているテナントのドメイン名を入力します。
ポイント
外部 ID を利用してログインを行う場合は、最初に、サインインオプション を選択したうえで、組織へのサインイン を選択し、招待先のドメインを指定する必要がある点が、わかりづらい点となります。
まとめ (Updated: 2026/05/22)
今回は、AVD で外部 ID を利用するための設定のポイントについて、紹介しました。
外部 ID で AVD を利用するには、いくつかの注意点や設定が必要となる点があります。
一方で、こういった組織外の人とのコラボレーションの手段として、AVD を利用できるようになることは、利便性の向上やセキュリティの向上など、多くのメリットがあるかと思います。
今後も、AVD の外部 ID サポートに関しては、機能のアップデートや、より便利に利用するための設定方法などが出てくる可能性がありますので、引き続き、最新の情報を追いかけていきたいと思います。
ドキュメントフィードバック(Updated: 2026/05/31)
以下の MS 公式ドキュメントで、外部 ID 向けの FSLogix サポートがプレビューと記載されていたため、追加でドキュメントのフィードバックを行いました。
(英文)
In the External identity section, the article states that FSLogix support for external identities is still in preview:
“FSLogix: FSLogix support is in preview for external identities.”
However, according to the following documentation, FSLogix with cloud‑only identities is already fully supported:
https://learn.microsoft.com/en-us/azure/virtual-desktop/azure-ad-joined-session-hosts
This inconsistency makes the documentation confusing. Since FSLogix with cloud‑only identities is already supported, I would like to request that Microsoft update this article to reflect the current status accurately.
(日本語訳)
External identity セクションでは、FSLogix の外部 ID サポートがまだプレビュー段階であると記載されています:
「FSLogix: FSLogix support is in preview for external identities.」
しかし、以下のドキュメントによると、クラウド専用 ID を使用した FSLogix はすでに正式にサポートされています:
https://learn.microsoft.com/en-us/azure/virtual-desktop/azure-ad-joined-session-hosts
この不一致により、ドキュメントが分かりにくくなっています。クラウド専用 ID を用いた FSLogix はすでにサポートされているため、現状に合わせてこの記事を更新していただけるよう Microsoft に依頼したいと考えています。



