
Active Directory 서버에서 사용자 정보를 가져오는 코드를 작성했습니다. Active Directory 서버에 노드가 있고 각 노드는 서로 다른 지리적 위치에 있는 또 다른 Active Directory 설치라고 가정합니다. 예: 미국에 있는 하나의 AD 서버와 호주에 있는 또 다른 하나의 루트 AD 서버는 미국에 있으며 이전 두 개는 노드로 사용됩니다.
지리적 위치 전반에 걸쳐 사용자를 검색하기 위해 작성한 필터 쿼리를 루트 AD 서버에서 실행하면 작동합니까? 내가 사용하는 쿼리는
(|(objectClass=user)(objectClass=person)(objectClass=inetOrgPerson))
이 시나리오를 실제로 테스트할 수는 없지만 여기서 어떤 일이 일어날지 알아야 합니다.
답변1
AD는 분산형 멀티마스터 데이터베이스입니다. 일반적으로 사용자에 대해 도메인 컨트롤러 중 하나에 쿼리하고 DC(노드)에서 동일한 답변을 얻을 수 있습니다.
AD에서는 서버 간 데이터 변경 사항 복제를 구성할 수 있으므로 사용자가 호주에서 일부 속성을 변경하고 뉴욕의 서버에 대해 일부 데이터를 쿼리하면 다른 응답을 얻을 수 있습니다. 도메인 관리자는 도메인의 시간 복제에 대해 알려줄 수 있습니다.
복제가 수행되면 모든 DC에 동일한 정보가 있습니다. 일반적으로 복제 시간은 분 정도이지만, 경우에 따라서는 하루에 1~2회로만 설정되기도 합니다.
이것이 귀하의 질문에 대한 답변이 되기를 바랍니다.
답변2
WRT Active Directory라는 용어가 정확하지 않습니다. 제가 볼 수 있는 두 가지 우려 사항은 다음과 같습니다.
- AD의 가장 가까운 복제본 쿼리
- 다중 도메인 환경에서의 쿼리 동작 이해
글로벌 카탈로그는 포리스트에 있는 모든 도메인 콘텐츠의 하위 집합을 유지 관리합니다. "노드"라는 용어를 사용하여 개별 도메인을 참조하는 경우 글로벌 카탈로그에 대한 쿼리를 사용하면 단일 쿼리로 포리스트의 모든 도메인을 쿼리할 수 있습니다(찾고 있는 특성이 노드에 복제된 하위 집합의 일부라고 가정). GC).
물리적으로 가까운 DC의 위치는 DNS와 LDAP 쿼리의 조합을 통해 수행됩니다. "dns ldap 가장 가까운 도메인 컨트롤러 찾기"에 대한 Goooooogle 검색은 몇 가지 좋은 첫 번째 단계를 반환합니다(LDAP를 통해 가장 가까운 도메인 컨트롤러 찾기).
Windows에서 개발하는 경우 ADSI API를 사용하여 "무료"로 도메인 컨트롤러 위치를 얻을 수 있습니다.
답변3
여기서 명확하지 않은 것은 "노드"라는 용어의 의미입니다.
- 여러 도메인 컨트롤러가 지리적으로 분산되어 있는 단일 Active Directory 도메인이 있습니까?
- 각 지리적 위치에 대한 사용자와 컴퓨터를 포함하는 OU가 있는 단일 도메인이 있습니까?
- 다양한 회사의 지역 사무소를 대표하는 여러 도메인이 있습니까?
도메인 컨트롤러에 쿼리하는 한동일한 도메인의, 당신은 같은 대답을 얻을 것입니다같은 쿼리에복제 문제를 제외하고 그 중 하나에서.
그러나 여러 도메인이 있거나 특정 도메인의 특정 하위 트리(OU)를 쿼리하려는 경우에는 다른 대답을 얻게 됩니다.
답변4
"OR" "|"을 원하시나요? 쿼리의 연산자가 의미가 없습니다. 또한 노드를 도메인과 동일시하고 있습니까?
또한 다음은 테스트할 코드가 필요하지 않은 예를 제공합니다.
dsquery * domainroot -filter (|(objectClass=user)(objectClass=person)(objectClass=inetOrgPerson))" -attr *
하지만 내가 말했듯이 "OR" | 연산자가 의미가 없습니다.
이상하게도 serverfaults 응답 코드에서 버그를 발견했습니다. 이 작업을 수행한 후에 버그가 사라지면 이상할 것입니다.