Служба синхронизации Microsoft Entra Connect: общие сведения о декларативной подготовке

В этом разделе объясняется модель конфигурации в Microsoft Entra Подключение. Она позволяет без труда вносить изменения в конфигурацию. Некоторые сложные аспекты, описанные в этой статье, не предназначены для большинства клиентских сценариев.

Обзор

Декларативная подготовка — это процесс обработки объектов, поступающих из подключенного к источнику каталога. Она определяет тип преобразования исходных объекта и атрибутов. Обработка объекта выполняется в конвейере синхронизации. Этот конвейер одинаковый для входящих и исходящих правил. Входящие правила поступают из пространства соединителя в метавселенную, а исходящие — наоборот.

Diagram that shows a sync pipeline example.

Конвейер состоит из нескольких разных модулей, каждый из которых отвечает за определенную концепцию в процессе синхронизации объекта.

Diagram that shows the modules in the pipeline.

  • Исходное пространство представляет исходный объект.
  • Область— находит все правила синхронизации в области.
  • Объединение— определяет связь между пространством соединителя и метавселенной.
  • Преобразование — вычисляет, как атрибуты должны быть преобразованы, и сам поток.
  • Приоритет— разрешает конфликтующие изменения атрибута.
  • Целевое пространство представляет целевой объект.

Область

Модуль области оценивает объект и определяет входящие в область правила, которые нужно включить в обработку. В зависимости от значений атрибутов объекта в области вычисляются разные правила синхронизации. Например, отключенный пользователь, у которого нет почтового ящика Exchange, и включенный пользователь, поддерживающий почту Exchange, имеют разные правила.
Diagram that shows the scope module for an object.

Область определяется как набор групп и предложений. Предложения находятся внутри группы. Между всеми предложениями в группе используется логический оператор AND. Например, (department =IT AND country = Denmark). Группы должны быть соединены логическим оператором OR.

Scope
Область на этом рисунке должна читаться как (department = IT AND country = Denmark) OR (country=Sweden). Если группа 1 или группа 2 принимает значение true, значит правило находится в области.

Модуль области поддерживает следующие операции.

Операция Description
EQUAL, NOTEQUAL Сравнение строк, в процессе которого вычисляется, совпадает ли значение со значением атрибута. Для многозначных атрибутов см. операцию ISIN и ISNOTIN.
LESSTHAN, LESSTHAN_OR_EQUAL Сравнение строк, в процессе которого вычисляется, меньше ли значение, чем значение атрибута.
CONTAINS, NOTCONTAINS Сравнение строк, в процессе которого вычисляется, присутствует ли значение в значении атрибута.
STARTSWITH, NOTSTARTSWITH Сравнение строк, в процессе которого вычисляется, находится ли значение в начале значения атрибута.
ENDSWITH, NOTENDSWITH Сравнение строк, в процессе которого вычисляется, находится ли значение в конце значения атрибута.
GREATERTHAN, GREATERTHAN_OR_EQUAL Сравнение строк, в процессе которого вычисляется, больше ли значение, чем значение атрибута.
ISNULL, ISNOTNULL Вычисляет наличие атрибута в объекте. Если атрибут отсутствует и, следовательно, имеет значение null, тогда правило находится в области.
ISIN, ISNOTIN Вычисляет наличие значения в определенном атрибуте. Эта операция является многозначным вариантом операции EQUAL и NOTEQUAL. Атрибут должен быть многозначным. Если в одно из значений атрибутов включено значение, значит правило находится в области.
ISBITSET, ISNOTBITSET Вычисляет, является ли определенный бит набором. Например, эти операции можно использовать, чтобы проанализировать биты в атрибуте userAccountControl и определить, включен ли пользователь.
ISMEMBEROF, ISNOTMEMBEROF Значение должно содержать атрибут DN для группы в пространстве соединителя. Если объект определен как участник группы, правило находится в области.

Присоединиться

Модуль объединения в конвейере синхронизации определяет, есть ли связь между объектом в исходном и целевом пространствах. Во входящем правиле объект в пространстве соединителя ищет связь с объектом в метавселенной.
Join between cs and mv
Цель — определить наличие объекта, с которым должна быть установлена связь, в метавселенной, созданной другим соединителем. Например, в лесу ресурсов учетной записи пользователь из леса учетных записей должен быть объединен с пользователем из леса ресурсов.

Обычно модули объединения используются во входящих правилах, чтобы объединить объекты пространства соединителя с таким же объектом метавселенной.

Модули объединения определяются как одна или несколько групп. Внутри группы находятся предложения. Между всеми предложениями в группе используется логический оператор AND. Группы должны быть соединены логическим оператором OR. Эти группы обрабатываются в порядке сверху вниз. Если группа обнаружила одно совпадение с объектом в целевом пространстве, оценка правил объединения останавливается. Если совпадение не обнаружено или обнаружено несколько соответствующих объектов, выполняется обработка следующей группы правил. По этой причине сначала необходимо создавать самые явные правила, а затем — менее четкие.
Join definition
На этом рисунке обработка соединений выполняется сверху вниз. Сначала конвейер синхронизации выполняет поиск соответствий в атрибуте employeeID. Если соответствия отсутствуют, второе правило определяет, можно ли использовать имя учетной записи для соединения объектов. Если соответствия отсутствуют и в этом случае, третье и последнее правило выполняет поиск менее четких совпадений с помощью имени пользователя.

Если вычислены все правила объединения и совпадений нет, то используется тип связи на странице описания. Если для этого параметра задано значение Provision, создается новый объект в целевом пространстве.
Screenshot that shows the

Объект должен иметь только одно правило синхронизации с правилами объединения в области. При наличии в объединении нескольких правил синхронизации возникает ошибка. Конфликты объединения нельзя решить на основании приоритета. В области объект должен иметь одно правило объединения для атрибутов. Это позволит использовать один поток для входящего и исходящего направления. Чтобы передать входящие и исходящие атрибуты в объект, необходимо иметь входящее и исходящее правило синхронизации для объединения.

При попытке подготовить объект в целевом пространстве соединителя исходящее правило объединения характеризуется определенным поведением. Атрибут DN используется при первой попытке обратного объединения. Если в целевом пространстве соединителя уже есть объект с таким же атрибутом DN, объекты объединяются.

Вычисление модуля объединения выполняется только один раз при вхождении в область нового правила синхронизации. Объект не исключается из объединения, даже если он больше не соответствует условиям объединения. Чтобы исключить объект, правило синхронизации, используемое для объединения объектов, должно выйти из области.

Удаление метавселенной

Объект метавселенной существует, пока в области остается одно правило синхронизации с типом связиProvision или StickyJoin. Параметр StickyJoin используется, когда соединитель не может подготовить новый объект в метавселенной. Но после присоединения к другому объекту его необходимо удалить в исходном пространстве до удаления объекта в метавселенной.

Если объект метавселенной удаляется, все объекты, связанные с исходящим правилом синхронизации, отмеченные для подготовки , отмечаются для удаления.

Преобразования

В разделе преобразований определяются все потоки атрибутов из исходного пространства в целевое. Потоки могут быть следующих типов: "Прямой", "Константа" или "Выражение". Прямой поток передает значение атрибута без дополнительных изменений. Поток-константа передает определенное значение. Поток-выражение использует язык выражений декларативной подготовки, чтобы определить тип преобразований. Дополнительные сведения о языке выражений см. в статье Служба синхронизации Azure AD Connect: общие сведения о выражениях декларативной подготовки.

Provision or join

Флажок Применить однократно определяет, что атрибут должен быть задан только при первоначальном создании объекта. Например, эту конфигурацию можно использовать, чтобы задать первоначальный пароль для нового объекта-пользователя.

Объединение значений атрибутов

В потоках атрибутов используется параметр, позволяющий определить, нужно ли объединять значения нескольких разных соединителей, чтобы получить многозначные атрибуты. По умолчанию используется значение Update. Оно указывает, что главным считается правило синхронизации с наивысшим приоритетом.

Screenshot that shows the

Кроме того, существуют и другие параметры, такие как Merge и MergeCaseInsensitive. Они позволяют объединять значения из разных источников. Например, его можно использовать для слияния атрибута proxyAddresses из нескольких разных лесов. Чтобы использовать этот параметр, у всех правил синхронизации в области объекта должен быть одинаковый тип объединения. В одном соединителе нельзя определить значение Update, а в другом — Merge. В этом случае возникнет ошибка.

Разница между параметрами Merge и MergeCaseInsensitive заключается в обработке повторяющихся значений атрибутов. Модуль синхронизации не позволяет вставлять повторяющиеся значения в целевой атрибут. При использовании параметра MergeCaseInsensitiveв целевой атрибут нельзя вставить повторяющиеся значения с разным регистром. Например, в целевом атрибуте одновременно не могут быть значения SMTP:bob@contoso.com и smtp:bob@contoso.com. Merge включает в атрибут только точные значения и несколько значений, которые могут отличаться только регистром.

Параметр Replace аналогичен параметру Update, но он не используется.

Управление потоком атрибута

Если для передачи одного и того же атрибута метавселенной настроено несколько входящих правил синхронизации, главное из них определяется по приоритету. Для передачи значения используется правило синхронизации с наивысшим приоритетом (с самым низким числовым значением). То же самое происходит и с исходящими правилами. Для передачи значения в подключенный каталог используется правило синхронизации с наивысшим приоритетом.

В некоторых случаях правило синхронизации определяет поведение других правил, а не используется для передачи значения. В этом случае используются специальные литералы.

Для входящих правил синхронизации можно использовать литерал NULL. Он указывает, что в потоке нет значения для передачи. Значение может передать другое правило с более низким приоритетом. Если никакое правило не передает значение, атрибут метавселенной удаляется. Что касается исходящего правила, если после обработки всех правил синхронизации конечным значением будет NULL, то значение будет удалено из каталога.

Литералы AuthoritativeNull и NULL аналогичны. Разница между ними заключается в том, что при использовании литерала AuthoritativeNull правила с более низким приоритетом не могут передавать значение.

В потоке атрибута также может использоваться литерал IgnoreThisFlow. Он, так же как и литерал NULL, указывает, что в потоке нет значения для передачи. Разница между ними заключается в том, что при использовании литерала IgnoreThisFlow имеющееся значение в каталоге не удаляется. Это выглядит так, как будто там никогда не было потока.

Рассмотрим пример:

В правиле синхронизации Out to AD — User Exchange hybrid (Поступление в AD — пользователи гибридной среды Exchange) доступен следующий поток:
IIF([cloudSOAExchMailbox] = True,[cloudMSExchSafeSendersHash],IgnoreThisFlow)
Это выражение должно быть прочитано следующим образом: если почтовый ящик пользователя находится в идентификаторе Microsoft Entra ID, затем переведите атрибут из идентификатора Microsoft Entra в Active Directory. Если нет, атрибуты в Active Directory не возвращаются. В этом случае в AD будет сохранено имеющееся значение.

Функция ImportedValue

Функция ImportedValue отличается от всех других функций, поэтому имя ее атрибута должно заключаться в кавычки, а не в квадратные скобки:

ImportedValue("proxyAddresses").

Входящий синхронизации имеет понятие о том, что атрибут, который еще не достиг подключенного каталога, в конечном итоге достигнет его в какой-то момент, поэтому синхронизация обычно получает значение атрибута из соответствующего пространства соединителя, даже если он еще не экспортирован или ошибка произошла во время экспорта. Однако в некоторых случаях важно синхронизировать только значение, экспортируемое и подтвержденное во время импорта из подключенного каталога. Эту функцию можно найти в нескольких правилах преобразования из ad/AAD, где атрибут должен быть синхронизирован только при подтверждении успешного экспорта значения.

Пример этой функции можно найти в стандартном правиле синхронизации in from AD — User Common from Exchange, for ProxyAddresses attribute flow with Hybrid Exchange. Например, когда пользователь добавляет ProxyAddresses, функция ImportValue возвращает только новое значение после подтверждения из следующего шага импорта:

proxyAddresses<- RemoveDuplicates(Trim(ImportedValue("proxyAddresses")))

Эта функция требуется, если целевой каталог может изменять или отключать карта экспортируемое значение атрибута автоматически, и мы хотим, чтобы синхронизация обрабатывала только подтвержденные значения атрибутов.

Приоритет

Если для передачи значения атрибута в целевое пространство используется несколько правил синхронизации, главное правило выбирается на основании приоритета. В случае конфликта для передачи атрибута используется правило синхронизации с наивысшим приоритетом (с самым низким числовым значением).

Merge Types

Этот порядок может использоваться для определения более точного потока атрибутов для небольшого подмножества объектов. Например, стандартные правила определяют, имеют ли атрибуты из включенной учетной записи (User AccountEnabled) более высокий приоритет, чем атрибуты из других учетных записей.

Для соединителей можно определить приоритет. Это позволяет использовать для передачи значений сначала соединители с более эффективными данными.

Несколько объектов из одного пространства соединителя

Невозможно объединить несколько объектов в одном пространстве соединителя, присоединенном к одному и тому же объекту метавселенной. Неоднозначность может возникнуть даже при наличии в атрибутах источника одинакового значения.

Diagram that shows multiple objects joined to the same mv object with a transparent red X overlay.

Следующие шаги

Обзорные статьи

Справочные материалы