标签: openldap

如何使用php获取ldap树结构?

ou's我有一个包含和的用户的活动目录记录subou's。我想得到AD的整个树形结构。

例如,

- Group A
    - Sub Group a1
    - Sub Group a2
 - Group B
    - Sub Group b1
    - Sub Group b2
 - Group C
    - Sub Group c1
    - Sub Group c2
Run Code Online (Sandbox Code Playgroud)

我有一份所有ou's和的清单subou's。但我希望它像上面的例子一样结构。

我的代码:

$ldap_base_dn = 'DC=example,DC=com'; 
$filter="(objectClass=organizationalunit)";
$arr= array("dn", "ou");
$sr=ldap_search($ldap_connection, $ldap_base_dn, $filter, $arr);
$info = ldap_get_entries($ldap_connection, $sr);
for ($i=0; $i < $info["count"]; $i++) {
  echo $info[$i]["dn"]."<br>";
} 
Run Code Online (Sandbox Code Playgroud)

php ldap active-directory openldap ldap-query

5
推荐指数
0
解决办法
1750
查看次数

openLDAP:使用 userPrincipalName 登录

我已经设置了一个openLdap服务器实例。

暂时登录需要提供用户的用户名dn,例如

"cn=151test,cn=somecn,ou=someou,dc=mydomain,dc=com"

如何以userPrincipalName以下形式启用登录

151test@mydomain.com

编辑:这似乎userPrincipalName是一个属性user objectClass,可用于Active Directory,但不可开箱即用地用于 所使用的默认架构openLDAP

所以问题或多或少变成了:

如何通过 openLDAP 使用(导入)符合 AD 的架构userPrincipalName启用以用户名登录

active-directory openldap

5
推荐指数
1
解决办法
3338
查看次数

LMDB:如何有效地存储大值

我一直在使用 LMDB 来存储键值对,其中值大小约为 200 字节。我遇到了值大小可能增长到 8KB 或更多的情况。

根据: https: //lmdb.readthedocs.io/en/release/#storage-efficiency-limitshttps://github.com/lmdbjava/benchmarks/blob/master/results/20160710/README.md,LMDB是对于以页面大小 (4096KB) 递增的值大小来说最有效,否则可能会因溢出页面而导致碎片。

我的主要问题是:

  1. 我是否需要将值分解为页面大小增量以获得最佳性能?
  2. LMDB 中按字典顺序排序的键是否放置在相邻页面中?假设我的值约为 14KB,我将其分解为 8K、4K 和 2K 块,键值为:key_chunk1、key_chunk_2、key_chunk_3,它们会在相邻页面中吗?假设最后一个块(2KB 值)位于新页面上,下一个按字典顺序排序的键为 4K,这是否会位于新页面中,因为它无法容纳在现有页面中?

openldap lmdb

5
推荐指数
0
解决办法
1194
查看次数

在LDAP中为新的objectClasses选择RDN?

在LDAP中创建新的objectClasses时选择RDN的最佳做法是什么?我知道你可以选择uid,cn,ou等,但是应该遵循哪些做法?

adam jndi ldap active-directory openldap

4
推荐指数
1
解决办法
5252
查看次数

模板值错误[gidNumber] phpLDAPadmin

我尝试使用phpLDAPadmin连接openldap服务器,但是当我尝试使用Generic:User Account创建新的用户帐户时,我收到错误:

"模板值错误此模板使用属性[gidNumber]的选择列表,但选择列表为空.您可能需要在LDAP服务器中创建一些依赖项,以便此属性使用值呈现.或者,您可以在模板文件中定义适当的选择值."

我是ldap的新手,我曾尝试搜索与gidNumber相关的错误,但没有结果,我不知道如何解决它.但是,我可以使用软件LdapAdmin连接服务器并添加新的uid acc,我使用Ubuntu Server 13.04安装ldap服务器.希望有人可以帮助我.

谢谢.

openldap

4
推荐指数
2
解决办法
2万
查看次数

Ldapsearch错误代码32和49

执行下一个代码时出现错误

ldapsearch -xLLL -D "cn=admin,dc=geobolivia,dc=gob,dc=bo" -W > dump-geobolivia.ldif
Run Code Online (Sandbox Code Playgroud)

我的错误是

No such object (32)
Run Code Online (Sandbox Code Playgroud)

而出现在syslog文件中的错误是下一个

Dec 19 18:49:00 geobolivia slapd[3045]: conn=1050 op=103 SRCH base="ou=users,dc=geobolivia,dc=gob,dc=bo" scope=1 deref=3 filter="(&(objectClass=*)(mail=*@*)(givenName=*))"
Dec 19 18:49:00 geobolivia slapd[3045]: <= bdb_substring_candidates: (mail) not indexed
Dec 19 18:49:00 geobolivia slapd[3045]: conn=1050 op=103 SEARCH RESULT tag=101 err=0 nentries=2 text=
Dec 19 18:49:00 geobolivia slapd[3045]: conn=1050 op=104 SRCH base="ou=groups,dc=geobolivia,dc=gob,dc=bo" scope=1 deref=3 filter="(&(objectClass=posixGroup)(cn=el_*))"
Dec 19 18:49:00 geobolivia slapd[3045]: <= bdb_substring_candidates: (cn) not indexed
Dec 19 18:49:00 geobolivia slapd[3045]: conn=1050 op=104 SEARCH RESULT …
Run Code Online (Sandbox Code Playgroud)

cas ldap openldap

4
推荐指数
1
解决办法
2万
查看次数

openldap + kerberos-无法访问任何KDC领域

我在centos vm中有一个ldap服务器+ kerberos设置(使用boot2docker vm运行),并且我试图将它们用于我的Web应用程序身份验证(从主机-我的macbook)。

对于身份验证,我需要使用“ GSSAPI”机制,而不是简单的绑定。'简单绑定'可以正常工作,但是基于“ GSSAPI”的方法不能正常工作。

每当我尝试使用“ ldapwhoami”命令时,都会出现以下错误(我在运行ldapwhoami之前运行“ kinit”以确保我拥有有效的kerberos TGT)

ldap_sasl_interactive_bind_s: Local error (-2)
    additional info: SASL(-1): generic failure: GSSAPI Error:  Miscellaneous failure (see text (unable to reach any KDC in realm DEV.EXAMPLE.COM, tried 1 KDC)
Run Code Online (Sandbox Code Playgroud)

请注意,LDAP服务器和kerberos服务器端运行正常,这意味着我在centos VM中使用了“ ldapsearch”,“ ldapwhoami”之类的东西对其进行了测试,其中我安装了ldap服务器+ kerberos,它的工作正常。我能够看到适合他们的输出。

仅当我从笔记本电脑(客户端)尝试相同的命令时,我才会收到错误(以上错误)。

注意:甚至我也从笔记本电脑创建了主机主体(host/mymacbook.dev@DEV.EXAMPLE.COM),并使用'kadmin'将其添加到本地krb5.keytab文件中。

以下是我的客户端配置:

客户端(macbook)中的/etc/krb5.conf文件:

[libdefaults]
  default_realm    = DEV.EXAMPLE.COM
  ticket_lifetime  = 24000
  dns_lookup_realm = false
  dns_lookup_kdc   = false

[realms]
  DEV.EXAMPLE.COM = {
    kdc = d4dc7089282c
    admin_server = krb.example.com
  }

[domain_realm]
  .dev.example.com = DEV.EXAMPLE.COM
  dev.example.com = DEV.EXAMPLE.COM
  .example.com = DEV.EXAMPLE.COM …
Run Code Online (Sandbox Code Playgroud)

kerberos ldap openldap docker kdc

4
推荐指数
1
解决办法
9442
查看次数

无法通过pip安装python-ldap

我无法python-ldap通过pip 安装,出现以下错误:

$ sudo pip3.4 install python-ldap
Downloading/unpacking python-ldap
  Downloading python-ldap-2.4.19.tar.gz (138kB): 138kB downloaded
  Running setup.py (path:/tmp/pip_build_root/python-ldap/setup.py) egg_info for package python-ldap
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip_build_root/python-ldap/setup.py", line 53
        print name + ': ' + cfg.get('_ldap', name)
                 ^
    SyntaxError: invalid syntax
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/tmp/pip_build_root/python-ldap/setup.py", line 53

    print name + ': ' + cfg.get('_ldap', name) …
Run Code Online (Sandbox Code Playgroud)

python openldap python-3.x

4
推荐指数
1
解决办法
6554
查看次数

Python ldap3 LDAPSocketOpenError无法发送消息,socket未打开

我在Python编写代码,ldap3试图在CentOS上的OpenLDAP中创建用户.我的本地开发机器运行的是Windows 8 64位.以下是我的代码.

from ldap3 import Server, Connection, ALL

# define the server
s = Server('ldap://ldap.abcd.com:389', get_info=ALL)  

# define the connection
c = Connection(s, user='cn=Manager,dc=mydomain,dc=com', password='Super1')

# perform the Add operation
c.add('uid=user3,ou=People,dc=abcd,dc=com',['person','organizationalPerson','inetOrgPerson', 'posixGroup', 'top','shadowAccount'], {'givenName': 'user3firstname','sn': 'user3lastname', 'uidNumber' : 520,'gidNumber' : 521,'uid': 'user3','cn': 'user3user3lastname'})

# close the connection
c.unbind()
Run Code Online (Sandbox Code Playgroud)

Server和Connection类工作正常.我想因为如果我只运行那2个语句,它就不会产生下面的错误.

LDAPSocketOpenError at /adminservice/users/
unable to send message, socket is not open
Request Method: GET
Request URL:    http://127.0.0.1:8000/adminservice/users/
Django Version: 1.8.4
Exception Type: LDAPSocketOpenError
Exception Value:    
unable to send message, socket …
Run Code Online (Sandbox Code Playgroud)

python windows ldap centos openldap

4
推荐指数
1
解决办法
4835
查看次数

在openLDAP中创建新的ObjectClass和属性

我是LDAP的新手,正在搜索添加简单的objectClass和Attributes,但仍然出现错误,我想要一个带有简单字符串属性'functionId'的对象'adminFunc',因此我将adminFunc.schema和adminFunc.ldif复制到了架构中夹:

adminFunc.schema:

objectidentifier adminFuncSchema 1.3.6.1.4.1.X.Y
objectidentifier funcAttrs adminFuncSchema:3
objectidentifier funcClass adminFuncSchema:4

attributetype ( funcAttrs:2
  NAME 'functionId'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  ORDERING caseIgnoreOrderingMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} )  

objectclass ( 
  funcClass:1
  NAME 'adminFunc'
  DESC 'Admin permission'
  SUP ( top ) AUXILIARY
  MAY functionId )
Run Code Online (Sandbox Code Playgroud)

adminFunc.ldif :(已通过运行slaptest自动生成)

dn: cn=adminFunc
objectClass: olcSchemaConfig
cn: adminFunc
olcObjectIdentifier: adminFuncSchema 1.3.6.1.4.1.X.Y
olcObjectIdentifier: funcAttrs adminFuncSchema:3
olcObjectIdentifier: funcClass adminFuncSchema:4
olcAttributeTypes: ( funcAttrs:2 NAME 'functionId' EQUALITY caseIgnoreMat
 ch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
  1.3.6.1.4.1.1466.115.121.1.15{255} )
olcObjectClasses: ( funcClass:1 NAME 'adminFunc' DESC …
Run Code Online (Sandbox Code Playgroud)

schema ldap openldap

4
推荐指数
1
解决办法
4234
查看次数

标签 统计

openldap ×10

ldap ×6

active-directory ×3

python ×2

adam ×1

cas ×1

centos ×1

docker ×1

jndi ×1

kdc ×1

kerberos ×1

ldap-query ×1

lmdb ×1

php ×1

python-3.x ×1

schema ×1

windows ×1