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


Microsoft Entra Connect Sync: Understanding Declarative Provisioning Expressions

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

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

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

The attributes are strongly typed. Функция принимает только атрибуты правильного типа. It's also case-sensitive. Both function names and attribute names must have proper casing or an error is thrown.

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

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

Функции

Декларативная подготовка использует множество функций для обеспечения возможности преобразования значений атрибутов. These functions can be nested so the result from one function is passed in to another function.

Function1(Function2(Function3()))

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

Параметры

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

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

Имя параметра Комментарий
Domain.Netbios Формат Netbios домена, импортируемого в данный момент, например FABRIKAMSALES
Domain.FQDN Формат полного доменного имени домена, импортируемого в данный момент, например sales.fabrikam.com
Domain.LDAP Формат LDAP импортируемого домена, например DC=sales,DC=fabrikam,DC=com
Forest.Netbios Netbios format of the forest name currently being imported, for example FABRIKAMCORP
Forest.FQDN FQDN format of the forest name currently being imported, for example fabrikam.com
Forest.LDAP LDAP format of the forest name currently being imported, for example DC=fabrikam,DC=com

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

Here's an example that populates the metaverse attribute domain with the netbios name of the domain where the user is located:
domain <— %Domain.Netbios%

Операторы

The following operators can be used:

  • сравнения: <, <=, <>, =, >, >=
  • Mathematics: +, -, *, -
  • String: & (concatenate)
  • Logical: && (and), || (or)
  • порядок оценки: ( )

Операторы оцениваются слева направо и имеют тот же приоритет оценки. That is, the * (multiplier) isn't evaluated before - (subtraction). 2*(5+3) не совпадает с 2*5+3. Квадратные скобки () используются для изменения порядка оценки, если слева направо порядок оценки не подходит.

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

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

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

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

Overview topics

Reference topics