使用AEM 6配置LDAP

LDAP(轻量 ​级目 ​录访 ​问协 ​议)用于访问集中式目录服务。 这有助于减少管理用户帐户所需的工作,因为用户帐户可由多个应用程序访问。 Active Directory是此类LDAP服务器之一。 LDAP通常用于实现单点登录,该登录允许用户在登录后访问多个应用程序。

用户帐户可以在LDAP服务器和存储库之间同步,LDAP帐户详细信息将保存在存储库中。 这允许将帐户分配给存储库组以分配所需的权限和权限。

存储库使用LDAP身份验证来验证这些用户的身份,并将凭据传递到LDAP服务器以进行验证,这是允许访问存储库之前必需的。 为了提高性能,存储库可以缓存已成功验证的凭据,并设置到期超时,以确保在适当的时间段后进行重新验证。

从LDAP服务器中删除帐户时,不再授予验证权限,因此拒绝访问存储库。 也可以清除存储库中保存的LDAP帐户的详细信息。

此类帐户的使用对您的用户是透明的,他们发现从LDAP创建的用户和用户组帐户与仅在存储库中创建的帐户之间没有差异。

在AEM 6中,LDAP支持随附一个新实现,它需要与先前版本不同的配置类型。

所有LDAP配置现在都可作为OSGi配置使用。 可通过Web管理控制台(位于:
https://serveraddress:4502/system/console/configMgr

要让LDAP与AEM结合使用,您需要创建三个OSGi配置:

  1. LDAP标识提供者(IDP)。
  2. 同步处理程序。
  3. 外部登录模块。
注意

观看 Oak的外部登录模块——使用LDAP和Beyond进行身份验证 ,深入了解外部登录模块。

要阅读将Experience Manager与Apache DS配置为一个示例,请参阅将 Adobe Experience Manager 6.5配置为使用Apache Directory Service。

配置LDAP标识提供者

LDAP标识提供者用于定义如何从LDAP服务器检索用户。

它位于管理控制台的 Apache Jackrabbit Oak LDAP标识提供者名称下

以下配置选项可用于LDAP标识提供者:

LDAP提供者名称 此LDAP提供程序配置的名称。
LDAP服务器主机名
LDAP服务器的主机名
LDAP服务器端口 LDAP服务器的端口
使用SSL 指示是否应使用SSL(LDAP)连接。
使用TLS 指示是否应在连接上启动TLS。
禁用证书检查 指示是否应禁用服务器证书验证。
绑定DN 用于身份验证的用户的DN。 如果留空,将执行匿名绑定。
绑定密码 用于身份验证的用户口令
搜索超时 直到搜索超时
管理员池最大活动数 管理员连接池的最大活动大小。
最大活动用户池数 用户连接池的最大活动大小。
用户基本DN 用户搜索的DN
用户对象类 用户条目必须包含的对象类列表。
用户ID属性 包含用户ID的属性的名称。
用户额外过滤器 搜索用户时需要使用额外的LDAP过滤器。 最终的过滤器的格式如下:'(&(<idAttr>=<userId>)(objectclass=<objectclass>)<extraFilter>)'(user.extraFilter)
用户DN路径 控制是否应使用DN来计算中间路径的一部分。
组基本DN 用户组搜索的基本DN。
对象类分组 组条目必须包含的对象类列表。
用户组名称属性 包含组名称的属性的名称。
分组额外过滤器 搜索组时需要使用额外的LDAP过滤器。 最终的过滤器的格式如下:'(&(<nameAttr>=<groupName>)(objectclass=<objectclass>)<extraFilter>)'
组DN路径 控制是否应使用DN来计算中间路径的一部分。
用户组成员属性 包含组成员的组属性。

配置同步处理函数

同步处理函数将定义如何将身份提供者用户和组与存储库同步。

它位于管理控制台 中的Apache Jackrabbit Oak默认同步处理程序名称下

同步处理函数具有以下配置选项:

同步处理程序名称 同步配置的名称。
用户过期时间 持续时间,直到同步的用户过期。
用户自动会员资格 已同步用户自动添加到的用户组列表。
用户属性映射 外部属性的本地属性的列表映射定义。
用户路径前缀 创建新用户时使用的路径前缀。
用户会员资格到期 会员资格到期的时间。
用户会员资格嵌套深度 返回同步成员关系时组嵌套的最大深度。 值为0会有效地禁用组成员关系查找。 值1仅添加用户的直接组。 仅当同步用户成员身份祖先时,此值才对单个用户组无效。
组到期时间 持续时间,直到同步的组过期。
组自动成员关系 已同步的组自动添加到的组列表。
组属性映射 外部属性的本地属性的列表映射定义。
组路径前缀 创建新组时使用的路径前缀。

外部登录模块

外部登录模块位于管理控制台 下的Apache Jackrabbit Oak外部登录模块

注意

Apache Jackrabbit Oak外部登录模块实现了Java身份验证和授权服务(JAAS)规范。 有关详细 信息,请参阅官方的Oracle Java Security Reference Guide

其工作是定义要使用的标识提供者和同步处理程序,有效地绑定两个模块。

以下配置选项可用:

JAAS排名 指定此登录模块条目的等级(即排序顺序)。 这些条目按降序排序(即,更高值的排名配置排在最前面)。
JAAS控制标志 指定LoginModule是否为必需、必需、充分还是可选的属性。有关这些标志含义的更多详细信息,请参阅JAAS配置文档。
JAAS Realm 注册LoginModule时所依据的领域名称(或应用程序名称)。 如果未提供领域名称,则LoginModule将按照Felix JAAS配置中的配置向默认领域注册。
标识提供者名称 标识提供者的名称。
同步处理程序名称 sync处理函数的名称。
注意

如果计划与AEM实例进行多个LDAP配置,则需要为每个配置分别创建标识提供者和同步处理函数。

通过SSL配置LDAP

可以通过以下过程将AEM 6配置为通过SSL与LDAP进行身份验证:

  1. 在配置 LDAP标识提供者时 ,选中“ 使用SSL ”或“使用TLS ”复选框

  2. 根据您的设置配置同步处理程序和外部登录模块。

  3. 根据需要在Java VM中安装SSL证书。 这可以通过使用keytool来完成:

    keytool -import -alias localCA -file <certificate location> -keystore <keystore location>

  4. 测试与LDAP服务器的连接。

创建SSL证书

在将AEM配置为通过SSL与LDAP进行身份验证时,可以使用自签名证书。 以下是生成用于AEM的证书的工作过程示例。

  1. 确保已安装并正在工作的SSL库。 此过程将以OpenSSL为例。

  2. 创建自定义的OpenSSL配置(cnf)文件。 这可以通过复制默认的​openssl.cnf 配置文件并自定义它来完成。 在UNIX系统上,它通常位于 /usr/lib/ssl/openssl.cnf

  3. 通过在终端中运行以下命令,继续创建CA根键:

    openssl genpkey -algorithm [public key algorithm] -out certificatefile.key -pkeyopt [public key algorithm option]
    
  4. 然后,创建一个新的自签名证书:

    openssl req -new -x509 -days [number of days for certification] -key certificatefile.key -out root-ca.crt -config CA/openssl.cnf

  5. 检查新生成的证书,以确保所有内容均符合顺序:

    openssl x509 -noout -text -in root-ca.crt

  6. 确保证书配置(.cnf)文件中指定的所有文件夹都存在。 否则,创建它们。

  7. 通过运行(例如:

    openssl rand -out private/.rand 8192

  8. 将创建的。pem文件移至。cnf文件中配置的位置。

  9. 最后,将证书添加到Java密钥库。

启用调试日志记录

可以为LDAP标识提供者和外部登录模块启用调试日志记录以解决连接问题。

要启用调试日志记录,您需要:

  1. 转到Web管理控制台。
  2. 查找“Apache Sling Logging Logger配置”并使用以下选项创建两个记录器:
  • 日志级别:调试

  • 日志文件logs/ldap.log更多

  • 消息模式:{0,date,dd.MM.yyyy HH:mm:ss.SSS} &{4}&ast;{2}

  • 记录器:org.apache.jackrabbit.oak.security.authentication.ldap

  • 日志级别:调试

  • 日志文件:logs/external.log

  • 消息模式:{0,date,dd.MM.yyyy HH:mm:ss.SSS} &{4}&ast;{2}

  • 记录器:org.apache.jackrabbit.oak.spi.security.authentication.external

团体联系论

通过LDAP同步的用户可以是AEM中不同用户组的一部分。 这些组可以是将作为同步过程的一部分添加到AEM的外部LDAP组,但也可以是单独添加的组,而不是原始LDAP组从属关系方案的一部分。

在大多数情况下,这些组可以是由本地AEM管理员或任何其他标识提供者添加的组。

如果从LDAP服务器上的用户组中删除了用户,则同步后所做的更改也会反映在AEM端。 但是,未通过LDAP添加的用户的所有其他用户组从属关系将保留原位。

AEM会通过使用属性检测并处理从外部用户组清除的用 rep:externalId 户。 此属性将自动添加到由同步处理程序同步的任何用户或用户组,并且它包含有关原始标识提供者的信息。

有关详细信息,请参阅有关用户和组同 步的Apache Oak文档

已知问题

如果计划通过SSL使用LDAP,请确保创建您使用的证书时不使用Netscape注释选项。 如果启用此选项,身份验证将失败,并显示SSL握手错误。

在此页面上