您可以使用 LDAP 搜索规则,通过 Google Cloud Directory Sync (GCDS) 将数据从 LDAP 目录服务器同步到贵组织的 Google 账号。添加某一项搜索规则后,系统会在下一次执行同步时同步与该搜索规则匹配的数据。而不符合搜索规则的数据会被移除。
重要提示:Google 不会为 LDAP 查询提供调试或支持服务。
基本 LDAP 查询语法
您可以创建任何自定义 LDAP 搜索查询,只要符合 RFC 2254 即可。
运算符 | 字符 | 用途 |
---|---|---|
等于 | = | 创建一个要求某一字段必须拥有给定值的过滤器。 |
任意 | * | 代表可以等于除 NULL 以外任何值的字段。 |
括号 | ( ) | 分离过滤器,以让其他逻辑运算符发挥作用。 |
与 | & | 结合过滤器。相应系列的所有条件都必须为真。 |
或 | | | 结合过滤器。相应系列中必须至少有一个条件为真。 |
非 | ! | 排除符合过滤条件的所有对象。 |
添加 LDAP 搜索规则
以下步骤对任何类型的搜索规则都适用。
- 在配置管理器中,依次前往用户账号搜索规则。
- 点击 Add Search Rule(添加搜索规则)。
- 从菜单中选择所需选项,以选定搜索规则的适用范围:
- Sub-tree(子树)- 搜索规则适用于基本 DN 对象及其所有子对象。
- One-level(一级)- 搜索规则会应用于基本 DN 对象的直接子级,但会排除基本 DN 本身。
- 对象 - 搜索规则仅应用于基本 DN 对象。
- 在规则部分,使用 LDAP 搜索查询语法输入搜索规则。
请参阅下面的示例。
- 在基本 DN 部分,执行以下操作之一:
- 输入基本 DN。
- 将此字段留空,以使用 LDAP Connection(LDAP 连接)页面上指定的基本 DN。
- 点击测试 LDAP 查询以检查查询结果。
您可以查看所找到对象的数量以及前 5 条结果。结果中不会包含没有电子邮件地址的用户。 - 点击确定。
- (可选)要添加更多搜索规则,请重复上述步骤。
从搜索规则中排除数据
排除规则
您可以使用排除规则来排除您不希望同步到贵组织 Google 账号的 LDAP 目录服务器上的数据。例如,您可以使用 LDAP 搜索规则指定应同步所有电子邮件地址。然后,使用排除规则来忽略以特定字符串开头的任何电子邮件地址。
用户搜索查询
借助用户搜索查询,GCDS 可识别您的 Google 账号中与查询结果匹配的用户。如果 Google 用户与结果不匹配,则 GCDS 会执行同步,就好像该用户不存在一样。
如果您要使用用户搜索查询,请确保 LDAP 搜索规则不会返回存在于 Google 中但不包含在查询结果中的用户。否则,GCDS 每次同步时都会尝试创建用户。
例如,yuri@altostrat.com 存在于您的 Google 账号中,同时也在 LDAP 搜索规则中返回。如果您使用 email:m* 作为用户搜索查询,则 GCDS 会尝试在每次同步期间创建 yuri@altostrat.com,因为 yuri@altostrat.com 没有以字母 m 开头。
有关详情,请参阅使用排除规则和查询省略数据。
LDAP 查询和搜索规则示例
以下是一些通用示例,可能不适用于您的环境。此外,所有换行符只起到页面排版作用。
基本 LDAP 查询- 所有对象(可能会导致加载问题)
objectClass=*
- 指定为“person”类别的所有用户对象
(&(objectClass=user)(objectCategory=person))
- 仅邮寄名单
(objectCategory=group)
- 仅公开的文件夹
(objectCategory=publicfolder)
- 所有用户对象,但排除主电子邮件地址以“test”开头的用户对象
(&(&(objectClass=user)(objectCategory=person))(!(mail=test*)))
- 所有用户对象,但排除主电子邮件地址以“test”结尾的用户对象
(&(&(objectClass=user)(objectCategory=person))(!(mail=*test)))
- 所有用户对象,但排除主电子邮件地址包含“test”一词的用户对象
&(&(objectClass=user)(objectCategory=person))(!(mail=*test*)))
- 指定为“person”类别且属于某个群组或分发列表的所有用户对象和别名对象
(|(&(objectClass=user)(objectCategory=person))(objectCategory=group))
- 指定为“person”类别的所有用户对象、所有群组对象以及所有联系人,但排除有任何值被指定为“extensionAttribute9”的对象和联系人
(&(|(|(&(objectClass=user)(objectCategory=person))(objectCategory=group))(objectClass=contact))(!(extensionAttribute9=*)))
- 由 DN (CN=Group,OU=Users,DC=Domain,DC=com) 标识的群组的所有成员用户
(&(objectClass=user)(objectCategory=person)(memberof=CN=Group,OU=Users,DC=Domain,DC=com))
- 返回所有用户
- Active Directory:(&(objectCategory=person)(objectClass=user))
- OpenLDAP:(objectClass=inetOrgPerson)
- HCL Domino:(objectClass=dominoPerson)
- (在 Domino LDAP 目录中)邮件地址指定为“person”或“group”的所有对象
(&(|(objectClass=dominoPerson)(objectClass=dominoGroup)(objectClass=dominoServerMailInDatabase))(mail=*))
- 在 Active Directory 中拥有电子邮件地址的所有有效(未停用)用户
(&(objectCategory=person)(objectClass=user)(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
- 群组 DN 所定义的 Group_1 或 Group_2 的所有成员用户
(&(objectClass=user)(objectCategory=person)(|(memberof=CN=Group_1,cn=Users,DC=Domain,DC=com)(memberof=CN=Group_2,cn=Users,DC=Domain,DC=com)))
- extensionAttribute1 值为“Engineering”或“Sales”的所有用户
(&(objectCategory=user)(|(extensionAttribute1=Engineering)(extensionAttribute1=Sales)))
- 在 Active Directory 中以递归方式检索指定群组下嵌套的群组成员
(&(objectCategory=person)(objectClass=user)(memberOf:1.2.840.11356.1.4.1941:=CN=MyGroup,CN=Users,DC=domain,DC=com))
- 在 Active Directory 中通过 ObjectGUID 对群组成员资格进行查询。群组 ObjectGUID 属性的十六进制值为 4e542fe785b1bb274e542fe785b1bb27
(&(objectCategory=person)(objectClass=user)(memberOf=GUID=4e542fe785b1bb274e542fe785b1bb27))
优化搜索规则
您可以优化搜索规则,提高同步效率。
示例 1:根据特定电子邮件地址来返回用户 | 用例 |
---|---|
用户搜索规则:(&(objectClass=user)(objectCategory=person)(mail=*)) | 您可以使用 mail= 查询来优化您的规则,而不是使用基本规则来返回所有用户。
由于 LDAP 服务器和 GCDS 无需处理应予以舍弃的条目,因此可以提高同步效率。 |
示例 2:根据特定电子邮件地址匹配字符串来返回用户 | 用例 |
---|---|
用户搜索规则:(&(objectClass=user)(objectCategory=person)(mail=*)(!(mail=sales*))) | 您可以通过匹配字符串来优化规则,而不是使用基本规则和排除规则来返回电子邮件地址不包含 sales 的所有用户。
这样,LDAP 服务器和 GCDS 便无需处理应予以舍弃的条目。此外,您无需设置排除规则,也不必考虑优先级。 |
相关主题
“Google”、Google Workspace 以及相关标志和徽标是 Google LLC 的商标。其他所有公司名和产品名是其各自相关公司的商标。