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 地址并将其从值中删除。
后续步骤
- 如需了解有关配置模型的详细信息,请参阅了解声明性预配。
- 如需了解如何现成地使用声明式预配,请参阅了解默认配置。
- 了解如何在 中使用声明性预配进行实际更改,如何更改默认配置。
概述主题
参考主题