다음을 통해 공유


기본 구성 이해

업데이트: 2015년 7월 22일

중요

이 항목은 곧 보관될 예정입니다.
AADSync DirSync를 대체하는 "Azure Active Directory 커넥트"라는 새로운 제품이 있습니다.
Azure AD Connect는 이전에 DirSync 및 AAD 동기화로 릴리스된 구성 요소와 기능을 통합합니다.
미래의 어느 시점에서 Dirsync 및 AAD Sync 대한 지원이 종료됩니다.
이러한 도구는 더 이상 기능 향상으로 개별적으로 업데이트되지 않으며 향후 모든 개선 사항이 Azure AD 커넥트 업데이트에 포함됩니다.

Azure Active Directory 커넥트 대한 최신 정보는 온-프레미스 ID를 Azure Active Directory

이 문서에서는 Azure Active Directory 동기화의 기본 구성을 안내합니다. 목표는 판독기에서 Azure Active Directory Sync의 선언적 프로비전이라는 구성 모델이 실제 예제에서 작동하는 방식을 이해하는 것입니다. 이 문서에서는 설치 마법사를 사용하여 Azure Active Directory 동기화를 이미 설치하고 구성했다고 가정합니다.

시나리오 설명

이 예제에서는 계정 포리스트(A), 리소스 포리스트(R) 및 AAD 디렉터리가 각각 하나씩 포함된 배포를 사용합니다.

연결된 각 디렉터리에는 Azure Active Directory Sync의 관련 정보에 대한 커넥터 공간이라는 캐시된 복사본이 있습니다. 중간에 동기화되는 개체의 통합 보기인 메타버스가 있습니다.

Metaverse

이는 Azure Active Directory 동기화 시나리오 개요에 설명된 시나리오 2와 동일합니다.

동기화 규칙 편집기

구성은 SRE(동기화 규칙 편집기) 도구에서 보고 변경할 수 있으며, 이 도구의 바로 가기는 시작 메뉴에 있습니다.

Synchronization Rules Editor

SRE는 리소스 키트 도구이지만 Azure Active Directory 동기화와 함께 설치됩니다. 시작하려면 ADSyncAdmins 그룹의 구성원이어야 합니다. SRE가 시작되면 다음과 같이 표시됩니다.

Synchronization Rules Editor

이 창에 구성에 대해 만들어진 모든 동기화 규칙이 표시됩니다. 테이블의 각 줄은 하나의 동기화 규칙입니다. 규칙 형식의 왼쪽에는 인바운드 및 아웃바운드라는 두 가지 형식이 나열됩니다. 인바운드 및 아웃바운드는 메타버스의 보기에서 제공됩니다. 이 개요에서는 인바운드 규칙을 집중적으로 설명합니다. 동기화 규칙의 실제 목록은 AD에서 검색된 스키마에 따라 다릅니다. 위의 그림에서 계정 포리스트(Azure Active Directory Sync.com)에는 Exchange 및 Lync와 같은 서비스가 없으며 이러한 서비스에 대한 동기화 규칙이 만들어지지 않았습니다. 그러나 리소스 포리스트에는 이러한 서비스에 대한 동기화 규칙이 있습니다. 규칙 내용은 검색된 버전에 따라 다릅니다. 예를 들어 Exchange 2013을 사용한 배포에는 Exchange 2010 및 Exchange 2007에서보다 구성된 특성 흐름이 더 많습니다.

동기화 규칙

동기화 규칙은 조건을 만족할 때 흐르는 특성 집합이 포함된 구성 개체입니다. 또한 동기화 규칙은 커넥터 공간의 개체가 메타버스의 개체와 어떻게 관련되어 있는지를 설명하는 데 사용됩니다(조인 또는 일치라고 함). 동기화 규칙은 이러한 개체가 어떻게 서로 관련되어 있는지를 나타내는 우선 순위를 포함합니다. 동기화 규칙의 숫자 값이 낮을수록 높은 우선 순위를 가지며, 특성 흐름에서 충돌이 발생할 경우 높은 우선 순위의 동기화 규칙이 우선적으로 적용됩니다.

이러한 예로 동기화 규칙 “In from AD – User AccountEnabled”를 살펴보겠습니다. 이 줄을 SRE에 표시하고 편집을 선택합니다. 동기화 규칙에는 설명, 범위 지정 필터, 조인 규칙 및 변환의 네 가지 구성 섹션이 있습니다.

설명

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

Edit inbound synchronization rule

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

범위 지정 필터

범위 지정 필터 섹션은 동기화 규칙을 적용할 시기를 구성하는 데 사용됩니다. 살펴보고 있는 동기화 규칙의 이름이 활성화된 사용자에게만 적용되어야 함을 나타내므로, AD 특성 userAccountControl의 비트 2를 설정하면 안 되도록 범위가 구성됩니다. AD에서 사용자를 찾으면 userAccountControl이 10진수 512(활성화된 일반 사용자)로 설정된 경우 이 규칙을 적용하지만 찾은 사용자의 userAccountControl이 514(비활성화된 일반 사용자)로 설정된 경우 이 규칙이 적용되지 않습니다.

Edit inbound synchronization rule

범위 지정 필터에는 중첩될 수 있는 그룹 및 절이 있습니다. 동기화 규칙을 적용하려면 그룹 내의 모든 절을 충족해야 합니다. 여러 그룹이 정의되면 규칙이 적용되려면 하나 이상의 그룹이 충족되어야 합니다. 즉, 논리적 OR은 그룹 간에 평가되고 논리적 AND는 그룹 내에서 평가됩니다. 이러한 예는 아래에 표시된 아웃바운드 동기화 규칙 Out to AAD – Group Join에서 찾을 수 있습니다. 두 개의 동기화 필터 그룹 즉, 보안 그룹에 대한 동기화 필터 그룹(securityEnabled EQUAL True)과 메일 그룹에 대한 동기화 필터 그룹(securityEnabled EQUAL False)이 있습니다.

Edit outbound synchronization rule

이 규칙은 AAD로 프로비전되어야 하는 그룹을 정의하는 데 사용됩니다. 메일 그룹은 AAD와 동기화되기 위해서 메일 사용이 가능해야 하지만 보안 그룹의 경우 그럴 필요가 없습니다. 또한 보시다시피 많은 추가 특성도 평가됩니다.

조인 규칙

세 번째 섹션은 커넥터 공간의 개체가 메타버스의 개체와 관련되는 방법을 구성하는데 사용됩니다. 앞에서 살펴본 규칙은 조인 규칙에 대한 구성을 포함하고 있지 않으므로, 대신 In from AD – User Join을 살펴보겠습니다.

Edit intbound synchronization rule

조인 규칙의 내용은 설치 마법사에서 선택한 일치 옵션에 따라 다릅니다. 인바운드 규칙의 경우 평가는 원본 커넥터 공간의 개체로 시작하고, 조인 규칙의 각 그룹은 순서대로 평가됩니다. 원본 개체가 조인 규칙 중 하나를 사용하여 정확히 메타버스의 개체 하나와 일치하는 것으로 평가되면 개체가 함께 조인됩니다. 모든 규칙이 평가되며 일치 항목이 없는 경우, 설명 페이지의 링크 형식이 사용됩니다. 이 설정이 프로비전으로 설정된 경우 대상인 메타버스에 새 개체가 만들어집니다. 메타버스에 새 개체를 프로비전하는 것을 메타버스에 개체를 프로젝션하는 것이라고도 합니다. 조인 규칙은 한 번만 평가됩니다. 커넥터 공간 개체와 메타버스 개체가 함께 조인되면 동기화 규칙의 범위가 계속 충족되는 한 조인된 상태를 유지합니다. 동기화 규칙을 평가할 때는 조인 규칙이 정의된 하나의 동기화 규칙만 범위에 있어야 합니다. 조인 규칙이 포함된 여러 동기화 규칙이 하나의 개체에 대해 발견되면 오류가 발생합니다. 따라서 모범 사례는 범위에 개체에 대한 동기화 규칙이 여러 개 있는 경우 조인이 정의된 동기화 규칙이 하나만 있도록 하는 것입니다. Azure Active Directory 동기화에 대한 기본 구성에서 이러한 규칙은 이름을 보고 이름 끝에 조인이라는 단어가 있는 규칙을 찾아 찾을 수 있습니다. 조인 규칙이 정의되지 않은 동기화 규칙은 다른 동기화 규칙이 개체를 함께 조인했거나 대상에서 새 개체를 프로비전한 경우 특성 흐름을 적용합니다.

변환

변환 섹션에서는 개체가 조인되고 범위 필터가 충족되는 경우 대상 개체에 적용할 모든 특성 흐름을 정의합니다. In from AD – User AccountEnabled 동기화 규칙으로 돌아가서 살펴보면 다음과 같은 변환이 있습니다.

Edit intbound synchronization rule

이를 컨텍스트에 적용하면 계정-리소스 포리스트 배포에서 Exchange 및 Lync 설정을 통해 계정 포리스트에서는 계정이 활성화되고 리소스 포리스트에서는 계정이 비활성화되어야 합니다. 즉 현재 여기서 다루고 있는 동기화 규칙에는 로그인에 필요한 특성이 포함되어 있으므로 활성화된 계정이 있는 포리스트에서 이러한 특성이 흘러야 합니다. 이러한 모든 특성 흐름은 하나의 동기화 규칙에 함께 배치됩니다. A 변환에는 상수, 직접 및 식과 같은 다양한 형식이 있을 수 있습니다. 상수 흐름은 항상 특정 값을 흐르게 하고, 앞의 경우에서는 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 AAD, and finally convert it to a string.
CStr(FormatDateTime(DateFromNum([pwdLastSet]),"yyyyMMddHHmmss.0Z")),
// (The False part of IIF) Nothing to contribute
NULL
)

변환 항목이 크고 Azure Active Directory Sync에서 가능한 사용자 지정 구성의 상당 부분을 제공합니다. 사용자 지정 구성은 이 개요 문서에서 다루지 않지만 이 문서의 뒷부분에서 몇 가지 추가 특성 흐름을 살펴보겠습니다.

우선 순위

지금 몇 가지 개별 동기화 규칙을 살펴보았지만 규칙은 구성에서 함께 작동합니다. 어떤 경우에는 동일한 대상 특성에 대한 특성 값이 여러 개의 동기화 규칙에 따라 달라질 수도 있습니다. 이런 경우에는 특성 우선 순위를 통해 우선적으로 적용될 특성이 정해집니다. 이러한 예로 sourceAnchor 특성을 살펴보겠습니다. 이 특성은 Azure AD에 로그인하는 데 중요한 특성입니다. 이 특성의 특성 흐름은 두 가지 동기화 규칙 In from AD – User AccountEnabled와 In from AD – User Common에서 찾을 수 있습니다. 동기화 규칙 우선 순위 때문에 sourceAnchor 특성은 메타버스 개체에 조인된 개체가 여러 개인 경우 먼저 활성화된 계정이 있는 포리스트에 따라 정해집니다. 활성화된 계정이 없으면 포괄적인 동기화 규칙 In from AD – User Common을 사용합니다. 그러면 비활성화된 계정에 대해서도 계속 sourceAnchor를 제공합니다. 동기화 규칙의 우선 순위는 설치 마법사에 의해 그룹에 설정됩니다. 규칙 그룹은 모두 이름이 같지만 서로 다른 연결된 디렉터리에 연결됩니다. 설치 마법사는 In from AD – User Join 규칙에 가장 높은 우선 순위를 지정하고 연결된 모든 AD 디렉터리에 대해 반복합니다. 그런 다음 미리 정의된 순서대로 다음 규칙 그룹에 대해 계속합니다. 한 그룹 내에서 규칙은 마법사에서 커넥터가 추가된 순서대로 추가됩니다. 다른 커넥터가 마법사를 통해 추가되면 동기화 규칙의 순서가 다시 매겨지고 새 커넥터의 규칙이 각 그룹의 마지막에 삽입됩니다.

모든 항목 요약

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

이름

설명

AD에서 들어오기 – 사용자 조인

메타버스를 사용하여 커넥터 공간 개체에 조인시키기 위한 규칙.

AD에서 들어오기 – 사용하도록 설정된 UserAccount

Azure AD 및 Office 365 로그인에 필요한 특성입니다. 사용된 계정에서 이러한 특성이 필요합니다.

AD에서 들어오기 – Exchange에서 사용자 공통

전체 주소 목록에 있는 특성. 사용자의 사서함이 위치한 포리스트에서 데이터 품질이 가장 훌륭하다고 가정합니다.

AD에서 들어오기 – 사용자 공통

전체 주소 목록에 있는 특성. 사서함을 찾지 못한 경우에 다른 조인된 개체가 특성 값을 제공할 수 있습니다.

AD에서 들어오기 – 사용자 Exchange

Exchange가 검색된 경우에만 존재합니다. 모든 인프라 Exchange 특성이 흐릅니다.

AD에서 들어오기 – 사용자 Lync

Lync가 검색된 경우에만 존재합니다. 모든 인프라 Lync 특성이 흐릅니다.

참고할 기타 사항

한 가지 특정 특성 흐름을 살펴보면서 이 문서를 마치겠습니다.

cloudFiltered

이 특성 흐름은 In from AD – Join User에서 찾을 수 있습니다. 이 특성 흐름은 조인에 불필요하지만 핵심이기 때문에 이 규칙에 배치되었습니다. 모든 아웃바운드 동기화 규칙에는 cloudFiltered 특성에 대한 범위 필터가 있으며, 다른 문서에서 추가 필터링에 이러한 범위 필터를 사용하는 방법을 살펴보겠습니다. 이 흐름에서는 기본적으로 클라우드에 나타나지 않는 다수의 개체를 필터링합니다. 아래 식에서 이중 세로 막대 ||는 논리적 OR입니다.

// if-then-else
IIF(
// Don’t synchronize default AD objects, such as Administrator
IsPresent([isCriticalSystemObject]) || 
// Don’t synchronize objects with no sAMAccountName set
IsPresent([sAMAccountName]) = False || 
// Don’t synchronize these special Exchange mailboxes
[sAMAccountName] = "SUPPORT_388945a0" || 
Left([mailNickname], 14) = "SystemMailbox{" || 
(Left([mailNickname], 4) = "CAS_" && (InStr([mailNickname], "}") > 0)) || 
(Left([sAMAccountName], 4) = "CAS_" && (InStr([sAMAccountName], "}") > 0)) ||  
// Don’t synchronize Exchange system mailboxes
CBool(IIF(IsPresent([msExchRecipientTypeDetails]), 
BitAnd([msExchRecipientTypeDetails],&H21C07000) > 0,NULL)) ||
// Don’t synchronize the Azure Active Directory Sync/DirSync service accounts
Left([sAMAccountName], 4) = "AAD_" || Left([sAMAccountName], 5) = "MSOL_" ||
// Don’t synchronize replication conflict objects
CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0), 
// Then, If any of these OR clauses is True, then flow “True”
True, 
// Else, if not, then don’t flow anything
NULL
)

참고 항목

개념

Azure Active Directory 동기화