Microsoft Entra 하이브리드 조인 수동 구성

Microsoft Entra Connect를 사용할 수 있는 경우 Microsoft Entra 하이브리드 조인 구성의 지침을 참조하세요. Microsoft Entra 커넥트 자동화를 사용하면 Microsoft Entra 하이브리드 조인의 구성이 크게 간소화됩니다.

이 문서에서는 관리 및 페더레이션된 도메인에 대한 단계를 포함하여 Microsoft Entra 하이브리드 조인에 대한 요구 사항을 수동으로 구성하는 방법을 다룹니다.

필수 조건

  • Microsoft Entra Connect
    • 디바이스 등록 동기화 조인이 성공하도록 하려면 디바이스 등록 구성의 일부로 Microsoft Entra Connect 동기화 구성에서 기본 디바이스 특성을 제외하지 마세요. Microsoft Entra ID에 동기화된 기본 디바이스 특성에 대해 자세히 알아보려면 Microsoft Entra Connect에 의해 동기화된 특성을 참조하세요.
    • Microsoft Entra 하이브리드에 조인하려는 디바이스의 컴퓨터 개체가 특정 OU(조직 구성 단위)에 속하는 경우 Microsoft Entra Connect에서 동기화할 올바른 OU를 구성합니다. Microsoft Entra Connect를 사용하여 컴퓨터 개체를 동기화하는 방법에 대해 자세히 알아보려면 조직 구성 단위 기반 필터링을 참조하세요.
  • 각 온-프레미스 Active Directory Domain Services 포리스트에 대한 엔터프라이즈 관리자 자격 증명
  • (페더레이션된 do기본s) Active Directory Federation Services가 설치된 Windows Server.
  • 사용자는 Microsoft Entra ID로 디바이스를 등록할 수 있습니다. 이 설정에 대한 자세한 내용은 디바이스 설정 구성 문서의 디바이스 설정 구성 제목에서 확인할 수 있습니다.

Microsoft Entra 하이브리드 조인을 위해서는 디바이스가 조직의 네트워크 내에서 다음 Microsoft 리소스에 액세스할 수 있어야 합니다.

  • https://enterpriseregistration.windows.net
  • https://login.microsoftonline.com
  • https://device.login.microsoftonline.com
  • https://autologon.microsoftazuread-sso.com (Seamless SSO를 사용하거나 사용할 계획이 있는 경우)
  • 조직의 STS(보안 토큰 서비스)(페더레이션된 도메인용)

Warning

조직에서 데이터 손실 방지 또는 Microsoft Entra 테넌트 제한과 같은 시나리오에 대해 SSL 트래픽을 가로채는 프록시 서버를 사용하는 경우 이러한 URL에 대한 트래픽을 TLS 중단-검사에서 제외해야 합니다. 이러한 URL을 제외하지 않으면 클라이언트 인증서 인증에 간섭이 발생하고, 디바이스 등록 및 디바이스 기반 조건부 액세스에 문제가 발생할 수 있습니다.

조직에서 아웃바운드 프록시를 통해 인터넷에 액세스해야 하는 경우 WPAD(웹 프록시 자동 검색)를 사용하여 Windows 10 이상 컴퓨터에서 Microsoft Entra ID로 디바이스를 등록할 수 있습니다. WPAD 구성 및 관리 문제를 해결하려면 자동 검색 문제 해결을 참조하세요.

WPAD를 사용하지 않는 경우 Windows 10 1709부터 컴퓨터에서 WinHTTP 프록시 설정을 구성할 수 있습니다. 자세한 내용은 GPO(그룹 정책 개체)에서 배포한 WinHTTP 프록시 설정 참조하세요.

참고 항목

WinHTTP 설정을 사용하여 컴퓨터에서 프록시 설정을 구성하는 경우 구성된 프록시에 연결할 수 없는 모든 컴퓨터는 인터넷에 연결할 수 없습니다.

조직에서 인증된 아웃바운드 프록시를 통해 인터넷에 액세스해야 하는 경우 Windows 10 이상 컴퓨터가 아웃바운드 프록시에 성공적으로 인증될 수 있는지 확인합니다. Windows 10 이상 컴퓨터는 머신 컨텍스트를 사용하여 디바이스 등록을 실행하므로 머신 컨텍스트를 사용하여 아웃바운드 프록시 인증을 구성합니다. 아웃바운드 프록시 공급자와 함께 구성 요구 사항을 준수하세요.

디바이스 등록 연결 테스트 스크립트를 사용하여 디바이스가 시스템 계정을 통해 필요한 Microsoft 리소스에 액세스할 수 있는지 확인합니다.

구성

다양한 형식의 Windows 디바이스 플랫폼에 대해 Microsoft Entra 하이브리드 조인 디바이스를 구성할 수 있습니다.

이러한 구성이 완료되면 지침에 따라 등록확인합니다.

서비스 연결점 구성

디바이스는 등록 중에 SCP(서비스 연결점) 개체를 사용하여 Microsoft Entra 테넌트 정보를 발견합니다. 온-프레미스 Active Directory 인스턴스에서 Microsoft Entra 하이브리드 조인 디바이스에 대한 SCP 개체는 컴퓨터 포리스트의 구성 명명 컨텍스트 파티션에 있어야 합니다. 포리스트당 구성 명명 컨텍스트가 하나만 있습니다. 다중 포리스트 Active Directory 구성에서는 도메인 가입 컴퓨터를 포함한 모든 포리스트에 서비스 연결점이 있어야 합니다.

SCP 개체에는 두 개의 키워드 값(azureADid:<TenantID>azureADName:<verified domain>)이 포함됩니다. azureADName 키워드의 <verified domain> 값은 온-프레미스 Active Directory 인스턴스에서 SCP 값을 읽은 후 디바이스가 따라야 하는 디바이스 등록 흐름(페더레이션 또는 관리)의 유형을 나타냅니다. 관리 및 페더레이션된 흐름에 대한 자세한 내용은 Microsoft Entra 디바이스 등록 작동 방식 문서에서 확인할 수 있습니다.

Get-ADRootDSE cmdlet을 사용하여 포리스트의 구성 명명 컨텍스트를 검색할 수 있습니다.

Active Directory 도메인 이름이 fabrikam.com인 포리스트의 경우 구성 명명 컨텍스트는 다음과 같습니다.

CN=Configuration,DC=fabrikam,DC=com

포리스트에서 도메인 조인 디바이스의 자동 등록을 위한 SCP 개체는 다음 위치에 있습니다.

CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,[Your Configuration Naming Context]

Microsoft Entra 커넥트 배포하는 방법에 따라 SCP 개체가 이미 구성되었을 수 있습니다. 다음 PowerShell 스크립트를 사용하여 개체의 존재를 확인하고 검색 값을 검색할 수 있습니다.

$scp = New-Object System.DirectoryServices.DirectoryEntry;

$scp.Path = "LDAP://CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,CN=Configuration,DC=fabrikam,DC=com";

$scp.Keywords;

$scp.Keywords 출력에는 Microsoft Entra 테넌트 정보가 표시됩니다. 예를 들면 다음과 같습니다.

azureADName:microsoft.com
azureADId:72f988bf-86f1-41af-91ab-2d7cd011db47

클레임 발급 설정

페더레이션된 Microsoft Entra 구성에서 디바이스는 AD FS 또는 Microsoft 파트너의 온-프레미스 페더레이션 서비스를 사용하여 Microsoft Entra ID를 인증합니다. 디바이스는 Microsoft Azure DRS(Entra Device Registration Service)에 등록하기 위한 액세스 토큰을 가져오기 위해 인증합니다.

Windows 최신 디바이스는 Windows 통합 인증을 사용하여 온-프레미스 페더레이션 서비스에서 호스트하는 활성 WS-Trust 엔드포인트(1.3 또는 2005 버전)에 인증합니다.

AD FS를 사용하는 경우 다음 WS-Trust 엔드포인트를 사용하도록 설정해야 합니다.

  • /adfs/services/trust/2005/windowstransport
  • /adfs/services/trust/13/windowstransport
  • /adfs/services/trust/2005/usernamemixed
  • /adfs/services/trust/13/usernamemixed
  • /adfs/services/trust/2005/certificatemixed
  • /adfs/services/trust/13/certificatemixed

Warning

adfs/services/trust/2005/windowstransportadfs/services/trust/13/windowstransport는 모두 인트라넷 연결 엔드포인트로만 사용하도록 설정해야 하며 웹 애플리케이션 프록시를 통해 엑스트라넷 연결 엔드포인트로 노출되어서는 안됩니다. WS-Trust Windows 엔드포인트를 비활성화는 방법에 대해 자세히 알아보려면 프록시에서 WS-Trust Windows 엔드포인트 사용 안 함을 참조하세요. 서비스>엔드포인트에서 AD FS 관리 콘솔을 통해 어떤 엔드포인트가 사용하도록 설정되었는지 확인할 수 있습니다.

참고 항목

온-프레미스 페더레이션 서비스로 AD FS가 없는 경우 공급업체의 지침에 따라 WS-Trust 1.3 또는 2005 엔드포인트를 지원하고 MEX(메타데이터 교환 파일)를 통해 게시되는지 확인합니다.

디바이스 등록을 마치려면 Azure DRS가 수신하는 토큰에 다음 클레임이 있어야 합니다. Azure DRS는 이 정보 중 일부를 사용하여 Microsoft Entra ID에 디바이스 개체를 만듭니다. 그런 다음 Microsoft Entra Connect는 이 정보를 사용하여 새로 만들어진 디바이스 개체를 온-프레미스 컴퓨터 계정과 연결합니다.

  • http://schemas.microsoft.com/ws/2012/01/accounttype
  • http://schemas.microsoft.com/identity/claims/onpremobjectguid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid

확인된 도메인 이름이 두 개 이상 필요한 경우 컴퓨터에 대한 다음 클레임을 제공해야 합니다.

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid

ImmutableID 클레임(예: mS-DS-ConsistencyGuid 또는 다른 특성을 ImmutableID의 원본 값으로 사용)을 이미 발급 중인 경우 컴퓨터에 대한 해당 클레임 하나를 제공해야 합니다.

  • http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID

다음 섹션에서는 다음 항목에 대한 정보를 찾습니다.

  • 각 클레임에 필요한 값
  • AD FS에서 정의의 형식

정의는 값의 존재 여부 또는 값을 만들어야 하는지 여부를 확인하는 데 도움이 됩니다.

참고 항목

온-프레미스 페더레이션 서버에 AD FS를 사용하지 않는 경우 공급업체의 지침에 따라 이러한 클레임을 발급할 적절한 구성을 만듭니다.

계정 유형 클레임 발급

http://schemas.microsoft.com/ws/2012/01/accounttype 클레임은 도메인에 조인된 컴퓨터로 디바이스를 식별하는 DJ 값을 포함해야 합니다. AD FS에서 다음과 같은 형식의 발급 변환 규칙을 추가할 수 있습니다.

@RuleName = "Issue account type for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "DJ"
);

컴퓨터 계정 온-프레미스의 objectGUID 발급

http://schemas.microsoft.com/identity/claims/onpremobjectguid 클레임은 온-프레미스 컴퓨터 계정의 objectGUID 값을 포함해야 합니다. AD FS에서 다음과 같은 형식의 발급 변환 규칙을 추가할 수 있습니다.

@RuleName = "Issue object GUID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$", 
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/identity/claims/onpremobjectguid"),
   query = ";objectguid;{0}",
   param = c2.Value
);

온-프레미스 컴퓨터 계정의 objectSid 문제

http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid 클레임은 온-프레미스 컴퓨터 계정의 objectSid 값을 포함해야 합니다. AD FS에서 다음과 같은 형식의 발급 변환 규칙을 추가할 수 있습니다.

@RuleName = "Issue objectSID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(claim = c2);

Microsoft Entra ID에 확인된 도메인 이름이 여러 개 있는 경우 컴퓨터의 issuerID 발급

http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid 클레임은 토큰을 발급하는 온-프레미스 페더레이션 서비스(AD FS 또는 파트너)와 연결하는 확인된 도메인 이름의 URI(Uniform Resource Identifier)를 포함해야 합니다. AD FS에서 이전 클레임 뒤에 다음과 같은 발급 변환 규칙을 해당 순서대로 추가할 수 있습니다. 사용자에 대한 규칙을 명시적으로 발급하는 하나의 규칙이 필요합니다. 다음 규칙에서는 사용자 인증과 컴퓨터 인증을 식별하는 첫 번째 규칙이 추가됩니다.

@RuleName = "Issue account type with the value User when its not a computer"
NOT EXISTS(
[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "DJ"
]
)
=> add(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "User"
);

@RuleName = "Capture UPN when AccountType is User and issue the IssuerID"
c1:[
   Type == "http://schemas.xmlsoap.org/claims/UPN"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "User"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = regexreplace(
   c1.Value,
   ".+@(?<domain>.+)",
   "http://${domain}/adfs/services/trust/"
   )
);

@RuleName = "Issue issuerID for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = "http://<verified-domain-name>/adfs/services/trust/"
);

이전 클레임에서 <verified-domain-name>은 자리 표시자입니다. Microsoft Entra ID에서 확인된 도메인 이름 중 하나로 바꿉니다. 예를 들면 Value = "http://contoso.com/adfs/services/trust/"를 사용합니다.

확인된 도메인 이름에 대한 자세한 내용은 Microsoft Entra ID에 사용자 지정 도메인 이름 추가를 참조하세요.

확인된 회사 도메인 목록을 가져오려면 Get-MgDomain cmdlet을 사용할 수 있습니다.

회사 할 일 목록기본

사용자용 컴퓨터가 있는 경우 컴퓨터에 ImmutableID를 발급합니다(예: ImmutableID의 원본으로 mS-DS-ConsistencyGuid 사용).

http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID 클레임은 컴퓨터에 대한 유효한 값을 포함해야 합니다. AD FS에서 다음과 같은 발급 변환 규칙을 만들 수 있습니다.

@RuleName = "Issue ImmutableID for computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"),
   query = ";objectguid;{0}",
   param = c2.Value
);

AD FS 발급 변환 규칙을 만드는 도우미 스크립트

다음 스크립트는 앞에서 설명한 발급 변환 규칙을 만드는 데 도움이 됩니다.

$multipleVerifiedDomainNames = $false
$immutableIDAlreadyIssuedforUsers = $false
$oneOfVerifiedDomainNames = 'example.com'   # Replace example.com with one of your verified domains

$rule1 = '@RuleName = "Issue account type for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "DJ"
);'

$rule2 = '@RuleName = "Issue object GUID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/identity/claims/onpremobjectguid"),
   query = ";objectguid;{0}",
   param = c2.Value
);'

$rule3 = '@RuleName = "Issue objectSID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(claim = c2);'

$rule4 = ''
if ($multipleVerifiedDomainNames -eq $true) {
$rule4 = '@RuleName = "Issue account type with the value User when it is not a computer"
NOT EXISTS(
[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "DJ"
]
)
=> add(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "User"
);

@RuleName = "Capture UPN when AccountType is User and issue the IssuerID"
c1:[
   Type == "http://schemas.xmlsoap.org/claims/UPN"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "User"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = regexreplace(
   c1.Value,
   ".+@(?<domain>.+)",
   "http://${domain}/adfs/services/trust/"
   )
);

@RuleName = "Issue issuerID for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = "http://' + $oneOfVerifiedDomainNames + '/adfs/services/trust/"
);'
}

$rule5 = ''
if ($immutableIDAlreadyIssuedforUsers -eq $true) {
$rule5 = '@RuleName = "Issue ImmutableID for computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"),
   query = ";objectguid;{0}",
   param = c2.Value
);'
}

$existingRules = (Get-ADFSRelyingPartyTrust -Identifier urn:federation:MicrosoftOnline).IssuanceTransformRules

$updatedRules = $existingRules + $rule1 + $rule2 + $rule3 + $rule4 + $rule5

$crSet = New-ADFSClaimRuleSet -ClaimRule $updatedRules

Set-AdfsRelyingPartyTrust -TargetIdentifier urn:federation:MicrosoftOnline -IssuanceTransformRules $crSet.ClaimRulesString

설명

  • 이 스크립트는 기존 규칙에 규칙을 추가합니다. 스크립트를 두 번 실행하면 규칙 집합이 두 번 추가되므로 두 번 실행하지 마세요. 스크립트를 다시 실행하기 전에 이러한 클레임에 해당하는 규칙이 없는지 확인(해당 조건에서)하세요.

  • 확인된 도메인 이름이 여러 개 있는 경우 스크립트에서 $multipleVerifiedDomainNames 값을 $true로 설정합니다. 또한 Microsoft Entra 커넥트 또는 기타 수단에서 만든 기존 issuerid 클레임을 제거해야 합니다. 다음은 이 규칙의 예입니다.

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"]
    => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)",  "http://${domain}/adfs/services/trust/")); 
    

사용자 계정에 대해 ImmutableID 클레임을 발급한 경우 스크립트$immutableIDAlreadyIssuedforUsers 값을 $true 설정합니다.

구현 문제 해결

도메인 조인 Windows 디바이스에 대한 Microsoft Entra 하이브리드 조인을 완료하는 데 문제가 발생하는 경우 다음을 참조하세요.