如何使用 LDIF 方法使用 SSL 配置 OpenLDAP 作为 Active Directory 的代理

如何使用 LDIF 方法使用 SSL 配置 OpenLDAP 作为 Active Directory 的代理

编辑:由于似乎没有人真正知道 OpenLDAP 是如何工作的(除了他们的开发人员),我最终放弃了它,转而使用 GLAuth,它通过一个简单的配置文件更容易设置。我设法在几分钟内解决了我的问题。我知道OpenLDAP也许更强大或者有更多的功能,但是代理AD,使用OpenLDAP就像用大锤敲开坚果,所以,也许你想避免它。

在我的公司,我们有一个 Active Directory 来管理用户,还有许多办公室外的 Web 服务,我们希望他们的登录系统通过 ldap 来完成。我想通过 SSL 发布 LDAP 并使所有这些 Web 服务登录到我们的 AD,但我不想公开 AD,甚至不通过 SSL,所以我想在我们的 DMZ 中设置一个到 AD 的 OpenLDAP 代理并连接以只读模式写入 AD。我根本不是 LDAP 专家,当我过去设置其他 LDAP 时,我按照几个步骤运行一个 LDAP,然后使用 Apache Directory Studio 或 LAM 管理它们,我预计这会更容易完成好吧,这似乎比我预期的更难实现。

我已经处理这个问题好几个星期了,但我找不到任何方法来完成它。每个人都说 slapd.conf 已被弃用,并且必须不再使用,并且有很多关于如何通过 LDIF 使用 SSL 配置 OpenLDAP 的教程,但我找不到任何通过 LDIF 进行配置的方法openldap 与 ssl 作为 AD 代理

我能找到将 LDAP 配置为 AD 代理的唯一方法是在 samba 站点上使用此 slapd.conf 文件

### Schema includes ###########################################################
include                 /etc/openldap/schema/core.schema
include                 /etc/openldap/schema/cosine.schema
include                 /etc/openldap/schema/inetorgperson.schema
include                 /etc/openldap/schema/misc.schema
include                 /etc/openldap/schema/nis.schema

## Module paths ##############################################################
modulepath              /usr/lib64/openldap/
moduleload              back_ldap
moduleload              rwm

# Main settings ###############################################################
pidfile                 /var/run/openldap/slapd.pid
argsfile                /var/run/openldap/slapd.args

### Database definition (Proxy to AD) #########################################
database                ldap
readonly                yes
protocol-version        3
rebind-as-user
uri                     "ldap://{AD-Hostname/IP}:389"
suffix                  "{your Domain DN}"
overlay                 rwm
rwm-map                 attribute       uid     sAMAccountName

### Logging ###################################################################
loglevel                0

我还修改了schemas/inetorgperson.schema,并添加了这个

################
#AD schema
################
attributetype ( 1.2.840.113556.1.4.221
      NAME 'sAMAccountName'
      SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )
################

schemas/inetorgperson.ldif最后,添加sAMAccountName 属性

olcAttributeTypes: ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

olcObjectClasses: ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RFC2
798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL MAY
( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ em
ployeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ ini
tials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo
$ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIdentifier $ pre
ferredLanguage $ userSMIMECertificate $ sAMAccountName $ userPKCS12i ) )

它起作用了,但是在删除目录slapd.d并重新创建它之后

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

(然后应用适当的所有权)。

显然,当我这样做时,我之前使用 LDIF 的配置 - 创建本地数据库并设置 SSL - 被删除了,并且由于我使用了 slapd.conf 并创建了 sladp.d 目录,我的 ldap 管理员帐户也被删除了,我无法再次配置 SSL 或添加更多数据库。

所以,我需要知道如何将它们混合在一起:或 slapd.conf 文件示例来设置 AD 代理让管理员用户使用未来的 LDIF 修改 LDAP,或用于配置 AD 代理的 LDIF 示例。

相关内容