加载 LDAP

使用 'apoc.load.ldap' 可以在任何启用 LDAP v3 的目录上执行查询,结果将转换为条目流。然后可以使用这些条目来更新或创建图结构。

限定名称 类型 版本

apoc.load.ldap

apoc.load.ldap("key" or {connectionMap},{searchMap}) 从 ldap 源加载条目(yield entry)

存储过程

APOC 扩展

参数

参数 属性 描述

{connectionMap}

ldapHost

ldap服务器:端口,如果省略端口,将使用默认端口 389

loginDN

这是对 ldap 服务器具有读取权限的 ldap 服务器用户的 dn

loginPW

这是 loginDN 使用的密码

ssl

布尔值,指示是否使用 SSL 连接(默认为 false)

{searchMap}

searchBase

从此条目开始执行搜索

searchScope

SCOPE_ONE(一级)或 SCOPE_SUB(所有子级)或 SCOPE_BASE(仅基本节点)

searchFilter

在此处放置标准 ldap 搜索过滤器,例如:(objectClass=*) 表示 ldap 条目必须具有 objectClass 属性。

attributes

可选。如果省略,将返回条目的所有属性。如果指定,则仅返回指定的属性。无论属性设置如何,返回的条目始终具有 "dn" 属性。

加载 LDAP 示例

从 ldap 服务器检索组成员信息
call apoc.load.ldap({ldapHost : "ldap.forumsys.com", loginDN : "cn=read-only-admin,dc=example,dc=com", loginPW : "password"},
{searchBase : "dc=example,dc=com",searchScope : "SCOPE_SUB"
,attributes : ["uniqueMember","cn","uid","objectClass"]
,searchFilter: "(&(objectClass=*)(uniqueMember=*))"}) yield entry
return entry.dn,  entry.uniqueMember
entry.dn entry.uniqueMember

"ou=mathematicians,dc=example,dc=com"

["uid=euclid,dc=example,dc=com", "uid=riemann,dc=example,dc=com", "uid=euler,dc=example,dc=com", "uid=gauss,dc=example,dc=com", "uid=test,dc=example,dc=com"]

"ou=scientists,dc=example,dc=com"

"ou=italians,ou=scientists,dc=example,dc=com"

"uid=tesla,dc=example,dc=com"

"ou=chemists,dc=example,dc=com"

从 ldap 服务器检索组成员信息并在 Neo4j 中创建结构
call apoc.load.ldap({ldapHost : "ldap.forumsys.com", loginDN : "cn=read-only-admin,dc=example,dc=com", loginPW : "password"},
{searchBase : "dc=example,dc=com",searchScope : "SCOPE_SUB"
,attributes : ["uniqueMember","cn","uid","objectClass"]
,searchFilter: "(&(objectClass=*)(uniqueMember=*))"}) yield entry
merge (g:Group {dn : entry.dn})
on create set g.cn = entry.cn
foreach (member in entry.uniqueMember |
  merge (p:Person { dn : member })
  merge (p)-[:IS_MEMBER]->(g)
)

凭据

为了保护凭据,您可以在 conf/apoc.conf 中配置别名

apoc.conf 语法
apoc.loadldap.myldap.config=<host>:<port> <loginDN> <loginPW>
apoc.conf
apoc.loadldap.myldap.config=ldap.forumsys.com:389 cn=read-only-admin,dc=example,dc=com password

然后

call apoc.load.ldap({ldapHost : "ldap.forumsys.com", loginDN : "cn=read-only-admin,dc=example,dc=com", loginPW : "password"}
, {searchBase : "dc=example,dc=com"
  ,searchScope : "SCOPE_SUB"
  ,attributes : ["cn","uid","objectClass"]
  ,searchFilter: "(&(objectClass=*))"
  }) yield entry
return entry.dn,  entry

变为

call apoc.load.ldap("myldap"
,{searchBase : "dc=example,dc=com"
 ,searchScope : "SCOPE_SUB"
 ,attributes : ["cn","uid","objectClass"]
 ,searchFilter: "(&(objectClass=*))"
 }) yield entry
return entry.dn,  entry
© . All rights reserved.