Microsoft Entra ID를 사용하여 온-프레미스 리소스에 대한 암호 없는 보안 키 로그인을 사용하도록 설정합니다.

이 항목에서는 Windows 10 버전 2004 이상을 실행하는 디바이스를 사용하는 환경에 대해 온-프레미스 리소스에 암호 없는 인증을 사용하도록 설정하는 방법을 보여 줍니다. 디바이스는 Microsoft Entra 조인 또는 Microsoft Entra 하이브리드 조인수 있습니다. 이 암호 없는 인증 기능은 Microsoft 호환 보안 키를 사용하거나 비즈니스용 Windows Hello Cloud 트러스트를 사용하는 경우 온-프레미스 리소스에 원활한 SSO(Single Sign-On)를 제공합니다.

SSO를 사용하여 FIDO2 키를 통해 온-프레미스 리소스에 로그인

Microsoft Entra ID는 하나 이상의 Active Directory 도메인에 대해 Kerberos TGT(Ticket-Granting Ticket)를 발급할 수 있습니다. 이 기능을 사용하면 사용자는 FIDO2 보안 키와 같은 최신 자격 증명으로 Windows에 로그인한 다음, 기존 Active Directory 기반 리소스에 액세스할 수 있습니다. Kerberos 서비스 티켓 및 권한 부여는 온-프레미스 Active Directory DC(도메인 컨트롤러)에 의해 계속 제어됩니다.

Microsoft Entra Kerberos 서버 개체는 온-프레미스 Active Directory 인스턴스에서 생성된 다음, Microsoft Entra ID에 안전하게 게시됩니다. 개체는 물리적 서버와 연결되어 있지 않습니다. Microsoft Entra ID에서 Active Directory 도메인에 대한 Kerberos TGT를 생성하는 데 사용할 수 있는 리소스입니다.

Microsoft Entra ID 및 Active Directory Domain Services에서 TGT를 가져오는 방법을 보여 주는 다이어그램.

  1. 사용자가 FIDO2 보안 키를 사용하여 Windows 10 디바이스에 로그인하고 Microsoft Entra ID에 인증합니다.

  2. Microsoft Entra ID는 디렉터리에서 사용자의 온-프레미스 Active Directory 도메인과 일치하는 Kerberos 서버 키를 확인합니다.

    Microsoft Entra ID는 사용자의 온-프레미스 Active Directory 도메인에 대한 Kerberos TGT를 생성합니다. TGT에는 사용자의 SID만 포함되며 권한 부여 데이터는 포함되지 않습니다.

  3. TGT는 사용자의 Microsoft Entra PRT(기본 새로 고침 토큰)와 함께 클라이언트에 반환됩니다.

  4. 클라이언트 머신은 온-프레미스 Active Directory 도메인 컨트롤러에 연결하고 완전히 구성된 TGT의 부분 TGT를 조정합니다.

  5. 클라이언트 머신에는 이제 Microsoft Entra PRT와 전체 Active Directory TGT가 있으며 클라우드 및 온-프레미스 리소스 모두에 액세스할 수 있습니다.

필수 조건

이 문서의 절차를 시작하기 전에 조직에서 Windows 10 디바이스에 대해 암호 없는 보안 키 로그인 사용의 지침을 완료해야 합니다.

또한 다음과 같은 시스템 요구 사항을 충족해야 합니다.

  • 디바이스는 Windows 10 버전 2004 이상을 실행해야 합니다.

  • Windows Server 도메인 컨트롤러는 Windows Server 2016 이상을 실행해야 하며 다음 서버에 대한 패치가 설치되어 있어야 합니다.

  • 네트워크 보안: Kerberos에 허용되는 암호화 유형 구성 정책이 도메인 컨트롤러에 구성된 경우 AES256_HMAC_SHA1을 사용하도록 설정해야 합니다.

  • 시나리오의 단계를 완료하는 데 필요한 자격 증명을 갖습니다.

    • 도메인에 대한 도메인 관리자 그룹의 구성원이자 포리스트에 대한 엔터프라이즈 관리자 그룹의 구성원인 Active Directory 사용자입니다. $domainCred(이)라고 합니다.
    • 전역 관리자 역할을 담당하는 구성원인 Microsoft Entra 사용자입니다. $cloudCred(이)라고 합니다.
  • 사용자에게는 다음 Microsoft Entra ID 특성이 Microsoft Entra 커넥트 통해 채워져 있어야 합니다.

    • onPremisesSamAccountName(entra 커넥트 accountName)
    • onPremisesDo기본Name(do기본FQDN in Entra 커넥트)
    • onPremisesSecurityIdentifier(entra 커넥트 objectSID)

    Entra 커넥트 기본적으로 이러한 특성을 동기화합니다. 동기화할 특성을 변경하는 경우 accountName, do기본FQDN 및 objectSID를 선택하여 동기화합니다.

지원되는 시나리오

이 문서의 시나리오에서는 다음 두 인스턴스의 SSO를 모두 지원합니다.

  • Microsoft 365 및 기타 SAML(Security Assertion Markup Language) 지원 애플리케이션과 같은 클라우드 리소스
  • 온-프레미스 리소스 및 웹 사이트에 대한 Windows 통합 인증 리소스에는 IIS 인증을 요구하는 웹 사이트와 SharePoint 사이트 및/또는 NTLM 인증을 사용하는 리소스가 포함될 수 있습니다.

지원되지 않는 시나리오

다음 시나리오는 지원되지 않습니다.

  • Windows Server AD DS(Active Directory Domain Services) 조인(온-프레미스 전용 디바이스) 배포
  • 보안 키를 사용하여 RDP(원격 데스크톱 프로토콜), VDI(가상 데스크톱 인프라) 및 Citrix 시나리오
  • 보안 키를 사용하여 S/MIME
  • 보안 키를 사용하여 다음 계정으로 실행
  • 보안 키를 사용하여 서버에 로그인합니다.

AzureADHybridAuthenticationManagement 모듈 설치

AzureADHybridAuthenticationManagement 모듈은 관리자를 위한 FIDO2 관리 기능을 제공합니다.

  1. 관리자 권한으로 실행 옵션을 사용하여 PowerShell 프롬프트를 엽니다.

  2. AzureADHybridAuthenticationManagement 모듈 설치:

    # First, ensure TLS 1.2 for PowerShell gallery access.
    [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
    
    # Install the AzureADHybridAuthenticationManagement PowerShell module.
    Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber
    

참고 항목

  • AzureADHybridAuthenticationManagement 모듈은 AzureADPreview PowerShell 모듈을 사용하여 고급 Microsoft Entra 관리 기능을 제공합니다. Azure Active Directory PowerShell 모듈이 로컬 컴퓨터에 이미 설치되어 있는 경우 여기에 설명된 설치는 충돌로 인해 실패할 수 있습니다. 설치하는 동안 충돌을 방지하려면 "-AllowClobber" 옵션 플래그를 포함해야 합니다.
  • Microsoft Entra Connect 솔루션에 대한 종속성 없이 온-프레미스 Active Directory 도메인 컨트롤러에 액세스할 수 있는 모든 컴퓨터에 AzureADHybridAuthenticationManagement 모듈을 설치할 수 있습니다.
  • AzureADHybridAuthenticationManagement 모듈은 PowerShell 갤러리를 통해 배포됩니다. PowerShell 갤러리는 PowerShell 콘텐츠의 중앙 리포지토리입니다. PowerShell 갤러리에서 PowerShell 명령 및 DSC(Desired State Configuration) 리소스를 포함하는 유용한 PowerShell 모듈을 찾을 수 있습니다.

Kerberos 서버 개체 만들기

관리자는 AzureADHybridAuthenticationManagement 모듈을 사용하여 온-프레미스 디렉터리에 Microsoft Entra Kerberos 서버 개체를 만듭니다.

Microsoft Entra 사용자를 포함하는 조직의 각 도메인 및 포리스트에서 다음 단계를 실행합니다.

  1. 관리자 권한으로 실행 옵션을 사용하여 PowerShell 프롬프트를 엽니다.
  2. 다음 PowerShell 명령을 실행하여 온-프레미스 Active Directory 도메인 및 Microsoft Entra 테넌트 모두에서 새 Microsoft Entra Kerberos 서버 개체를 만듭니다.

Azure Cloud 선택(기본값: Azure Commercial)

기본적으로 cmdlet은 Set-AzureADKerberosSever 상용 클라우드 엔드포인트를 사용합니다. 다른 클라우드 환경에서 Kerberos를 구성하는 경우 지정된 클라우드를 사용하도록 cmdlet을 설정해야 합니다.

사용 가능한 클라우드 목록과 변경하는 데 필요한 숫자 값을 얻으려면 다음을 실행합니다.
Get-AzureADKerberosServerEndpoint

출력 예:

Current Endpoint = 0(Public)
Supported Endpoints:
   0 :Public
   1 :China
   2 :Us Government

원하는 클라우드 환경 옆에 있는 숫자 값을 확인합니다.

그런 다음 , 원하는 클라우드 환경을 설정 하려면 다음을 실행합니다.
(예: 미국 정부 클라우드의 경우)
Set-AzureADKerberosServerEndpoint -TargetEndpoint 2

예제 1 모든 자격 증명에 대한 프롬프트

# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter an Azure Active Directory global administrator username and password.
$cloudCred = Get-Credential -Message 'An Active Directory user who is a member of the Global Administrators group for Azure AD.'

# Enter a domain administrator username and password.
$domainCred = Get-Credential -Message 'An Active Directory user who is a member of the Domain Admins group.'

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred

예제 2 클라우드 자격 증명에 대한 프롬프트

참고 항목

도메인 조인 머신에서 도메인 관리자 권한이 있는 계정을 사용하여 작업하는 경우 "-DomainCredential" 매개 변수를 건너뛸 수 있습니다. "-DomainCredential" 매개 변수를 제공하지 않으면 현재 Windows 로그인 자격 증명을 사용하여 온-프레미스 Active Directory 도메인 컨트롤러에 액세스합니다.

# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter an Azure Active Directory global administrator username and password.
$cloudCred = Get-Credential

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
# Use the current windows login credential to access the on-premises AD.
Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred

예제 3 최신 인증을 사용하는 모든 자격 증명에 대한 프롬프트

참고 항목

조직에서 암호 기반 로그인을 보호하고 다단계 인증, FIDO2 또는 스마트 카드 기술과 같은 최신 인증 방법을 적용하는 경우 전역 관리자의 UPN(사용자 계정 이름)과 함께 -UserPrincipalName 매개 변수를 사용해야 합니다.

  • 다음 예제에서 contoso.corp.com을 온-프레미스 Active Directory 도메인 이름으로 바꿉니다.
  • 다음 예제의 administrator@contoso.onmicrosoft.com을 전역 관리자의 UPN으로 바꿉니다.
# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter a UPN of an Azure Active Directory global administrator
$userPrincipalName = "administrator@contoso.onmicrosoft.com"

# Enter a domain administrator username and password.
$domainCred = Get-Credential

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
# Open an interactive sign-in prompt with given username to access the Azure AD.
Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $userPrincipalName -DomainCredential $domainCred

예제 4 최신 인증을 사용하는 클라우드 자격 증명에 대한 프롬프트

참고 항목

도메인 관리자 권한이 있는 계정으로 도메인 조인 컴퓨터에서 작업하고 있고, 조직에서 암호 기반 로그인을 보호하고 다단계 인증, FIDO2 또는 스마트 카드 기술과 같은 최신 인증 방법을 적용하는 경우 전역 관리자의 UPN(사용자 계정 이름)과 함께 -UserPrincipalName 매개 변수를 사용해야 합니다. 또한 "-DomainCredential" 매개 변수를 건너뛸 수 있습니다. > - 다음 예제의 administrator@contoso.onmicrosoft.com을 전역 관리자의 UPN으로 바꿉니다.

# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter a UPN of an Azure Active Directory global administrator
$userPrincipalName = "administrator@contoso.onmicrosoft.com"

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
# Open an interactive sign-in prompt with given username to access the Azure AD.
Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $userPrincipalName

Microsoft Entra Kerberos 서버 보기 및 확인

다음 명령을 사용하여 새로 만든 Microsoft Entra Kerberos 서버를 보고 확인할 수 있습니다.

 # When prompted to provide domain credentials use the userprincipalname format for the username instead of domain\username
Get-AzureADKerberosServer -Domain $domain -UserPrincipalName $userPrincipalName -DomainCredential (get-credential)

이 명령은 Microsoft Entra Kerberos 서버의 속성을 출력합니다. 속성을 검토하여 모든 것이 올바른 순서인지 확인할 수 있습니다.

참고 항목

domain\username 형식으로 자격 증명을 제공하여 다른 도메인에 대해 실행하면 NTLM을 통해 연결되고 실패합니다. 그러나 도메인 관리자에 대해 userprincipalname 형식을 사용하면 Kerberos를 사용하여 DC에 대한 RPC 바인딩이 올바르게 시도됩니다. 사용자가 Active Directory의 보호된 사용자 보안 그룹에 있는 경우 다음 단계를 수행하여 문제를 해결합니다. ADConnect의 다른 도메인 사용자로 로그인하고 "-domainCredential"을 제공하지 않습니다. 현재 로그인되어 있는 사용자의 Kerberos 티켓이 사용됩니다. whoami /groups를 실행하여 Active Directory에서 사용자에게 이전 명령을 실행하는 데 필요한 권한이 있는지 여부를 확인하여 확인할 수 있습니다.

속성 Description
ID AD DS DC 개체의 고유 ID입니다. 이 ID는 슬롯 또는 분기 ID라고도 합니다.
DomainDnsName Active Directory 도메인의 DNS 도메인 이름입니다.
ComputerAccount Microsoft Entra Kerberos 서버 개체(DC)의 컴퓨터 계정 개체입니다.
UserAccount Microsoft Entra Kerberos 서버 TGT 암호화 키를 보유한 사용하지 않도록 설정된 사용자 계정 개체입니다. 이 계정의 도메인 이름은 CN=krbtgt_AzureAD,CN=Users,<Domain-DN>입니다.
KeyVersion Microsoft Entra Kerberos 서버 TGT 암호화 키의 키 버전입니다. 버전은 키를 만들 때 할당됩니다. 그런 다음, 키를 회전할 때마다 버전이 증가합니다. 증분은 복제 메타데이터를 기반으로 하며 1보다 클 수 있습니다. 예를 들어 초기 KeyVersion192272일 수 있습니다. 키를 처음 회전할 때 버전은 212621로 증가할 수 있습니다. 확인해야 하는 중요한 점은 온-프레미스 개체의 KeyVersion과 클라우드 개체의 CloudKeyVersion이 동일한가입니다.
KeyUpdatedOn Microsoft Entra Kerberos 서버 TGT 암호화 키가 업데이트되거나 생성된 날짜와 시간입니다.
KeyUpdatedFrom Microsoft Entra Kerberos 서버 TGT 암호화 키가 마지막으로 업데이트된 DC입니다.
CloudId Microsoft Entra 개체의 ID입니다. 테이블의 첫 번째 줄에 있는 ID와 일치해야 합니다.
CloudDomainDnsName Microsoft Entra 개체의 DomainDnsName입니다. 테이블의 두 번째 줄에서 DomainDnsName과 일치해야 합니다.
CloudKeyVersion Microsoft Entra 개체의 KeyVersion입니다. 테이블의 다섯 번째 줄에서 KeyVersion과 일치해야 합니다.
CloudKeyUpdatedOn Microsoft Entra 개체의 KeyUpdatedOn입니다. 테이블의 여섯 번째 줄에서 KeyUpdatedOn과 일치해야 합니다.

Microsoft Entra Kerberos 서버 키 회전

Microsoft Entra Kerberos 서버 암호화 krbtgt 키는 정기적으로 회전해야 합니다. 다른 모든 Active Directory DC krbtgt 키를 회전하는 데 사용하는 것과 동일한 일정을 따르는 것이 좋습니다.

Warning

krbtgt 키를 회전할 수 있는 다른 도구가 있습니다. 그러나 이 문서에 언급된 도구를 사용하여 Microsoft Entra Kerberos 서버의 krbtgt 키를 회전해야 합니다. 이렇게 하면 키가 온-프레미스 Active Directory 및 Microsoft Entra ID에서 모두 업데이트됩니다.

Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred -RotateServerKey

Microsoft Entra Kerberos 서버 제거

시나리오를 되돌리고 온-프레미스 Active Directory 및 Microsoft Entra ID에서 Microsoft Entra Kerberos 서버를 제거하려면 다음 명령을 실행합니다.

Remove-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred

다중 포리스트 및 다중 도메인 시나리오

Microsoft Entra Kerberos 서버 개체는 Microsoft Entra ID에서 KerberosDomain 개체로 표시됩니다. 각 온-프레미스 Active Directory 도메인은 Microsoft Entra ID에서 단일 KerberosDomain 개체로 표현됩니다.

예를 들어 조직에 contoso.comfabrikam.com이라는 두 개의 도메인이 있는 Active Directory 포리스트가 있다고 가정해 보겠습니다. Microsoft Entra ID에서 전체 포리스트에 대해 Kerberos TGT를 발급하도록 선택하는 경우 Microsoft Entra ID에는 두 개의 KerberosDomain 개체, contoso.com에 대한 한 개의 KerberosDomain 개체 및 fabrikam.com에 대한 다른 개체가 있습니다. Active Directory 포리스트가 여러 개인 경우 각 포리스트의 각 도메인에 대해 하나의 KerberosDomain 개체가 있습니다.

Microsoft Entra 사용자를 포함하는 조직의 각 도메인 및 포리스트에서 Kerberos 서버 개체 만들기의 지침을 따릅니다.

알려진 동작

암호가 만료되면 FIDO를 통한 로그인이 차단됩니다. 사용자가 FIDO를 사용하여 로그인하기 전에 암호를 재설정할 것으로 기대됩니다. 이 동작은 비즈니스용 Windows Hello 클라우드 kerberos 트러스트를 사용하여 하이브리드 온-프레미스 동기화된 사용자 로그인에도 적용됩니다.

문제 해결 및 피드백

문제가 발생하거나 이 암호 없는 보안 키 로그인 기능에 대한 피드백을 공유하려면 다음을 수행하여 Windows 피드백 허브 앱을 통해 공유합니다.

  1. 피드백 허브를 열고 로그인했는지 확인합니다.
  2. 다음 범주를 선택하여 피드백을 제출합니다.
    • 범주: 보안 및 개인 정보
    • 하위 범주: FIDO
  3. 로그를 캡처하려면 문제 다시 만들기 옵션을 사용합니다.

암호 없는 보안 키 로그인 FAQ

이 문서의 단계는 시작하는 포털에 따라 약간 다를 수 있습니다.

암호 없는 로그인에 대한 일반적인 질문에 대한 몇 가지 답변은 다음과 같습니다.

내 온-프레미스 환경에서 암호 없는 보안 키 로그인이 작동하나요?

이 기능은 순수 온-프레미스 AD DS 환경에서 작동하지 않습니다.

조직에서 리소스에 액세스하려면 2단계 인증이 필요합니다. 이 요구 사항을 지원하기 위해 수행할 수 있는 작업은 무엇인가요?

보안 키는 다양한 폼 팩터를 제공합니다. 레코드의 디바이스 제조업체에 문의하여 PIN 또는 생체 인식을 두 번째 요소로 사용하여 디바이스를 활성화하는 방법을 알아봅니다.

관리자가 보안 키를 설정할 수 있나요?

이 기능의 GA(일반 공급) 릴리스를 위해 최선을 다하고 있습니다.

어디서 규격 보안 키를 찾을 수 있나요?

규격 보안 키에 대한 자세한 내용은 FIDO2 보안 키를 참조하세요.

내 보안 키를 분실한 경우 어떻게 해야 하나요?

등록된 보안 키를 삭제하려면 myaccount.microsoft.com에 로그인한 다음 보안 정보 페이지로 이동합니다.

Microsoft Entra터 하이브리드 조인 머신을 만든 직후 FIDO 보안 키를 사용할 수 없는 경우 어떻게 해야 하나요?

Microsoft Entra 하이브리드 조인 머신을 새로 설치하는 경우 도메인 조인 및 다시 시작 프로세스 후에 암호를 사용하여 로그인하고 정책이 동기화될 때까지 기다려야 FIDO 보안 키를 사용하여 로그인할 수 있습니다.

  • 명령 프롬프트 창에서 dsregcmd /status를 실행하여 현재 상태를 확인하고 AzureAdJoinedDomainJoined 상태가 모두 로 표시되는지 확인합니다.
  • 이 동기화 지연은 도메인 조인 디바이스에 대한 알려진 제한 사항이며 FIDO에 특정되지 않습니다.

FIDO를 사용하여 로그인하고 자격 증명 프롬프트를 받은 후 NTLM 네트워크 리소스에 Single Sign-On을 가져올 수 없는 경우 어떻게 해야 하나요?

제시간에 응답하여 리소스 요청을 처리하는 데 충분한 DC가 패치되었는지 확인합니다. DC에서 기능을 실행하고 있는지 확인하려면 nltest /dsgetdc:contoso /keylist /kdc를 실행한 다음, 출력을 검토합니다.

참고 항목

nltest 명령의 /keylist 스위치는 클라이언트 Windows 10 v2004 이상에서 사용할 수 있습니다.

FIDO2 보안 키가 하이브리드 환경에 있는 RODC를 사용하여 Windows 로그인에서 작동하나요?

FIDO2 Windows 로그인은 사용자 TGT를 교환할 쓰기 가능한 DC를 찾습니다. 사이트당 쓰기 가능한 DC가 하나 이상 있는 한 로그인이 잘 작동합니다.

다음 단계

암호 없는 인증에 대해 알아보기