Поделиться через


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

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

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

Дополнительные сведения см. в справочнике по языку Visual Basic для приложений для Office 2013.

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

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

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

Функции

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

Function1(Function2(Function3()))

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

Параметры

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

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

Имя параметра Комментарий
Domain.Netbios Формат Netbios домена, импортируемого в данный момент, например FABRIKAMSALES
Домен.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

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

Операторы

Можно использовать следующие операторы:

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

Операторы оцениваются слева направо и имеют тот же приоритет оценки. То есть значение * (умножение) не вычисляется до - (вычитание). 2*(5+3) не совпадает с 2*5+3. Квадратные скобки () используются для изменения порядка оценки, если слева направо порядок оценки не подходит.

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

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

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

Дальнейшие действия

темы обзора

справочные темы