Microsoft Entra ID를 사용하여 Azure Virtual Desktop에 대한 Single Sign-On 구성

Microsoft Entra ID를 사용하는 Azure Virtual Desktop용 SSO(Single Sign-On)는 세션 호스트에 연결하는 사용자에게 원활한 로그인 환경을 제공합니다. Single Sign-On을 사용하도록 설정하면 사용자는 Microsoft Entra ID 토큰을 사용하여 Windows에 인증합니다. 이 토큰을 사용하면 세션 호스트에 연결할 때 Microsoft Entra ID와 페더레이션하는 암호 없는 인증 및 타사 ID 공급자를 사용할 수 있으며 로그인 환경이 원활해집니다.

또한 Microsoft Entra ID를 사용하는 Single Sign-On은 세션 내의 Microsoft Entra ID 기반 리소스에 대한 원활한 환경을 제공합니다. 세션 내에서 암호 없는 인증을 사용하는 방법에 대한 자세한 내용은 세션 내 암호 없는 인증을 참조하세요.

Microsoft Entra ID 인증을 사용하여 Single Sign-On을 사용하도록 설정하려면 다음 5가지 작업을 완료해야 합니다.

  1. RDP(원격 데스크톱 프로토콜)에 대해 Microsoft Entra 인증을 사용하도록 설정합니다.

  2. 동의 확인 프롬프트 대화 상자를 숨깁니다.

  3. Active Directory Domain Services가 사용자 환경의 일부인 경우 Kerberos Server 개체를 만듭니다. 조건에 대한 자세한 내용은 해당 섹션에 포함되어 있습니다.

  4. 조건부 액세스 정책을 검토합니다.

  5. Single Sign-On을 사용하도록 호스트 풀을 구성합니다.

Single Sign-On 사용 전

Single Sign-On을 사용하도록 설정하기 전에 사용자 환경에서 사용하기 위해 다음 정보를 검토합니다.

세션 잠금 동작

Microsoft Entra ID를 통한 Single Sign-On이 사용하도록 설정되어 있고 사용자 또는 정책에 의해 원격 세션이 잠겨 있을 때 세션 연결을 끊을지 또는 원격 잠금 화면을 표시할지를 선택할 수 있습니다. 기본 동작은 세션이 잠기면 세션의 연결을 끊는 것입니다.

세션 잠금 동작이 연결 끊기로 설정되면 사용자에게 연결이 끊어졌다는 것을 알리는 대화 상자가 표시됩니다. 사용자는 다시 연결할 준비가 되면 대화 상자에서 다시 연결 옵션을 선택할 수 있습니다. 이 동작은 보안상의 이유로 수행되며 암호 없는 인증을 완전히 지원합니다. 세션 연결 끊기는 다음과 같은 이점이 있습니다.

  • 필요한 경우 Microsoft Entra ID를 통해 진행되는 일관된 로그인 환경

  • 조건부 액세스 정책에서 허용되는 경우 인증 프롬프트 없이 Single Sign-On 환경 및 다시 연결

  • 원격 잠금 화면과 달리 암호 없는 인증(예: 암호 및 FIDO2 디바이스)을 지원합니다.

  • 다단계 인증 및 로그인 빈도를 포함한 조건부 액세스 정책은 사용자가 세션에 다시 연결할 때 다시 평가됩니다.

  • 세션으로 돌아가서 사용자가 간단한 사용자 이름 및 암호로 잠금을 해제하지 못하도록 하려면 다단계 인증을 요구할 수 있습니다.

세션 연결을 끊는 대신 원격 잠금 화면을 표시하도록 세션 잠금 동작을 구성하려면 세션 잠금 동작 구성을 참조하세요.

Single Sign-On을 사용하는 Active Directory 도메인 관리자 계정

AD DS(Active Directory Domain Services) 및 하이브리드 사용자 계정이 있는 환경에서 읽기 전용 도메인 컨트롤러의 기본 암호 복제 정책도메인 관리자관리자 보안 그룹의 구성원에 대한 암호 복제를 거부합니다 . 이 정책은 이러한 관리자 계정이 Microsoft Entra 하이브리드 조인 호스트에 로그인하지 못하도록 하고 자격 증명을 입력하라는 메시지를 계속 표시할 수 있습니다. 또한 관리자 계정이 Microsoft Entra 조인 호스트에서 Kerberos 인증을 사용하는 온-프레미스 리소스에 액세스하지 못하게 합니다. 보안상의 이유로 도메인 관리자인 계정을 사용하여 원격 세션에 연결하는 것은 권장되지 않습니다.

관리자 권한으로 세션 호스트를 변경해야 하는 경우 관리자가 아닌 계정을 사용하여 세션 호스트에 로그인한 다음, 관리자 권한으로 실행 옵션 또는 명령 프롬프트의 runas 도구를 사용하여 관리자로 변경합니다.

필수 조건

Single Sign-On을 사용하도록 설정하려면 먼저 다음 필수 조건을 충족해야 합니다.

RDP에 Microsoft Entra 인증을 사용하도록 설정

먼저 사용자가 Azure Virtual Desktop 세션 호스트에 로그인할 수 있도록 RDP 액세스 토큰을 발급할 수 있는 Microsoft Entra 테넌트에서 Windows용 Microsoft Entra 인증을 허용해야 합니다. 다음 Microsoft Entra 애플리케이션에 대한 서비스 주체의 remoteDesktopSecurityConfiguration 개체에서 isRemoteDesktopProtocolEnabled 속성을 true로 설정합니다.

애플리케이션 이름 애플리케이션 ID
Microsoft 원격 데스크톱 a4a365df-50f1-4397-bc59-1a1564b8bb9c
Windows 클라우드 로그인 270efc09-cd0d-444b-a71f-39af4910ec45

Important

예정된 변경의 일환으로 2024년부터 Microsoft 원격 데스크톱에서 Windows 클라우드 로그인으로 전환하고 있습니다. 이제 두 애플리케이션을 모두 구성하면 변경 준비가 완료됩니다.

서비스 주체를 구성하려면 Microsoft Graph PowerShell SDK를 사용하여 서비스 주체에 새 remoteDesktopSecurityConfiguration 개체를 만들고 isRemoteDesktopProtocolEnabled 속성을 true로 설정합니다. Graph Explorer와 같은 도구와 함께 Microsoft Graph API를 사용할수도 있습니다.

  1. PowerShell 터미널 형식을 사용하여 Azure Portal에서 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. 다음 명령을 실행하여 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
    }
    
  4. 다음 명령을 실행하여 isRemoteDesktopProtocolEnabled 속성이 true로 설정되었는지 확인합니다.

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

    출력은 다음과 같아야 합니다.

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

기본적으로 Single Sign-On을 사용하도록 설정하면 새 세션 호스트에 연결할 때 원격 데스크톱 연결을 허용하는 대화 상자가 표시됩니다. Microsoft Entra는 메시지를 다시 표시하기 전에 30일 동안 최대 15개의 호스트를 기억합니다. 원격 데스크톱 연결을 허용하는 대화 상자가 표시되면 를 선택하여 연결할 수 있습니다.

신뢰할 수 있는 디바이스 목록을 구성하여 이 대화 상자를 숨길 수 있습니다. Microsoft Entra ID에서 세션 호스트가 포함된 하나 이상의 그룹을 만든 다음, SSO 서비스 주체, Microsoft 원격 데스크톱Windows 클라우드 로그인의 속성에 그룹 ID를 추가합니다.

동적 그룹을 사용하고 모든 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 Server 개체 만들기 섹션을 참조하세요.

  • 세션 호스트가 Microsoft Entra 하이브리드에 조인됩니다. 도메인 컨트롤러에 대한 인증을 완료하려면 Kerberos 서버 개체가 있어야 합니다.

  • 세션 호스트가 Microsoft Entra에 조인되어 있고 환경에 Active Directory 도메인 컨트롤러가 포함되어 있습니다. 사용자가 웹 사이트에 대한 SMB 공유 및 Windows 통합 인증과 같은 온-프레미스 리소스에 액세스하려면 Kerberos 서버 개체가 있어야 합니다.

Important

Kerberos 서버 개체를 만들지 않고 Microsoft Entra 하이브리드 조인 세션 호스트에서 Single Sign-On을 사용하도록 설정하는 경우 원격 세션에 연결하려고 할 때 다음 중 하나가 발생할 수 있습니다.

  • 특정 세션이 존재하지 않는다는 오류 메시지가 표시됩니다.
  • Single Sign-On을 건너뛰고 세션 호스트에 대한 표준 인증 대화 상자가 표시됩니다.

이러한 문제를 해결하려면 Kerberos 서버 개체를 만든 다음 다시 연결합니다.

조건부 액세스 정책 검토

Single Sign-On을 사용하도록 설정하면 세션 호스트에 사용자를 인증하기 위해 새 Microsoft Entra ID 앱이 도입됩니다. Azure Virtual Desktop에 액세스할 때 적용되는 조건부 액세스 정책이 있는 경우 다단계 인증 설정에 대한 권장 사항을 검토하여 사용자가 원하는 환경을 갖출 수 있도록 합니다.

Single Sign-On을 사용하도록 호스트 풀 구성

호스트 풀에서 Single Sign-On을 사용하도록 설정하려면 Azure Portal 또는 PowerShell을 사용하여 수행할 수 있는 다음 RDP 속성을 구성해야 합니다. 호스트 풀에 대한 RDP(원격 데스크톱 프로토콜) 속성 사용자 지정에서 RDP 속성을 구성하는 단계를 확인할 수 있습니다.

  • Azure Portal에서 Microsoft Entra Single Sign-On연결에 Microsoft Entra 인증을 사용하여 Single Sign-On 제공으로 설정합니다.

  • PowerShell의 경우 enablerdsaadauth 속성을 1로 설정합니다.

다음 단계