다음을 통해 공유


수신 신뢰 기반 흐름을 사용하여 Microsoft Entra ID에 대한 Windows 인증을 설정하는 방법

이 문서에서는 Windows 10, Windows Server 2012 이상 버전의 Windows를 실행하는 AD(Active Directory) 조인 클라이언트가 Windows 인증을 사용하여 Azure SQL Managed Instance에 인증할 수 있도록 수신 신뢰 기반 인증 흐름을 구현하는 방법을 설명합니다.

또한 이 문서에는 Microsoft Entra ID(이전에는 Azure Active Directory) 서비스 계정과 트러스트된 도메인 개체의 Kerberos 키를 회전하는 단계와 원하는 경우 트러스트된 도메인 개체와 모든 Kerberos 설정을 제거하는 단계가 포함됩니다.

수신 신뢰 기반 인증 흐름 사용은 Microsoft Entra ID 및 Kerberos를 사용하여 Azure SQL Managed Instance에 대한 Windows 인증 설정의 한 단계입니다. 최신 대화형 흐름은 Windows 10 20H1, Windows Server 2022 이상 버전의 Windows를 실행하는 지원 클라이언트에서 사용 가능합니다.

참고 항목

이전에는 Microsoft Entra ID를 Azure AD(Azure Active Directory)라고 했습니다.

사용 권한

이 문서에서 설명하는 단계를 완료하려면 다음이 필요합니다.

  • 온-프레미스 Active Directory 관리자 사용자 이름 및 암호
  • Microsoft Entra 글로벌 관리자 계정 사용자 이름 및 비밀번호

필수 조건

수신 신뢰 기반 인증 흐름을 구현하려면 먼저 다음 필수 조건이 충족되었는지 확인합니다.

필수 요소 Description
클라이언트는 Windows 10, Windows Server 2012 또는 상위 버전의 Windows를 실행해야 합니다.
클라이언트는 AD에 조인해야 합니다. 도메인의 기능 수준은 Windows Server 2012 이상이어야 합니다. dsregcmd 명령을 실행하여 클라이언트가 AD에 조인되었는지 확인할 수 있습니다. dsregcmd.exe /status
Azure AD 하이브리드 인증 관리 모듈. 이 PowerShell 모듈은 온-프레미스 설정을 위한 관리 기능을 제공합니다.
Azure 테넌트.
인증에 사용하려는 동일한 Microsoft Entra 테넌트의 Azure 구독.
Microsoft Entra Connect가 설치됨 Microsoft Entra ID와 AD 모두에 ID가 존재하는 하이브리드 환경.

Microsoft Entra Kerberos 트러스트된 도메인 개체 만들기 및 구성

Microsoft Entra Kerberos 트러스트된 도메인 개체를 만들고 구성하려면 Azure AD 하이브리드 인증 관리 PowerShell 모듈을 설치합니다.

그런 다음, Azure AD 하이브리드 인증 관리 PowerShell 모듈을 사용하여 온-프레미스 AD 도메인에서 트러스트된 도메인 개체를 설정하고 Microsoft Entra ID에 신뢰 정보를 등록합니다. 이렇게 하면 온-프레미스 AD에 인바운드 트러스트 관계가 생성되며 이를 통해 Microsoft Entra ID에서 온-프레미스 AD를 신뢰할 수 있습니다.

트러스트된 도메인 개체 설정

트러스트된 도메인 개체를 설정하려면 먼저 Azure AD 하이브리드 인증 관리 PowerShell 모듈을 설치합니다.

Azure AD 하이브리드 인증 관리 PowerShell 모듈 설치

  1. 관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell 세션을 시작합니다.

  2. 다음 스크립트를 사용하여 Azure AD 하이브리드 인증 관리 PowerShell 모듈을 설치합니다. 이 스크립트는

    • 통신에 TLS 1.2를 사용합니다.
    • NuGet 패키지 제공자를 설치합니다.
    • PSGallery 리포지토리를 등록합니다.
    • PowerShellGet 모듈을 설치합니다.
    • Azure AD 하이브리드 인증 관리 PowerShell 모듈을 설치합니다.
      • Azure AD 하이브리드 인증 관리 PowerShell은 고급 Microsoft Entra 관리 기능을 제공하는 AzureADPreview 모듈을 사용합니다.
      • Azure AD PowerShell 모듈과의 불필요한 설치 충돌로부터 보호하도록 이 명령에는 –AllowClobber 옵션 플래그가 포함되어 있습니다.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-PackageProvider -Name NuGet -Force

if (@(Get-PSRepository | ? {$_.Name -eq "PSGallery"}).Count -eq 0){
    Register-PSRepository -DefaultSet-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
}

Install-Module -Name PowerShellGet -Force

Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber

트러스트된 도메인 개체 만들기

  1. 관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell 세션을 시작합니다.

  2. 공통 매개 변수를 설정합니다. 스크립트를 실행하기 전에 아래 스크립트를 사용자 지정합니다.

    • $domain 매개 변수를 온-프레미스 Active Directory 도메인 이름으로 설정합니다.
    • Get-Credential이라는 메시지가 표시되면 온-프레미스 Active Directory 관리자 사용자 이름 및 암호를 입력합니다.
    • $cloudUserName 매개 변수를 Microsoft Entra 클라우드 액세스에 대한 전역 관리자 권한 계정의 사용자 이름으로 설정합니다.

    참고 항목

    온-프레미스 Active Directory 액세스에 현재 Windows 로그인 계정을 사용하려는 경우 자격 증명이 $domainCred 매개 변수에 할당되는 단계를 건너뛸 수 있습니다. 이 방법을 사용하는 경우 이 단계를 수행하는 PowerShell 명령에 -DomainCredential 매개 변수를 포함하지 마세요.

    $domain = "your on-premesis domain name, for example contoso.com"
    
    $domainCred = Get-Credential
    
    $cloudUserName = "Azure AD user principal name, for example admin@contoso.onmicrosoft.com"
    
  3. 현재 Kerberos 도메인 설정을 확인합니다.

    다음 명령을 실행하여 도메인의 현재 Kerberos 설정을 확인합니다.

    Get-AzureAdKerberosServer -Domain $domain `
        -DomainCredential $domainCred `
        -UserPrincipalName $cloudUserName
    

    Microsoft Entra Kerberos 명령을 처음 호출하면 Microsoft Entra 클라우드 액세스에 대한 메시지가 표시됩니다.

    • Microsoft Entra 글로벌 관리자 계정의 비밀번호를 입력합니다.
    • 조직에서 Microsoft Entra 다단계 인증이나 스마트 카드와 같은 다른 최신 인증 방법을 사용하는 경우 로그인 요청대로 지침을 따릅니다.

    Microsoft Entra Kerberos 설정을 처음 구성하는 경우 다음 샘플 출력과 같이 Get-AzureAdKerberosServer cmdlet에 빈 정보가 표시됩니다.

    ID                  :
    UserAccount         :
    ComputerAccount     :
    DisplayName         :
    DomainDnsName       :
    KeyVersion          :
    KeyUpdatedOn        :
    KeyUpdatedFrom      :
    CloudDisplayName    :
    CloudDomainDnsName  :
    CloudId             :
    CloudKeyVersion     :
    CloudKeyUpdatedOn   :
    CloudTrustDisplay   :
    

    도메인이 이미 FIDO 인증을 지원하는 경우 Get-AzureAdKerberosServer cmdlet에는 다음 샘플 출력과 같이 Microsoft Entra 서비스 계정 정보가 표시됩니다. CloudTrustDisplay 필드는 빈 값을 반환합니다.

    ID                  : 25614
    UserAccount         : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net
    ComputerAccount     : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net
    DisplayName         : krbtgt_25614
    DomainDnsName       : aadsqlmi.net
    KeyVersion          : 53325
    KeyUpdatedOn        : 2/24/2022 9:03:15 AM
    KeyUpdatedFrom      : ds-aad-auth-dem.aadsqlmi.net
    CloudDisplayName    : krbtgt_25614
    CloudDomainDnsName  : aadsqlmi.net
    CloudId             : 25614
    CloudKeyVersion     : 53325
    CloudKeyUpdatedOn   : 2/24/2022 9:03:15 AM
    CloudTrustDisplay   :
    
  4. 트러스트된 도메인 개체를 추가합니다.

    Set-AzureAdKerberosServer PowerShell cmdlet을 실행하여 트러스트된 도메인 개체를 추가합니다. -SetupCloudTrust 매개 변수를 포함해야 합니다. Microsoft Entra 서비스 계정이 없으면 이 명령은 새 Microsoft Entra 서비스 계정을 만듭니다. Microsoft Entra 서비스 계정이 있으면 이 명령은 요청된 트러스트된 도메인 개체만 만듭니다.

    Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $cloudUserName -DomainCredential $domainCred -SetupCloudTrust
    

    참고 항목

    여러 도메인 포리스트의 자식 도메인에서 명령을 실행할 때 LsaCreateTrustedDomainEx 0x549 오류를 방지하려면 다음을 수행합니다.

    1. 루트 도메인(-SetupCloudTrust 매개 변수 포함)에서 명령을 실행합니다.
    2. -SetupCloudTrust 매개 변수 없이 자식 도메인에서 같은 명령을 실행합니다.

    트러스트된 도메인 개체를 만든 후 이전 단계와 같이 Get-AzureAdKerberosServer PowerShell cmdlet을 사용하여 업데이트된 Kerberos 설정을 확인할 수 있습니다. Set-AzureAdKerberosServer cmdlet이 -SetupCloudTrust 매개 변수를 사용하여 성공적으로 실행된 경우 다음 샘플 출력과 같이 CloudTrustDisplay 필드가 이제 Microsoft.AzureAD.Kdc.Service.TrustDisplay를 반환해야 합니다.

    ID                  : 25614
    UserAccount         : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net
    ComputerAccount     : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net
    DisplayName         : krbtgt_25614
    DomainDnsName       : aadsqlmi.net
    KeyVersion          : 53325
    KeyUpdatedOn        : 2/24/2022 9:03:15 AM
    KeyUpdatedFrom      : ds-aad-auth-dem.aadsqlmi.net
    CloudDisplayName    : krbtgt_25614
    CloudDomainDnsName  : aadsqlmi.net
    CloudId             : 25614
    CloudKeyVersion     : 53325
    CloudKeyUpdatedOn   : 2/24/2022 9:03:15 AM
    CloudTrustDisplay   : Microsoft.AzureAD.Kdc.Service.TrustDisplay
    

    참고 항목

    Azure 소버린 클라우드는 기본적으로 windows.net으로 설정되는 TopLevelNames 속성을 설정해야 합니다. SQL Managed Instance의 Azure 소버린 클라우드 배포는 Azure 미국 정부의 usgovcloudapi.net처럼 다른 최상위 도메인 이름을 사용합니다. Set-AzureADKerberosServer -Domain $domain -DomainCredential $domainCred -CloudCredential $cloudCred -SetupCloudTrust -TopLevelNames "usgovcloudapi.net,windows.net" PowerShell 명령을 사용하여 트러스트된 도메인 개체를 최상위 도메인 이름으로 설정합니다. Get-AzureAdKerberosServer -Domain $domain -DomainCredential $domainCred -UserPrincipalName $cloudUserName | Select-Object -ExpandProperty CloudTrustDisplay PowerShell 명령을 사용하여 설정을 확인할 수 있습니다.

GPO(그룹 정책 개체) 구성

  1. Microsoft Entra 테넌트 ID를 식별합니다.

  2. 수신 신뢰 기반 흐름을 사용하여 클라이언트 머신에 다음 그룹 정책 설정을 배포합니다.

    1. 관리 템플릿\System\Kerberos\Kerberos 클라이언트에 대한 KDC 프록시 서버 지정 정책 설정을 편집합니다.

    2. 사용을 선택합니다.

    3. 옵션 아래에서 표시...를 선택합니다. 그러면 콘텐츠 표시 대화 상자가 열립니다.

      ‘Kerberos 클라이언트의 KDC 프록시 서버 지정’을 사용하도록 설정하는 대화 상자의 스크린샷입니다. ‘콘텐츠 표시’ 대화 상자에서는 값 이름과 관련 값을 입력할 수 있습니다.

    4. 다음과 같이 매핑을 사용하여 KDC 프록시 서버 설정을 정의합니다. your_Azure_AD_tenant_id 자리 표시자로 Microsoft Entra 테넌트 ID를 대체합니다. 값 매핑에서 https 뒤의 공간과 / 닫기 전의 공간을 확인합니다.

      값 이름
      KERBEROS.MICROSOFTONLINE.COM <https login.microsoftonline.com:443:your_Azure_AD_tenant_id/kerberos />

      ‘KDC 프록시 서버 설정 정의’ 대화 상자의 스크린샷입니다. 테이블은 여러 행의 입력을 허용하며 각 행은 값 이름과 값으로 구성됩니다.

    5. 확인을 선택하여 '콘텐츠 표시' 대화 상자를 닫습니다.

    6. 'Kerberos 클라이언트에 대한 KDC 프록시 서버 지정' 대화 상자에서 적용을 선택합니다.

Kerberos 키 회전

유지 관리 목적으로 만든 Microsoft Entra 서비스 계정과 트러스트된 도메인 개체의 Kerberos 키를 주기적으로 회전할 수 있습니다.

Set-AzureAdKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName -SetupCloudTrust `
   -RotateServerKey

키가 회전되면 Kerberos KDC 서버 간에 변경된 키를 전파하는 데 몇 시간이 걸립니다. 이 키 배포 타이밍으로 인해 키를 24시간 이내에 한 번 회전할 수 있습니다. 트러스트된 도메인 개체 생성 직후와 같은 이유로 키를 24시간 이내에 다시 회전해야 하는 경우 -Force 매개 변수를 추가할 수 있습니다.

Set-AzureAdKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName -SetupCloudTrust `
   -RotateServerKey -Force

트러스트된 도메인 개체 제거

다음 명령을 사용하여 추가된 트러스트된 도메인 개체를 제거할 수 있습니다.

Remove-AzureADKerberosServerTrustedDomainObject -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName

이 명령은 트러스트된 도메인 개체만 제거합니다. 도메인에서 FIDO 인증을 지원하는 경우 FIDO 인증 서비스에 필요한 Microsoft Entra 서비스 계정을 유지하면서 트러스트된 도메인 개체를 제거할 수 있습니다.

모든 Kerberos 설정 제거

다음 명령을 사용하여 Microsoft Entra 서비스 계정과 트러스트된 도메인 개체 모두 제거할 수 있습니다.

Remove-AzureAdKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName

다음 단계

Azure SQL Managed Instance에서 Microsoft Entra 보안 주체에 대한 Windows 인증을 구현하는 방법에 대해 자세히 알아보세요.