Articles of openldap

通过SSL为OpenLDAP设置Linux客户端

我正在尝试使用运行OpenLDAP的服务器(并使用OpenSSL,而不是GnuTLS)来设置SSL。 服务器似乎工作正常:我可以使用ldap://进行身份validationldap://也可以在Apache Directory Studio中使用ldaps:// 。 我也可以从客户端使用LDAPS,只要在/etc/ldap.conf中有这个设置: tls_checkpeer no 只要我尝试使用tls_checkpeer yes SSL连接被拒绝。 我在服务器上有以下设置: olcTLSCACertificateFile /etc/ssl/certs/cacert.pem olcTLSCertificateFile /etc/ssl/private/newcert.pem olcTLSCertificateKeyFile /etc/ssl/private/newreq.pem 客户有这些相关的条目: # ssl on uri ldaps://192.168.1.15 tls_checkpeer no # tls_cacertdir /etc/ssl/certs # tls_cacertfile /etc/ssl/certs/cacert.pem 用户可以访问文件/etc/ssl/certs/cacert.pem进行阅读。 通过上述configuration,它可以工作。 如果我取消注释两个注释tls_*configuration条目之一,并更改为tls_checkpeer yes它会失败。 我已经尝试使用证书( tls_cacertfile )cacert.pem和newcert.pem,它不起作用。 cacert.pem有一个—–BEGIN CERTIFICATE—–部分,和newcert.pem一样。 但是,cacert.pem在X509v3 extensions下有这个: X509v3 Basic Constraints: CA:TRUE …和newcert.pem文件在同一节中有这个: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL […]

从OS X Lion Server添加apple.schema失败

当我尝试将Apple.schema添加到在Debian上运行的OpenLDAP时,这是我得到的错误; root@directory:~# ldapadd -Y EXTERNAL -H ldapi:/// -f apple.schema SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 ldapadd: invalid format (line 1) entry: "" ldapadd: invalid format (line 25) entry: "" ldapadd: invalid format (line 33) entry: "" ldapadd: invalid format (line 44) entry: "" ldapadd: invalid format (line 52) entry: "" ldapadd: invalid […]

OpenLDAP身份validationUID与CN问题

我在使用uidvalidation服务时遇到了问题,我认为这是用户身份validation的标准方法。 所以基本上,我的用户是这样添加到LDAP: # jsmith, Users, example.com dn: uid=jsmith,ou=Users,dc=example,dc=com uidNumber: 10003 loginShell: /bin/bash sn: Smith mail: [email protected] homeDirectory: /home/jsmith displayName: John Smith givenName: John uid: jsmith gecos: John Smith gidNumber: 10000 cn: John Smith title: System Administrator 但是,当我尝试使用典型的webapps或这样的服务进行身份validation: jsmith password 我得到: ldapsearch -x -h ldap.example.com -D "cn=jsmith,ou=Users,dc=example,dc=com" -W -b "dc=example,dc=com" Enter LDAP Password: ldap_bind: Invalid credentials […]

OpenDirectory / LDAP查询语法来查找GADS组中的所有用户

我想构build一个LDAP查询来查找属于我的OS X 10.9服务器上的“Google Apps用户”组(简称:googleappsusers)的所有用户。 当我在Google Apps Directory Sync(GADS)中运行以下查询时,它将返回零个用户,尽pipe事实上我确实在googleappsusers组中有一个用户。 (&(objectCategory=users)(memberOf=cn=googleappsusers,cn=groups,dc=nyc1,dc=domain,dc=com))

如何在OpenLDAP中将用户设置为RootDN

我在Ubuntu 14.04上安装了OpenLDAP和phpLDAPadmin 。 我有一个默认的RootDN ,就像这样: cn=admin,dc=example,dc=com 然后我创build了一些这样的users和组织单位: ou=users,dc=example,dc=com ou=groups,dc=example,dc=com 我也创build了一个Main Admin用户,这将是我的所有服务的pipe理员: cn=Main Admin,ou=users,dc=example,dc=com 现在我想要Main Admin作为RootDN (所以,只有一个pipe理员为所有服务包括LDAP服务)。 有可能做到这一点,怎么做? 只需通过更改olcRootDN值? 密码发生了什么? 我应该将olcRootPW设置为与Main Admin密码相同吗?

无法获得“memberof”在我的OpenLDAPconfiguration工作

我试图在Debian 7.7服务器上设置OpenLDAP。 虽然基本身份validation似乎工作,我不能让“成员”覆盖工作。 作为LDAP新手,所有的成员configuration对我来说似乎都过于复杂 – 尽pipe已经阅读了大量的教程。 在我目前的configuration中,我大多遵循http://gos.si/blog/installing-openldap-on-debian-squeeze-with-olc 我主要说,因为我跳过了“ 创buildLDAP数据库 ”一节中的步骤。 原因是,我无法创build我的数据库,因为所需的olcRootDN( cn=admin,dc=indunet,dc=it )已经被使用。 在使用aptitude安装slapd后,它已经在那儿了。 也许这是从以前的安装遗留下来的,但我做了aptitude purge slapd ,甚至删除了/var/lib/ldap/目录,确保没有更多.ldif文件,所以我不知道为什么cn=admin,dc=indunet,dc=it来自。 所以,我试着用这种方式configuration预先存在的数据库olcDatabase={1}hdb,cn=config (我已经添加了突出显示的条目): 作为参考,父组(“数据库”)具有以下属性: (全尺寸在这里 ) 只有使用绑定DN cn=admin,cn=configlogin时才能看到此cn=admin,cn=config 。 我不能添加用户/组(可能是因为这只是configuration,对吧?)。 所以我添加了几个组和一个用户使用DN cn=admin,dc=indunet,dc=it在phpLDAPadmin中。 在Apache DS中,configuration看起来像这样: 我不确定memberOf是否应该在这个屏幕中可见(我猜是这样),但无论如何,这个属性肯定不会被发送到依赖它的客户端。 如果我的configuration完全被破坏,我不会感到惊讶,但我花了2天的时间来解决这个问题,并诚实地用完了想法… 更新 随着时间的推移,我玩弄了LDAP,这是我新的当前树:

OpenLDAP高级ACLconfiguration

我的OpenLDAP服务器有多个DIT。 我把用户cn = config设置为root,这样cn = config就可以访问所有DIT(每个DIT)。 此外,每个DITpipe理员都标识为cn = admin,$ suffix [例如cn = admin,dc = example,dc = com或其他]。 我为pipe理员和用户对象添加了一个自定义的NAME属性。 该属性被命名为:“serviceLevel”,值为“挂起”或“正常”。 该属性是可选的,当它不存在时,我们将其解释为正常 – 不会中止。 目前,当serviceLevel设置为“暂停”时,我的ACL暂停常规用户,并不暂停本地/ DITpipe理员。 我需要pipe理员无法像普通用户那样进行身份validation。 样本当前的LDIF设置ACL如下: dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange filter=(serviceLevel=suspended) by dn="cn=config" write by * none olcAccess: {1}to attrs=userPassword,shadowLastChange filter=(!(serviceLevel=suspended)) by self write by anonymous auth by dn="cn=admin,dc=directory,dc=com" write […]

我如何使用openssl通过端口389而不是636(TLS)下载我的ldap证书?

我曾经使用以下命令从LDAP下载我的服务器SSL证书,以将它们添加到tomcat / java密钥库: openssl s_client -connect 10.140.136.192:636 由于LDAP SSL(端口636)已被弃用,我没有端口636可用了。 我试图findopenssl s_client各种咒语,例如-starttls和-tls1_2但是没有一个产生证书。 什么是这个魔术词呢?

如何在OpenLDAP中设置size.pr?

我认为我的一个LDAP客户端在OpenLDAP中达到了分页限制。 客户看到的具体错误是下面的Java事情: REASON: Caught exception running LDAP sync. [LDAP: error code 2 – paged results cookie is invalid]; nested exception is javax.naming.CommunicationException: [LDAP: error code 2 – paged results cookie is invalid]; remaining name 'dc=example,dc=com' 谷歌search这个错误提出了LDAP分页和相关限制的讨论。 关于OpenLDAP的这个文档限制了提到olcSizeLimit和size.pr 我能够使用此ldif将我的olcSizeLimit从500更改为-1: dn: cn=config changetype: modify replace: olcSizeLimit olcSizeLimit: -1 不幸的是我的客户仍然看到它的分页问题。 size.pr是一个slapd.conf设置,而我的OpenLDAP使用slapd.d。 在LDAP模式中查找olcDbClientPr ,我发现olcDbClientPr被描述为'PagedResults handling' 。 另外,以下是OpenLDAP源代码中的描述: { "client-pr", […]

OpenLDAP ACL防止匿名用户获取所有组的列表

我正在尝试保护现有的OpenLDAP安装,要求允许匿名用户检索有关logging的信息(如果它知道LDAP中特定用户条目的使用情况)。 假设结构如下: dc=example,dc=com ou=People uid=user1 uid=user2 ou=Groups cn=user1 memberUid:user1 cn=user2 memberUid:user2 cn=common memberUid:user1 memberUid:user2 现在,如果匿名人员知道在LDAP中存在条目uid = user1,他们应该能够检索该用户所属的组的列表。 但是,他们不应该能够发现其他群体。 因此, ldapsearch -b "ou=Groups,dc=example,dc=com"将不会返回任何内容,而ldapsearch -b "ou=Groups,dc=example,dc=com" "(&(objectClass=posixGroup)(memberUid=user1))"应该返回user1所在的所有组。 到目前为止,我已经尝试了几个不同的ACL。 它既可以是search工作,也可以列出所有组,或者不能列出所有组,但search不起作用。 有没有办法使用ACL实现所需的行为? PS:数据库使用标准的nis架构,因为数据库已经有数据更改为rfc2307bis不是一个选项(还有其他原因,为什么在这种情况下这种改变是不可能的)。