使用AEM 6配置LDAP configuring-ldap-with-aem
LDAP( L 八八 D 记录 A 访问 P 协议)用于访问集中目录服务。 这有助于减少管理用户帐户所需的工作量,因为多个应用程序都可以访问这些帐户。 其中一个LDAP服务器是Active Directory。 LDAP通常用于实现单点登录,该单点登录允许用户在登录一次后访问多个应用程序。
用户帐户可以在LDAP服务器和存储库之间同步,LDAP帐户详细信息将保存在存储库中。 这允许将帐户分配给存储库组以分配所需的权限和权限。
存储库使用LDAP身份验证来验证此类用户,并将凭据传递到LDAP服务器以进行验证,验证是允许访问存储库之前需要的。 为了提高性能,存储库可以缓存已成功验证的凭据,并设置到期超时,以确保在适当的时间段后进行重新验证。
从LDAP服务器验证中删除帐户后,将不再授予该帐户的验证权限,从而拒绝对存储库的访问。 也可以清除存储库中保存的LDAP帐户的详细信息。
此类帐户的使用对用户而言是透明的,他们发现从LDAP创建的用户和组帐户与仅在存储库中创建的用户和组帐户之间没有区别。
在AEM 6中,LDAP支持随附一个新实施,该实施需要与以前版本不同的配置类型。
现在,所有LDAP配置均可用作OSGi配置。 这些配置文件可通过Web管理控制台(位于:https://serveraddress:4502/system/console/configMgr
要让LDAP与AEM配合使用,您需要创建三个OSGi配置:
- LDAP身份提供程序(IDP)。
- 同步处理程序。
- 外部登录模块。
配置LDAP标识提供程序 configuring-the-ldap-identity-provider
LDAP标识提供程序用于定义如何从LDAP服务器中检索用户。
它可在管理控制台中的 Apache Jackrabbit Oak LDAP身份提供程序 名称。
LDAP标识提供程序可使用以下配置选项:
配置同步处理程序 configuring-the-synchronization-handler
同步处理程序将定义如何将身份提供程序用户和组与存储库同步。
它位于 Apache Jackrabbit Oak默认同步处理程序 名称。
同步处理程序可使用以下配置选项:
外部登录模块 the-external-login-module
外部登录模块位于 Apache Jackrabbit Oak外部登录模块 下。
其工作是定义要使用的身份提供程序和同步处理程序,从而有效地绑定这两个模块。
以下配置选项可用:
通过SSL配置LDAP configure-ldap-over-ssl
AEM 6可以按照以下过程配置为通过SSL通过LDAP进行身份验证:
-
检查 使用SSL 或 使用TLS 复选框 LDAP标识提供程序.
-
根据您的设置配置同步处理程序和外部登录模块。
-
如有需要,请在Java VM中安装SSL证书。 可以使用键工具完成此操作:
keytool -import -alias localCA -file <certificate location> -keystore <keystore location>
-
测试与LDAP服务器的连接。
创建SSL证书 creating-ssl-certificates
在配置AEM以通过SSL通过LDAP进行身份验证时,可以使用自签名证书。 以下是生成用于AEM的证书的工作过程示例。
-
确保已安装并运行SSL库。 此过程将以OpenSSL为例。
-
创建自定义的OpenSSL配置(cnf)文件。 可通过复制默认的 openssl.cnf 配置文件并对其进行自定义来完成此操作。 在UNIX系统上,它通常位于
/usr/lib/ssl/openssl.cnf
-
在终端中运行以下命令以继续创建CA根密钥:
code language-none openssl genpkey -algorithm [public key algorithm] -out certificatefile.key -pkeyopt [public key algorithm option]
-
接下来,创建一个新的自签名证书:
openssl req -new -x509 -days [number of days for certification] -key certificatefile.key -out root-ca.crt -config CA/openssl.cnf
-
Inspect新生成的证书可确保一切顺序:
openssl x509 -noout -text -in root-ca.crt
-
确保证书配置(.cnf)文件中指定的所有文件夹都存在。 如果没有,请创建它们。
-
通过运行(例如:
openssl rand -out private/.rand 8192
-
将创建的.pem文件移动到.cnf文件中配置的位置。
-
最后,将证书添加到Java KeyStore。
启用调试日志记录 enabling-debug-logging
可以为LDAP身份提供程序和外部登录模块启用调试日志记录,以解决连接问题。
要启用调试日志记录,您需要:
- 转到Web管理控制台。
- 查找“Apache Sling日志记录器配置”,并创建两个具有以下选项的日志记录器:
-
日志级别:调试
-
日志文件logs/ldap.log
-
消息模式:{0,date,dd.MM.yyyy HHss.SSS} *{4}*{2}
-
记录器:org.apache.jackrabbit.oak.security.ldap
-
日志级别:调试
-
日志文件:logs/external.log
-
消息模式:{0,date,dd.MM.yyyy HHss.SSS} *{4}*{2}
-
记录器:org.apache.jackrabbit.oak.spi.security.authentication.external
关于群体从属关系的一个词 a-word-on-group-affiliation
通过LDAP同步的用户可能属于AEM中的不同组。 这些组可以是将作为同步过程的一部分添加到AEM的外部LDAP组,但也可以是单独添加的组,而不是原始LDAP组从属关系方案的一部分。
在大多数情况下,这些组可以是由本地AEM管理员或任何其他身份提供程序添加的组。
如果从LDAP服务器上的组中删除了用户,则同步时所做的更改也会反映在AEM端。 但是,LDAP中未添加的用户的所有其他组从属关系都将保留。
AEM通过使用 rep:externalId
属性。 此属性将自动添加到由同步处理程序同步的任何用户或组,并包含有关原始身份提供程序的信息。
有关更多信息,请参阅 用户和组同步.
已知问题 known-issues
如果您计划通过SSL使用LDAP,请确保创建您正在使用的证书时没有使用Netscape注释选项。 如果启用此选项,身份验证将失败,并出现SSL握手错误。