Microsoft Entra IDを使用した Azure Virtual Desktop のシングル サインオン (SSO) は、セッション ホストに接続するユーザーにシームレスなサインイン エクスペリエンスを提供します。 シングル サインオンを有効にすると、ユーザーはMicrosoft Entra ID トークンを使用して Windows に対して認証されます。 このトークンを使用すると、セッション ホストへの接続時にMicrosoft Entra IDとフェデレーションするパスワードレス認証とサードパーティ ID プロバイダーを使用でき、サインイン エクスペリエンスがシームレスになります。
Microsoft Entra IDを使用したシングル サインオンは、セッション内のMicrosoft Entra ID ベースのリソースにもシームレスなエクスペリエンスを提供します。 セッション内でパスワードレス認証を使用する方法の詳細については、「 インセッション パスワードレス認証」を参照してください。
Microsoft Entra ID認証を使用してシングル サインオンを有効にするには、次の 5 つのタスクを実行する必要があります。
リモート デスクトップ プロトコル (RDP) のMicrosoft Entra認証を有効にします。
同意プロンプトダイアログを非表示にします。
Active Directory Domain Servicesが環境の一部である場合は、Kerberos Server オブジェクトを作成します。 条件の詳細については、そのセクションに記載されています。
条件付きアクセス ポリシーを確認します。
シングル サインオンを有効にするようにホスト プールを構成します。
シングル サインオンを有効にする前に
シングル サインオンを有効にする前に、環境内で使用するための次の情報を確認してください。
セッション ロックの動作
Microsoft Entra IDを使用したシングル サインオンが有効になっていて、ユーザーまたはポリシーによってリモート セッションがロックされている場合は、セッションが切断されているか、リモート ロック画面が表示されるかを選択できます。 既定の動作では、ロック時にセッションを切断します。
セッション ロックの動作を切断に設定すると、切断されたことをユーザーに知らせるダイアログが表示されます。 ユーザーは、もう一度接続する準備ができたら、ダイアログから [ 再接続 ] オプションを選択できます。 この動作はセキュリティ上の理由から行われ、パスワードレス認証が完全にサポートされます。 セッションを切断すると、次の利点があります。
必要に応じて、Microsoft Entra IDを通じて一貫したサインイン エクスペリエンスを実現します。
条件付きアクセス ポリシーで許可されている場合は、シングル サインオン エクスペリエンスと認証プロンプトなしの再接続。
リモート ロック画面とは異なり、パスキーや FIDO2 デバイスなどのパスワードレス認証をサポートします。
多要素認証やサインイン頻度を含む条件付きアクセス ポリシーは、ユーザーがセッションに再接続したときに再評価されます。
セッションに戻るために多要素認証を要求し、ユーザーが単純なユーザー名とパスワードでロックを解除できないようにすることができます。
セッションを切断するのではなく、リモート ロック画面を表示するようにセッション ロック動作を構成する場合は、「 セッション ロック動作を構成する」を参照してください。
シングル サインオンを使用する Active Directory ドメイン管理者アカウント
Active Directory Domain Services (AD DS) とハイブリッド ユーザー アカウントを持つ環境では、読み取り専用ドメイン コントローラーの既定のパスワード レプリケーション ポリシーによって、Domain Admins および Administrators セキュリティ グループのメンバーのパスワード レプリケーションが拒否されます。 このポリシーは、これらの管理者アカウントがハイブリッド参加済みホストMicrosoft Entraサインインできないようにし、資格情報の入力を求め続ける場合があります。 また、管理者アカウントが、参加しているホストから Kerberos 認証を使用するオンプレミス リソースMicrosoft Entraアクセスできないようにします。 セキュリティ上の理由から、ドメイン管理者であるアカウントを使用してリモート セッションに接続することはお勧めしません。
管理者としてセッション ホストを変更する必要がある場合は、管理者以外のアカウントを使用してセッション ホストにサインインし、コマンド プロンプトから [管理者として実行 ] オプションまたは runas ツールを使用して管理者に変更します。
前提条件
シングル サインオンを有効にする前に、次の前提条件を満たす必要があります。
Microsoft Entra テナントを構成するには、次のいずれかの組み込みロールまたは同等のMicrosoft Entraを割り当てる必要があります。
セッション ホストは、関連する累積的な更新プログラムがインストールされた次のいずれかのオペレーティング システムを実行している必要があります。
Windows 11 (KB5018418) 以降の 2022-10 累積Updatesがインストールされている単一または複数セッションWindows 11 Enterprise。
Windows 10 (KB5018410) 以降の 2022-10 累積Updatesがインストールされている単一または複数セッションWindows 10 Enterprise。
Windows Server 2022-10 Microsoft サーバー オペレーティング システム (KB5018421) 以降の累積的な更新プログラムがインストールされている 2022。
セッション ホストは、Microsoft Entra参加済みであるか、ハイブリッド参加Microsoft Entra必要があります。 Microsoft Entra Domain Services または Active Directory Domain Services にのみ参加しているセッション ホストはサポートされていません。
Microsoft Entraハイブリッド参加済みセッション ホストがユーザー アカウントとは異なる Active Directory ドメイン内にある場合は、2 つのドメイン間に双方向の信頼が必要です。 双方向の信頼がないと、接続は古い認証プロトコルにフォールバックします。
Microsoft Graph PowerShell SDK バージョン 2.9.0 以降をローカル デバイスまたは Azure Cloud Shellにインストールします。
サポートされているバージョンのWindows Appまたはリモート デスクトップ クライアントを使用して、リモート セッションに接続します。 次のプラットフォームとバージョンがサポートされています。
Windows App:
- Windows: すべてのバージョンのWindows App。 ローカル PC を Microsoft Entra ID または Active Directory ドメインに参加させる必要はありません。
- macOS: バージョン 10.9.10 以降。
- iOS/iPadOS: バージョン 10.5.2 以降。
- ブラウザ。
リモート デスクトップ クライアント:
- Windows 10 以降を実行しているローカル PC 上の Windows デスクトップ クライアント。 ローカル PC を Microsoft Entra ID または Active Directory ドメインに参加させる必要はありません。
- Web クライアント。
- macOS クライアント、バージョン 10.8.2 以降。
- iOS クライアント、バージョン 10.5.1 以降。
- Android クライアント、バージョン 10.0.16 以降。
RDP のMicrosoft Entra認証を有効にする
まず、Microsoft Entra テナントで Windows のMicrosoft Entra認証を許可する必要があります。これにより、ユーザーが Azure Virtual Desktop セッション ホストにサインインできるようにする RDP アクセス トークンを発行できます。 次のMicrosoft Entra アプリケーションのサービス プリンシパルのremoteDesktopSecurityConfiguration
オブジェクトで、isRemoteDesktopProtocolEnabled
プロパティを true に設定します。
Application Name | アプリケーション ID |
---|---|
Microsoft リモート デスクトップ | a4a365df-50f1-4397-bc59-1a1564b8bb9c |
Windows クラウド ログイン | 270efc09-cd0d-444b-a71f-39af4910ec45 |
重要
今後の変更の一環として、2024 年から Microsoft リモート デスクトップ から Windows Cloud Login に移行します。 両方のアプリケーションを構成すると、変更の準備が整うようになりました。
サービス プリンシパルを構成するには、 Microsoft Graph PowerShell SDK を使用して、サービス プリンシパルに新しい remoteDesktopSecurityConfiguration オブジェクト を作成し、プロパティ isRemoteDesktopProtocolEnabled
を true
に設定します。
Microsoft Graph API は、Graph エクスプローラーなどのツールと共に使用することもできます。
PowerShell ターミナルの種類でAzure portalで Azure Cloud Shellを開くか、ローカル デバイスで PowerShell を実行します。
Cloud Shellを使用している場合は、Azure コンテキストが使用するサブスクリプションに設定されていることを確認します。
PowerShell をローカルで使用している場合は、まずAzure PowerShellでサインインし、Azure コンテキストが使用するサブスクリプションに設定されていることを確認します。
前提条件から Microsoft Graph PowerShell SDK をインストールしたことを確認してから、認証とアプリケーションの Microsoft Graph モジュールをインポートし、次のコマンドを実行して、
Application.Read.All
スコープとApplication-RemoteDesktopConfig.ReadWrite.All
スコープを使用して Microsoft Graph に接続します。Import-Module Microsoft.Graph.Authentication Import-Module Microsoft.Graph.Applications Connect-MgGraph -Scopes "Application.Read.All","Application-RemoteDesktopConfig.ReadWrite.All"
各サービス プリンシパルのオブジェクト ID を取得し、次のコマンドを実行して変数に格納します。
$MSRDspId = (Get-MgServicePrincipal -Filter "AppId eq 'a4a365df-50f1-4397-bc59-1a1564b8bb9c'").Id $WCLspId = (Get-MgServicePrincipal -Filter "AppId eq '270efc09-cd0d-444b-a71f-39af4910ec45'").Id
次のコマンドを実行して、プロパティ
isRemoteDesktopProtocolEnabled
をtrue
に設定します。 これらのコマンドからの出力はありません。If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId) -ne $true) { Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId -IsRemoteDesktopProtocolEnabled } If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId) -ne $true) { Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId -IsRemoteDesktopProtocolEnabled }
次のコマンドを実行して、プロパティ
isRemoteDesktopProtocolEnabled
がtrue
に設定されていることを確認します。Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId
両方のコマンドへの出力は次のようになります。
Id IsRemoteDesktopProtocolEnabled -- ------------------------------ id True
同意プロンプトダイアログを非表示にする
既定では、シングル サインオンが有効になっている場合、ユーザーには、新しいセッション ホストに接続するときにリモート デスクトップ接続を許可するダイアログが表示されます。 Microsoft Entraは、もう一度プロンプトを表示する前に、最大 15 ホストを 30 日間記憶します。 リモート デスクトップ接続を許可するためにこのダイアログが表示された場合は、[ はい ] を選択して接続できます。
このダイアログを非表示にするには、信頼されたデバイスの一覧を構成します。 デバイスの一覧を構成するには、セッション ホストを含む 1 つ以上のグループを Microsoft Entra ID に作成し、SSO サービス プリンシパル、Microsoft リモート デスクトップ、Windows Cloud Login のプロパティにグループ ID を追加します。
ヒント
動的グループを使用し、すべての Azure Virtual Desktop セッション ホストを含むように動的メンバーシップ規則を構成することをお勧めします。 このグループではデバイス名を使用できますが、より安全なオプションとして、Microsoft Graph APIを使用してデバイス拡張属性を設定して使用できます。 動的グループは通常、5 ~ 10 分以内に更新されますが、大規模なテナントには最大 24 時間かかることがあります。
動的グループには、Microsoft Entra ID P1 ライセンスまたは Education ライセンスのIntuneが必要です。 詳細については、「 グループの動的メンバーシップ 規則」を参照してください。
サービス プリンシパルを構成するには、 Microsoft Graph PowerShell SDK を使用して、動的グループのオブジェクト ID と表示名を使用して、サービス プリンシパルに新しい targetDeviceGroup オブジェクトを作成します。 Microsoft Graph API は、Graph エクスプローラーなどのツールと共に使用することもできます。
ダイアログを非表示にするセッション ホストを含むMicrosoft Entra IDに動的グループを作成します。 次の手順では、グループのオブジェクト ID を書き留めます。
同じ PowerShell セッションで、次のコマンドを実行して
targetDeviceGroup
オブジェクトを作成し、<placeholders>
を独自の値に置き換えます。$tdg = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphTargetDeviceGroup $tdg.Id = "<Group object ID>" $tdg.DisplayName = "<Group display name>"
次のコマンドを実行して、グループを
targetDeviceGroup
オブジェクトに追加します。New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $MSRDspId -BodyParameter $tdg New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $WCLspId -BodyParameter $tdg
出力は次の例のようになります。
Id DisplayName -- ----------- 12345678-abcd-1234-abcd-1234567890ab Contoso-session-hosts
targetDeviceGroup
オブジェクトに追加するグループごとに手順 2 と 3 を繰り返します。最大 10 グループまでです。後で
targetDeviceGroup
オブジェクトからデバイス グループを削除する必要がある場合は、次のコマンドを実行し、<placeholders>
を独自の値に置き換えます。Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $MSRDspId -TargetDeviceGroupId "<Group object ID>" Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $WCLspId -TargetDeviceGroupId "<Group object ID>"
Kerberos サーバー オブジェクトを作成する
セッション ホストが次の条件を満たしている場合は、Kerberos サーバー オブジェクトを作成する必要があります。 詳細については、「Microsoft Entra IDを使用してオンプレミス リソースへのパスワードレス セキュリティ キー サインインを有効にする」を参照してください。具体的には、「Kerberos Server オブジェクトを作成する」セクションを参照してください。
セッション ホストがハイブリッド参加Microsoft Entra。 ドメイン コントローラーへの認証を完了するには、Kerberos サーバー オブジェクトが必要です。
セッション ホストがMicrosoft Entra参加しており、環境に Active Directory ドメイン コントローラーが含まれています。 ユーザーがオンプレミスのリソース (SMB 共有や Windows 統合認証など) に Web サイトにアクセスするには、Kerberos サーバー オブジェクトが必要です。
重要
Kerberos サーバー オブジェクトを作成せずにハイブリッド参加済みセッション ホストMicrosoft Entraシングル サインオンを有効にした場合、リモート セッションに接続しようとすると、次のいずれかが発生する可能性があります。
- 特定のセッションが存在しないことを示すエラー メッセージが表示されます。
- シングル サインオンはスキップされ、セッション ホストの標準認証ダイアログが表示されます。
これらの問題を解決するには、Kerberos サーバー オブジェクトを作成してから、もう一度接続します。
条件付きアクセス ポリシーを確認する
シングル サインオンを有効にすると、セッション ホストに対してユーザーを認証するための新しいMicrosoft Entra ID アプリが導入されます。 Azure Virtual Desktop にアクセスするときに適用される条件付きアクセス ポリシーがある場合は、 多要素認証 の設定に関する推奨事項を確認して、ユーザーが目的のエクスペリエンスを持っていることを確認してください。
シングル サインオンを有効にするようにホスト プールを構成する
ホスト プールでシングル サインオンを有効にするには、次の RDP プロパティを構成する必要があります。このプロパティは、Azure portalまたは PowerShell を使用して実行できます。 RDP プロパティを構成する手順については、「 ホスト プールのリモート デスクトップ プロトコル (RDP) プロパティをカスタマイズする」を参照してください。
Azure portalで、シングル サインオンMicrosoft Entra を に設定Connections、Microsoft Entra認証を使用してシングル サインオンを提供します。
PowerShell の場合は、 enablerdsaadauth プロパティを 1 に設定します。
次の手順
パスワードレス認証を有効にする方法については、「 セッション内パスワードレス認証 」を参照してください。
Azure Virtual Desktop のセッション ロック動作を構成する方法について説明します。
Kerberos Microsoft Entraの詳細については、「詳細: Kerberos のしくみMicrosoft Entra」を参照してください。
問題が発生した場合は、「参加している VM への接続のトラブルシューティング」Microsoft Entra参照してください。