次の方法で共有


Microsoft Entra ID を使用して Azure Virtual Desktop に対するシングル サインオンを構成する

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 つのタスクを実行する必要があります。

  1. リモート デスクトップ プロトコル (RDP) の Microsoft Entra 認証を有効にします。

  2. 同意プロンプト ダイアログを非表示にします。

  3. Active Directory Domain Services が環境の一部である場合は、"Kerberos Server オブジェクト" を作成します。 条件の詳細については、そのセクションに含まれています。

  4. あなたの条件付きアクセス ポリシーを見直します。

  5. シングル サインオンを有効にするようにホスト プールを構成します。

シングル サインオンを有効にする前に

シングル サインオンを有効にする前に、お使いの環境でシングル サインオンを使用するための次の情報を確認してください。

セッションのロック動作

Microsoft Entra ID を使用したシングル サインオンが有効になっていて、ユーザーまたはポリシーによってリモート セッションがロックされている場合、セッションを切断するか、リモート ロック画面を表示するかを選択できます。 既定の動作では、ロックされるとセッションは切断されます。

セッション ロックの動作が切断に設定されている場合は、切断されたことをユーザーに知らせるダイアログが表示されます。 ユーザーは、再度接続する準備ができたときに、ダイアログから [再接続] オプションを選択できます。 この動作は、セキュリティ上の理由と、パスワードレス認証の完全なサポートを確実に提供するために行われます。 セッションを切断すると、次の利点が得られます。

  • 必要に応じて、Microsoft Entra ID を使用した一貫したサインイン エクスペリエンスが提供されます。

  • 条件付きアクセス ポリシーで許可されている場合、認証プロンプトなしのシングル サインオン エクスペリエンスと再接続が可能になります。

  • リモート ロック画面とは異なり、パスキーや FIDO2 デバイスなどのパスワードレス認証がサポートされます。

  • 多要素認証やサインイン頻度などの条件付きアクセス ポリシーは、ユーザーがセッションに再接続したときに再評価されます。

  • セッションに戻る際に多要素認証を要求し、ユーザーが単純なユーザー名とパスワードでロックを解除できないようにすることができます。

セッションを切断するのではなく、リモート ロック画面を表示するようにセッション ロック動作を構成する場合は、セッション ロック動作の構成に関する記事を参照してください。

シングル サインオンを使用する Active Directory ドメイン管理者アカウント

Active Directory Domain Services (AD DS) とハイブリッド ユーザー アカウントを持つ環境では、読み取り専用ドメイン コントローラーの既定の "パスワード レプリケーション ポリシー" によって、"ドメイン管理者" および "管理者" セキュリティ グループのメンバーのパスワード レプリケーションが拒否されます。 このポリシーにより、これらの管理者アカウントによる Microsoft Entra ハイブリッド参加済みホストへのサインインが妨げられ、資格情報の入力が引き続き求められる場合があります。 また、管理者アカウントが、Microsoft Entra 参加済みホストからの Kerberos 認証を使用するオンプレミス リソースにアクセスすることも妨げられます。 セキュリティ上の理由から、ドメイン管理者であるアカウントを使用してリモート セッションに接続することはお勧めしません。

管理者としてセッション ホストに変更を加える必要がある場合は、管理者以外のアカウントを使用してセッション ホストにサインインした後、コマンド プロンプトから [管理者として実行] オプションまたは runas ツールを使用して管理者に切り替えます。

前提条件

シングル サインオンを有効にするには、次の前提条件を満たしている必要があります。

RDP の Microsoft Entra 認証を有効にします

まず、Microsoft Entra テナントで Windows の Microsoft Entra 認証を許可する必要があります。これにより、ユーザーが Azure Virtual Desktop セッション ホストにサインインできるようにする RDP アクセス トークンの発行が可能になります。 次の Microsoft Entra アプリケーションのサービス プリンシパルの remoteDesktopSecurityConfiguration オブジェクトで、isRemoteDesktopProtocolEnabled プロパティを true に設定します。

アプリケーション名 アプリケーション ID
Microsoft リモート デスクトップ a4a365df-50f1-4397-bc59-1a1564b8bb9c
Windows クラウド ログイン 270efc09-cd0d-444b-a71f-39af4910ec45

重要

今後の変更の一環として、2024 年から Microsoft リモート デスクトップから Windows クラウド ログインに移行します。 両方のアプリケーションを構成することで、変更への準備が整ったことを確認できます。

サービス プリンシパルを構成するには、Microsoft Graph PowerShell SDK を使用して、サービス プリンシパルに新しい remoteDesktopSecurityConfiguration オブジェクトを作成し、プロパティ isRemoteDesktopProtocolEnabledtrue に設定します。 Graph Explorer などのツールを使用して、Microsoft Graph API を使用することもできます。

  1. Azure portal で PowerShell ターミナル タイプを指定して Azure Cloud Shell を開くか、ローカル デバイスで PowerShell を実行します。

  1. 前提条件から Microsoft Graph PowerShell SDK がインストールされていることを確認してから、次のコマンドを実行して、"認証" および "アプリケーション" の Microsoft Graph モジュールをインポートし、Application.Read.AllApplication-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"
    
  2. 次のコマンドを実行して、各サービス プリンシパルのオブジェクト 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
    
  3. 次のコマンドを実行して、プロパティ isRemoteDesktopProtocolEnabledtrue に設定します。 これらのコマンドからの出力はありません。

    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId -IsRemoteDesktopProtocolEnabled
    }
    
    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId -IsRemoteDesktopProtocolEnabled
    }
    
  4. 次のコマンドを実行して、プロパティ isRemoteDesktopProtocolEnabledtrue に設定されていることを確認します。

    Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId
    Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId
    

    出力は次のようになります。

    Id IsRemoteDesktopProtocolEnabled
    -- ------------------------------
    id True
    

既定では、シングル サインオンが有効になっている場合、新しいセッション ホストに接続するときに、リモート デスクトップ接続を許可するためのダイアログが表示されます。 Microsoft Entra では、このプロンプトが再び表示されるまでの 30 日間にわたって、最大 15 個のホストが記憶されます。 リモート デスクトップ接続を許可するためのこのダイアログが表示された場合は、[はい] を選択して接続できます。

信頼されたデバイスの一覧を構成することで、このダイアログを非表示にすることができます。 デバイスの一覧を構成するには、セッション ホストを含む 1 つ以上のグループを Microsoft Entra ID に作成し、そのグループ ID を SSO サービス プリンシパルの "Microsoft リモート デスクトップ" および "Windows クラウド ログイン" のプロパティに追加します。

ヒント

動的グループを使用し、すべての Azure Virtual Desktop セッション ホストが含まれるように動的メンバーシップ ルールを構成することをお勧めします。 このグループではデバイス名を使用できますが、より安全なオプションとして、Microsoft Graph API を使用してデバイス拡張機能属性を設定して使用できます。 動的グループは通常、5 - 10 分以内に更新されますが、大規模なテナントには最大 24 時間かかることがあります。

動的グループには、Microsoft Entra ID P1 ライセンスまたは Intune for Education ライセンスが必要です。 詳細については、グループの動的メンバーシップ ルールに関する記事を参照してください。

サービス プリンシパルを構成するには、Microsoft Graph PowerShell SDK を使用して、動的グループのオブジェクト ID と表示名を持つ新しい targetDeviceGroup オブジェクト をサービス プリンシパルに作成します。 Graph Explorer などのツールを使用して、Microsoft Graph API を使用することもできます。

  1. Microsoft Entra ID に、ダイアログを非表示にするセッション ホストを含む動的グループを作成します。 次の手順のために、そのグループのオブジェクト ID をメモしておきます。

  2. 同じ PowerShell セッションで、次のコマンドを実行して targetDeviceGroup オブジェクトを作成し、<placeholders> を独自の値に置き換えます。

    $tdg = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphTargetDeviceGroup
    $tdg.Id = "<Group object ID>"
    $tdg.DisplayName = "<Group display name>"
    
  3. 次のコマンドを実行して、targetDeviceGroup オブジェクトにグループを追加します。

    New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $MSRDspId -BodyParameter $tdg
    New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $WCLspId -BodyParameter $tdg
    

    出力は次の例のようになります。

    Id                                   DisplayName
    --                                   -----------
    12345678-abcd-1234-abcd-1234567890ab Contoso-session-hosts
    

    targetDeviceGroup オブジェクトに追加するグループごとに (最大 10 グループ)、手順 2 と 3 を繰り返します。

  4. 後で targetDeviceGroup オブジェクトからデバイス グループの削除が必要になった場合は、<placeholders> を独自の値に置き換えて、次のコマンドを実行します。

    Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $MSRDspId -TargetDeviceGroupId "<Group object ID>"
    Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $WCLspId -TargetDeviceGroupId "<Group object ID>"
    

Kerberos サーバー オブジェクトを作成する

セッション ホストが以下の条件を満たしている場合は、Kerberos サーバー オブジェクトを作成する必要があります。 詳細については、「Microsoft Entra ID を使用したオンプレミス リソースへのパスワードレス セキュリティ キー サインインの有効化」、特に Kerberos サーバー オブジェクトを作成するためのセクションを参照してください。

  • セッション ホストが、Microsoft Entra ハイブリッド参加済みです。 ドメイン コントローラーへの認証を完了するには、Kerberos サーバー オブジェクトが必要です。

  • セッション ホストが Microsoft Entra 参加済みで、環境に Active Directory ドメイン コントローラーが含まれています。 オンプレミスのリソース (SMB 共有など) へアクセスするユーザーや Web サイトへの Windows 統合認証のためには、Kerberos サーバー オブジェクトが必要です。

重要

Kerberos サーバー オブジェクトを作成せずに、Microsoft Entra ハイブリッド参加済みセッション ホストでシングル サインオンを有効にすると、リモート セッションへ接続しようとした際に、以下のいずれかが発生する可能性があります。

  • 特定のセッションが存在しないことを示すエラー メッセージが表示されます。
  • シングル サインオンはスキップされ、セッション ホストの標準認証ダイアログが表示されます。

これらの問題を解決するには、Kerberos サーバー オブジェクトを作成してから、もう一度接続します。

条件付きアクセス ポリシーを確認する

シングル サインオンが有効になっている場合、セッション ホストに対してユーザーを認証するための新しい Microsoft Entra ID アプリが導入されます。 Azure Virtual Desktop にアクセスするときに適用される条件付きアクセス ポリシーがある場合は、多要素認証の設定に関するレコメンデーションを確認して、ユーザーが望ましいエクスペリエンスを得られるようにします。

シングル サインオンを有効にするようにホスト プールを構成する

ホスト プールでシングル サインオンを有効にするには、次の RDP プロパティを構成する必要があります。これは、Azure portal または PowerShell を使用して行うことができます。 RDP プロパティを構成する手順については、「ホスト プールのリモート デスクトップ プロトコル (RDP) プロパティをカスタマイズする」を参照してください。

  • Azure portal で、[Microsoft Entra single sign-on] (Microsoft Entra シングル サインオン)[Connections will use Microsoft Entra authentication to provide single sign-on] (接続は Microsoft Entra 認証を使用してシングル サインオンを提供する) に設定します。

  • PowerShell の場合は、enablerdsaadauth プロパティを 1 に設定します。

次のステップ