Microsoft Entra Connect Sync:了解声明性预配表达式

Microsoft Entra Connect Sync 基于 Forefront Identity Manager 2010 中首次引入的声明性预配而构建。 它允许你实现完整的标识集成业务逻辑,而无需编写已编译的代码。

声明性预配的重要组成部分是属性流中使用的表达式语言。 使用的语言是 Microsoft visual Basic® for Applications (VBA) 的子®集。 此语言在 Microsoft Office 中使用,并且具有 VBScript 体验的用户也将识别它。 声明性预配表达式语言仅使用函数,不是结构化语言。 它不提供任何方法或语句。 函数改为嵌套以表示程序流。

有关详细信息,请参阅欢迎使用适用于 Office 2013 的 Visual Basic 应用程序语言参考

属性属于强类型。 函数仅接受正确类型的属性。 它也区分大小写。 函数名称和属性名称都必须具有正确的大小写,否则会引发错误。

语言定义和标识符

  • 函数的名称后跟括号中的参数:FunctionName(参数 1,参数 N)。
  • 属性由方括号标识:[attributeName]
  • 参数由百分比符号标识:%ParameterName%
  • 字符串常量用引号括起来:例如,“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

以下示例使用用户所在的域的 netbios 名称填充 metaverse 属性域:
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 地址并将其从值中删除。

后续步骤

概述主题

参考主题