Microsoft Entra Connect 동기화: 기본 구성 이해

이 문서는 기본 구성 규칙을 설명합니다. 규칙 및 해당 규칙이 구성에 어떤 영향을 주는지를 문서화합니다. 또한 Microsoft Entra Connect 동기화의 기본 구성을 안내합니다. 목표는 독자가 선언적 프로비전이라는 구성 모델이 실제 예시에서 작동하는 방식을 이해하는 것입니다. 이 문서에서는 설치 마법사를 사용하여 Microsoft Entra Connect 동기화를 이미 설치하고 구성했다고 가정합니다.

구성 모델의 세부 정보를 이해하려면 선언적 프로비전 이해를 읽어 보세요.

온-프레미스에서 Microsoft Entra ID까지 기본 규칙

다음 식은 기본 구성에서 찾을 수 있습니다.

사용자 기본 규칙

또한 이러한 규칙은 iNetOrgPerson 개체 형식에 적용됩니다.

사용자 개체를 동기화하려면 다음을 만족해야 합니다.

  • sourceAnchor가 있어야 합니다.
  • Microsoft Entra ID에서 개체가 만들어진 후에는 sourceAnchor를 변경할 수 없습니다. 값이 변경된 온-프레미스인 경우 sourceAnchor가 이전 값으로 다시 변경될 때까지 개체의 동기화는 중지됩니다.
  • accountEnabled(userAccountControl) 특성이 채워져야 합니다. 온-프레미스 Active Directory를 통해 이 특성은 항상 존재하고 채워집니다.

다음 사용자 개체는 Microsoft Entra ID와 동기화되지 않습니다.

  • IsPresent([isCriticalSystemObject]). 기본 제공 관리자 계정과 같은 Active Directory의 많은 기본 개체가 동기화되지 않도록 합니다.
  • IsPresent([sAMAccountName]) = False. sAMAccountName 특성이 없는 사용자 개체가 동기화되지 않도록 합니다. 이 경우는 실질적으로 NT4에서 업그레이드된 도메인에 발생합니다.
  • Left([sAMAccountName], 4) = "AAD_", . Left([sAMAccountName], 5) = "MSOL_" Microsoft Entra Connect 동기화 및 이전 버전에서 사용하는 서비스 계정을 동기화하지 마세요.
  • Exchange Online에서 작동하지 않는 Exchange 계정을 동기화하지 않습니다.
    • [sAMAccountName] = "SUPPORT_388945a0"
    • Left([mailNickname], 14) = "SystemMailbox{"
    • (Left([mailNickname], 4) = "CAS_" && (InStr([mailNickname], "}") > 0))
    • (Left([sAMAccountName], 4) = "CAS_" && (InStr([sAMAccountName], "}")> 0))
  • Exchange Online에서 작동하지 않는 개체를 동기화하지 않습니다. CBool(IIF(IsPresent([msExchRecipientTypeDetails]),BitAnd([msExchRecipientTypeDetails],&H21C07000) > 0,NULL))
    이 비트 마스크(&H21C07000)는 다음 개체를 필터링합니다.
    • 메일 사용이 가능한 공용 폴더(미리 보기 버전 1.1.524.0부터)
    • 시스템 도우미 사서함
    • 사서함 데이터베이스 사서함(시스템 사서함)
    • 유니버설 보안 그룹(사용자에 대해 적용하지 않지만 레거시를 지원하기 위해 존재합니다)
    • 비유니버설 그룹(사용자에 대해 적용하지 않지만 레거시를 지원하기 위해 존재합니다)
    • 사서함 계획
    • 검색 사서함
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0). 복제 피해 개체를 동기화하지 않습니다.

다음 특성 규칙이 적용됩니다.

  • sourceAnchor <- IIF([msExchRecipientTypeDetails]=2,NULL,..). sourceAnchor 특성은 연결된 사서함에서 제공되지 않습니다. 실제 계정에서 연결된 사서함을 찾은 경우 실제 계정이 나중에 조인된다고 가정합니다.
  • Exchange 관련 특성은 특성 mailNickName 에 값이 있는 경우 동기화됩니다.
  • 포리스트가 여러 개인 경우 특성은 다음 순서대로 사용됩니다.
    1. 로그온에 관련된 특성(예: userPrincipalName)은 활성화된 계정을 사용하여 포리스트에서 제공됩니다.
    2. Exchange GAL(전체 주소 목록)에서 찾을 수 있는 특성은 Exchange 사서함이 있는 포리스트에서 제공됩니다.
    3. 사서함이 없는 경우 이러한 특성은 포리스트에서 가져올 수 있습니다.
    4. Exchange 관련 특성(GAL에 표시되지 않는 기술 특성)은 mailNickname ISNOTNULL의 포리스트에서 제공됩니다.
    5. 이러한 규칙 중 하나를 만족하는 다중 포리스트가 있는 경우 어떤 포리스트가 특성을 제공할지 결정하는 데 커넥터(포리스트)의 생성 순서(날짜/시간)가 사용됩니다. 연결된 첫 번째 포리스트는 동기화할 첫 번째 포리스트가 됩니다.

연락처 기본 규칙

연락처 개체를 동기화하려면 다음을 만족해야 합니다.

  • 메일 특성 값이 있어야 합니다.
  • 연락처는 메일을 사용할 수 있어야 합니다. 다음 규칙을 통해 확인합니다.
    • IsPresent([proxyAddresses]) = True). proxyAddresses 특성을 채워야 합니다.
    • 기본 전자 메일 주소는 proxyAddresses 특성 또는 메일 특성에서 찾을 수 있습니다. @의 유무는 콘텐츠가 전자 메일 주소인지 확인하는 데 사용됩니다. 이 두 가지 규칙 중 하나가 True로 평가되어야 합니다.
      • (Contains([proxyAddresses], "SMTP:") > 0) && (InStr(Item([proxyAddresses], Contains([proxyAddresses], "SMTP:")), "@") > 0)). "SMTP:"가 있는 항목이 있나요? 있다면 문자열에서 @를 찾을 수 있나요?
      • (IsPresent([mail]) = True && (InStr([mail], "@") > 0). 메일 특성이 채워지나요? 그리고 채워진다면 문자열에서 @를 찾을 수 있나요?

다음 연락처 개체는 Microsoft Entra ID와 동기화되지 않습니다:

  • IsPresent([isCriticalSystemObject]). 중요로 표시된 연락처 개체가 동기화되지 않도록 합니다. 기본 구성을 사용하지 않아야 합니다.
  • ((InStr([displayName], "(MSOL)") > 0) && (CBool([msExchHideFromAddressLists]))).
  • (Left([mailNickname], 4) = "CAS_" && (InStr([mailNickname], "}") > 0)). 해당 개체는 Exchange Online에서 작동하지 않습니다.
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0). 복제 피해 개체를 동기화하지 않습니다.

그룹 기본 규칙

그룹 개체를 동기화하려면 다음을 만족해야 합니다.

  • 250,000명 미만의 멤버가 있어야 합니다. 이 개수는 온-프레미스 그룹의 멤버 수입니다.
    • 동기화를 처음으로 시작하기 전에 더 많은 멤버가 있으면 그룹은 동기화되지 않습니다.
    • 처음 만들어질 때 멤버 자격 수가 증가하면 250,000명의 멤버 자격에 도달할 때 멤버 자격 수가 다시 250,000보다 낮아질 때까지 동기화가 중지됩니다.
    • 참고: 250,000명의 멤버 자격 수는 Microsoft Entra ID에서도 적용됩니다. 이 규칙을 수정하거나 제거하는 경우 더 많은 멤버가 있는 그룹을 동기화할 수 없습니다.
  • 그룹이 배포 그룹인 경우 메일을 사용할 수 있어야 합니다. 이러한 규칙이 적용되는 데 대해 연락처 기본 규칙을 참조하세요.

다음 그룹 개체는 Microsoft Entra ID와 동기화되지 않습니다.

  • IsPresent([isCriticalSystemObject]). 기본 제공 관리자 그룹과 같은 Active Directory의 많은 기본 개체가 동기화되지 않도록 합니다.
  • [sAMAccountName] = "MSOL_AD_Sync_RichCoexistence". DirSync에서 사용하는 레거시 그룹입니다.
  • BitAnd([msExchRecipientTypeDetails],&amp;H40000000). 역할 그룹입니다.
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0). 복제 피해 개체를 동기화하지 않습니다.

ForeignSecurityPrincipal 기본 규칙

FSP는 메타버스에서 "어떤"(*) 개체에 조인됩니다. 실제로 이 조인은 사용자 및 보안 그룹의 경우에만 발생합니다. 이 구성을 사용하면 포리스트 간 멤버 자격이 Microsoft Entra ID에서 올바르게 확인되고 표시됩니다.

컴퓨터 기본 규칙

컴퓨터 개체를 동기화하려면 다음을 만족해야 합니다.

  • userCertificate ISNOTNULL. Windows 10 컴퓨터만이 이 특성을 채웁니다. 이 특성의 값을 가진 컴퓨터 개체를 모두 동기화합니다.

기본 규칙 시나리오 이해

이 예에서는 하나의 계정 포리스트(A), 하나의 리소스 포리스트(R) 및 하나의 Microsoft Entra 디렉터리가 있는 배포를 사용하고 있습니다.

Picture with scenario description

이 구성에서 계정 포리스트의 활성화된 계정 및 연결된 사서함이 있는 리소스 포리스트의 비활성화된 계정이 있다고 가정합니다.

기본 구성에서 목표는 다음과 같습니다.

  • 로그인에 관련된 특성은 설정된 계정이 있는 포리스트에서 동기화됩니다.
  • GAL(전체 주소 목록)에서 찾을 수 있는 특성은 사서함이 있는 포리스트에서 동기화됩니다. 사서함을 찾을 수 없는 경우 다른 포리스트가 사용됩니다.
  • 연결된 편지함을 찾으면 해당 개체를 Microsoft Entra ID로 내보내려면 연결이 가능한 계정을 찾아야 합니다.

동기화 규칙 편집기

구성은 SRE(동기화 규칙 편집기) 도구를 사용하여 확인하고 변경하며 해당 바로 가기는 시작 메뉴에서 찾을 수 있습니다.

Synchronization Rules Editor icon

SRE는 리소스 키트 도구이며 Microsoft Entra Connect 동기화와 함께 설치됩니다. 이를 시작하려면 ADSyncAdmins 그룹의 멤버여야 합니다. 시작할 때 다음과 같이 표시됩니다.

Synchronization Rules Inbound

이 창에서 사용자의 구성을 위해 만든 모든 동기화 규칙을 보게 됩니다. 테이블의 각 줄은 하나의 동기화 규칙입니다. 왼쪽의 규칙 우형 아래에 인바운드 및 아웃바운드의 두 가지 유형이 나열됩니다. 인바운드 및 아웃바운드는 메타버스의 보기에서 제공됩니다. 이 개요에서는 주로 인바운드 규칙에 집중합니다. 동기화 규칙의 실제 목록은 AD에서 검색된 스키마에 따라 달라집니다. 위의 그림에서 계정 포리스트(fabrikamonline.com)에는 Exchange, Lync 등의 서비스가 없으며 이러한 서비스에 대해 어떤 동기화 규칙도 만들어지지 않았습니다. 그러나 리소스 포리스트(res.fabrikamonline.com)에서 이러한 서비스에 대한 동기화 규칙을 찾을 수 있습니다. 규칙의 콘텐츠는 검색된 버전에 따라 다릅니다. 예를 들어 Exchange 2013를 사용한 배포에서는 Exchange 2010/2007에서 보다 자세한 특성 흐름이 구성되었습니다.

동기화 규칙

동기화 규칙은 조건을 만족할 때 흐르는 특성 집합이 포함된 구성 개체입니다. 또한 커넥터 공간에는 개체가 조인 또는 일치로 알려진 메타버스에 있는 개체와 관련되는 방법을 설명하기 위해서도 사용됩니다. 동기화 규칙에는 서로 관계를 나타내는 우선 순위 값이 있습니다. 낮은 숫자 값을 가진 동기화 규칙이 더 높은 우선 순위를 가지며 특성 흐름 충돌에서 높은 우선 순위가 충돌을 해결합니다.

한 예로 동기화 규칙 AD에서 들어오기 – 사용자 AccountEnabled를 살펴보겠습니다. SRE에서 이 줄을 표시하고 편집을 선택합니다.

이 규칙이 기본 규칙이므로 규칙을 열 때 경고를 받게 됩니다. 기본 규칙을 변경하지 않아야 하므로 사용자의 의도를 묻습니다. 이 경우 단순히 규칙을 확인하려고 합니다. 아니요를 선택합니다.

Synchronization Rules warning

동기화 규칙에는 설명, 범위 지정 필터, 조인 규칙 및 변환의 네 가지 구성 섹션이 있습니다.

설명

첫 번째 섹션은 이름 및 설명과 같은 기본 정보를 제공합니다.

Description tab in Sync rule editor

이 규칙이 관련된 연결된 시스템, 적용되는 연결된 시스템의 개체 유형 및 메타버스 개체 유형에 관한 정보를 찾을 수도 있습니다. 메타버스 개체 형식은 소스 개체 형식이 사용자, iNetOrgPerson 또는 연락처인지와 관계 없이 항상 사람입니다. 메타버스 개체 형식은 일반 형식으로 생성되어야 하므로 변경되어서는 안됩니다. 링크 형식은 조인, StickyJoin, 또는 프로 비전으로 설정할 수 있습니다. 이 설정은 조인 규칙 섹션과 함께 작동하며 나중에 설명됩니다.

이 동기화 규칙이 암호 동기화에 사용되는 것을 확인할 수도 있습니다. 사용자가 이 동기화 규칙의 범위에 있는 경우 암호는 온-프레미스에서 클라우드로 동기화됩니다(암호 동기화 기능을 사용하도록 설정한 것으로 가정).

범위 지정 필터

범위 지정 필터 섹션은 동기화 규칙을 적용할 시기를 구성하는 데 사용됩니다. 검색하려는 동기화 규칙의 이름을 보면 활성화된 사용자에게만 적용해야 함을 알 수 있으므로 AD 특성 userAccountControl 에는 비트 2가 설정되지 않도록 범위가 구성됩니다. 동기화 엔진이 AD에서 사용자를 찾을 때 userAccountControl 이 10진수 값 512(활성화된 일반 사용자)로 설정된 경우 이 동기화 규칙을 적용합니다. 사용자가 userAccountControl을 514(비활성화된 일반 사용자)로 설정한 경우 규칙이 적용되지 않습니다.

Screenshot that shows the

범위 지정 필터에는 중첩될 수 있는 그룹 및 절이 있습니다. 동기화 규칙을 적용하려면 그룹 내의 모든 절을 충족해야 합니다. 여러 그룹이 정의된 경우, 하나 이상의 그룹이 적용할 규칙에 충족되어야 합니다. 즉, 논리 OR은 그룹들 간에 평가되며 논리 AND는 하나의 그룹 내에서 평가됩니다. 이 구성의 예는 아웃바운드 동기화 규칙 Out to Microsoft Entra ID – Group Join에서 찾을 수 있습니다. 예를 들어 몇 가지 동기화 필터 그룹, 보안 그룹에 대한 하나의 필터 그룹(securityEnabled EQUAL True) 및 배포 그룹에 대한 하나의 필터 그룹(securityEnabled EQUAL False)이 있습니다.

Scoping tab in Sync rule editor

이 규칙은 Microsoft Entra ID에 프로비전되어야 하는 그룹을 정의하는 데 사용됩니다. 배포 그룹은 Microsoft Entra ID와 동기화되도록 메일이 사용하도록 설정되어야 하지만 보안 그룹의 경우 이메일이 필요하지 않습니다.

조인 규칙

세 번째 섹션은 커넥터 공간의 개체가 메타버스의 개체와 관련되는 방법을 구성하는데 사용됩니다. 이전에 살펴본 규칙에는 조인 규칙에 대한 구성은 없으며, 대신 AD에서 들어오기 – 사용자 조인에서 살펴봅니다.

Join rules tab in Sync rule editor

조인 규칙의 콘텐츠는 설치 마법사에서 선택한 일치 옵션에 따라 달라집니다. 인바운드 규칙의 경우, 평가는 원본 커넥터 공간에서 개체와 함께 시작되며 조인 규칙의 각 그룹이 순서대로 평가됩니다. 원본 개체가 조인 규칙 중 하나를 사용하는 메타버스로의 개체 하나와 정확히 일치하는 것으로 평가되는 경우, 개체는 조인됩니다. 모든 규칙이 평가되며 일치 항목이 없는 경우, 설명 페이지의 링크 형식이 사용됩니다. 이 구성을 프로비전으로 설정하면 조인 조건에 하나 이상의 특성이 있는 경우(값이 있는) 대상 메타버스에 새 개체가 생성됩니다. 메타버스에 새 개체를 프로비전하는 것은 개체를 메타버스에 프로젝트 하는 것이라고도 합니다.

조인 규칙은 한 번만 평가됩니다. 커넥터 공간 개체 및 메타버스 개체가 결합된 경우, 동기화 규칙의 범위가 충족되는 한 조인 상태를 유지합니다.

동기화 규칙을 평가할 때 정의된 조인 규칙이 포함된 동기화 규칙 하나만이 범위 내에 있어야 합니다. 조인 규칙이 포함된 여러 동기화 규칙이 하나의 개체에 대해 발견되면 오류가 발생합니다. 이러한 이유로, 여러 동기화 규칙이 개체의 범위에 있을 경우 정의된 조인을 포함한 하나의 동기화 규칙만이 있는 것이 가장 좋습니다. Microsoft Entra Connect 동기화의 기본 구성에서 이러한 규칙은 이름을 보고 이름 끝에 Join이라는 단어가 있는 규칙을 찾을 수 있습니다. 다른 동기화 규칙이 개체와 함께 결합되거나 대상의 새 개체를 프로비전하는 경우 정의된 조인 규칙이 없는 동기화 규칙이 특성 흐름을 적용합니다.

위 그림을 보면 규칙이 msExchMasterAccountSid(Exchange) 및 msRTCSIP-OriginatorSid(Lync)를 사용하여 objectSID에 조인하려는 시도를 확인할 수 있으며 이는 계정 리소스 포리스트 토폴로지에서 발생할 것으로 예상됩니다. 모든 포리스트에서 동일한 규칙을 발견합니다. 즉, 모든 포리스트가 계정 또는 리소스 포리스트일 수 있다고 가정합니다. 또한 이 구성은 단일 포리스트에 작동되고 조인할 수 없는 계정이 있는 경우에 작동합니다.

변환

변환 섹션은 개체가 조인되고 범위 지정 필터를 충족하는 경우 대상 개체에 적용되도록 모든 특성 흐름을 정의합니다. AD에서 들어오기 – 사용자 AccountEnabled 동기화 규칙으로 돌아가서 다음 변환을 찾습니다.

Transformations tab in Sync rule editor

이 구성을 컨텍스트에 배치하려면 계정 리소스 포리스트 배포에서 Exchange 및 Lync 설정을 사용하여 계정 포리스트에서 활성화된 계정을 찾고 리소스 포리스트에서 비활성화된 계정을 찾을 예정입니다. 찾고 있는 동기화 규칙은 로그인에 필요한 특성을 포함하며 해당 특성은 활성화된 계정이 있는 포리스트에서부터 진행되어야 합니다. 이러한 모든 특성 흐름은 하나의 동기화 규칙에 함께 배치됩니다.

변환은 다른 형식을 가질 수 있습니다: 상수, 직접 및 식.

  • 일정한 흐름은 항상 하드 코딩된 값을 전달합니다. 위의 경우 accountEnabled라는 메타버스 특성에서 값을 항상 True로 설정합니다.
  • 직접 흐름은 원본에 있는 특성의 값을 대상 특성에 항상 있는 그대로 전달합니다.
  • 세 번째 흐름 형식은 표현식으로, 더 많은 고급 구성에 사용됩니다.

표현식 언어는 VBA(Visual Basic for Applications)로 Microsoft Office 또는 VBScript의 경험을 가진 사람은 형식을 인식할 수 있습니다. 특성은 대괄호로 묶입니다(예: [attributeName]). 특성 이름 및 함수 이름은 대/소문자를 구분하지만 동기화 규칙 편집기는 표현식을 평가하여 표현식이 유효하지 않은 경우 경고를 제공합니다. 모든 표현식은 함수가 중첩된 단일 행으로 표현됩니다. 다음은 구성 언어의 강력한 기능을 표시하기 위해 삽입된 추가 주석이 있는 pwdLastSet에 대한 흐름입니다.

// If-then-else
IIF(
// (The evaluation for IIF) Is the attribute pwdLastSet present in AD?
IsPresent([pwdLastSet]),
// (The True part of IIF) If it is, then from right to left, convert the AD time format to a .NET datetime, change it to the time format used by Azure AD, and finally convert it to a string.
CStr(FormatDateTime(DateFromNum([pwdLastSet]),"yyyyMMddHHmmss.0Z")),
// (The False part of IIF) Nothing to contribute
NULL
)

특성 흐름에 대한 식 언어의 자세한 내용은 선언적 프로비전 식 이해 를 참조하세요.

우선 순위

일부 개별 동기화 규칙을 살펴보았지만 규칙은 구성에서 함께 작동합니다. 일부 경우에 특성 값은 여러 동기화 규칙에서 동일한 대상 특성에 기여합니다. 이 경우 특성 우선 순위는 어떤 특성이 이기는지를 결정하는 데 사용됩니다. 예를 들어 특성 sourceAnchor를 살펴봅니다. 이 특성은 Microsoft Entra ID에 로그인하기 위해 중요한 특성입니다. AD에서 들어오기 – 사용자 AccountEnabledAD에서 들어오기 – 사용자 공통이라는 다른 두 가지 동기화 규칙에서 이 특성에 대한 특성 흐름에 찾을 수 있습니다. 동기화 규칙 우선 순위로 인해 메타버스 개체에 조인하는 개체가 있는 경우 sourceAnchor 특성은 사용하도록 설정된 계정을 사용하는 포리스트에서 먼저 제공됩니다. 활성화된 계정이 없는 경우 동기화 엔진은 일반 동기화 규칙 AD에서 들어오기 – 일반적인 사용자를 사용합니다. 이 구성은 비활성화된 계정에 대해서도 여전히 sourceAnchor가 있다는 것을 확인합니다.

Synchronization Rules Inbound

동기화 규칙에 대한 우선 순위는 설치 마법사에 의해 그룹에 설정됩니다. 그룹의 모든 규칙은 동일한 이름을 갖지만 다른 연결된 디렉터리에 연결됩니다. 설치 마법사는 AD에서 들어오기 – 사용자 조인 규칙에 가장 높은 우선순위를 제공하고 모든 연결된 AD 디렉터리를 반복합니다. 그런 다음 미리 정의된 순서에 따라 규칙의 다음 그룹을 계속 진행합니다. 그룹 내에서 규칙은 마법사에 추가된 커넥터의 순서로 추가됩니다. 다른 커넥터가 마법사를 통해 추가되면 동기화 규칙은 다시 정렬되고 새 커넥터의 규칙은 각 그룹에 마지막으로 삽입됩니다.

모든 항목 요약

이제 다른 동기화 규칙을 사용하여 구성이 작동하는 방식을 이해할 수 있을 만큼 동기화 규칙에 대해 충분히 알고 있습니다. 메타버스에도 제공된 사용자와 특성을 보면 다음과 같은 순서로 규칙이 적용됩니다.

이름 설명
AD에서 들어오기 – 사용자 조인 메타버스를 사용하여 커넥터 공간 개체에 조인시키기 위한 규칙.
AD에서 들어오기 – 사용하도록 설정된 UserAccount Microsoft Entra ID 및 Microsoft 365에 로그인하는 데 필요한 특성입니다. 사용된 계정에서 이러한 특성이 필요합니다.
AD에서 들어오기 – Exchange에서 사용자 공통 전체 주소 목록에 있는 특성. 사용자의 사서함이 위치한 포리스트에서 데이터 품질이 가장 훌륭하다고 가정합니다.
AD에서 들어오기 – 사용자 공통 전체 주소 목록에 있는 특성. 사서함을 찾지 못한 경우에 다른 조인된 개체가 특성 값을 제공할 수 있습니다.
AD에서 들어오기 – 사용자 Exchange Exchange가 감지되는 경우에만 존재합니다. 인프라 Exchange 특성을 전송합니다.
AD에서 들어오기 – 사용자 Lync Lync가 감지되는 경우에만 존재합니다. 모든 인프라 Lync 특성을 전송합니다.

다음 단계

개요 항목