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

Microsoft Entra Подключение Sync строится на декларативной подготовке, впервые появившейся в Forefront Identity Manager 2010. Эта функция позволяет реализовать бизнес-логику интеграции идентификации без необходимости написания компилируемого кода.

Важной частью декларативной подготовки является язык выражений, используемый в потоке атрибутов. Это подмножество Microsoft® Visual Basic® для приложений (VBA). Этот язык используется в Microsoft Office и знаком пользователи, имеющим опыт работы с VBScript. Язык выражений декларативной подготовки не структурированный и использует только функции, но не методы или инструкции. Вместо этого функции вложены в поток программы.

Подробнее об этом см. в статье Справочник по языку Office VBA.

Атрибуты являются строго типизированными. Функция принимает только атрибуты правильного типа. Регистр символов также учитывается. Имена функций и атрибутов должны указываться с учетом регистра, иначе произойдет ошибка.

Определения и идентификаторы языка

  • У функции есть имя, за которым следует список аргументов в скобках: имя_функции(аргумент 1, аргумент N).
  • Атрибуты заключаются в квадратные скобки: [имя_атрибута].
  • Параметры задаются знаком процента: %имя_параметра%.
  • Строковые константы заключаются в кавычки, например "Contoso" (обратите внимание, что необходимо использовать прямые (""), а не парные (“”) кавычки).
  • Числовые значения приводятся без кавычек; они считаются десятичными. Шестнадцатеричные значения должны иметь префикс &H. Например, 98052, &HFF.
  • Логические значения выражаются константами True и False.
  • Встроенные константы и литералы выражаются только своим именем: NULL, CRLF, IgnoreThisFlow.

Функции

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

Function1(Function2(Function3()))

Полный список функций можно найти в справочнике по функциям.

Параметры

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

Соединитель Active Directory предоставляет следующие параметры для входящих правил синхронизации.

Имя параметра Комментарий
Domain.Netbios Формат NetBIOS импортируемого домена, например FABRIKAMSALES
Domain.FQDN Формат FQDN импортируемого домена, например sales.fabrikam.com
Domain.LDAP Формат LDAP импортируемого домена, например DC=sales,DC=fabrikam,DC=com
Forest.Netbios Формат NetBIOS импортируемого имени леса, например FABRIKAMCORP
Forest.FQDN Формат FQDN импортируемого имени леса, например fabrikam.com
Forest.LDAP Формат LDAP импортируемого имени леса, например DC=fabrikam,DC=com

Система предоставляет следующий параметр, который используется для получения идентификатора запущенного соединителя:
Connector.ID

Ниже приведен пример, где атрибут метавселенной domain заполнен NetBIOS-именем домена, в котором расположен пользователь.
domain<- %Domain.Netbios%

Операторы

Могут использоваться следующие операторы.

  • Сравнение: <, <=, <>, =, >, >=
  • Математические: +, -, *, -
  • Строковые: & (сцепление)
  • Логические: && (и), || (или)
  • Порядок вычисления: ( )

Операторы выполняются в порядке слева направо и имеют одинаковый приоритет вычисления. Это значит, что умножение (*) не вычисляется до вычитания (–). 2*(5+3) не равно 2*5+3. Скобки () используются, чтобы изменить порядок вычислений, когда порядок вычислений слева направо не подходит.

Многозначные атрибуты

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

Например:
Trim([proxyAddresses]) выполняет обрезку (Trim) для каждого значения атрибута proxyAddress.
Word([proxyAddresses],1,"@") & "@contoso.com" Для каждого значения со знаком @ замените домен на @contoso.com.
IIF(InStr([proxyAddresses],"SIP:")=1,NULL,[proxyAddresses]) Найдите SIP-адрес и удалите его из значений.

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

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

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