使用AEM 6設定LDAP configuring-ldap-with-aem
LDAP (L ightweight D 目錄 A 存取 P rotocol)用於存取集中式目錄服務。 它有助於減少管理使用者帳戶所需的工作量,因為使用者帳戶可由多個應用程式存取。 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設定:
- LDAP識別提供者(IDP)。
- 同步處理常式。
- 外部登入模組。
設定LDAP識別提供者 configuring-the-ldap-identity-provider
「LDAP識別提供者」用於定義如何從LDAP伺服器擷取使用者。
您可以在管理主控台中的 Apache Jackrabbit Oak LDAP身分提供者 名稱下找到它。
下列組態選項適用於「LDAP識別提供者」:
設定同步處理常式 configuring-the-synchronization-handler
同步處理常式會定義識別提供者使用者和群組與存放庫同步的方式。
它位於管理控制檯中的 Apache Jackrabbit Oak Default Sync Handler 名稱下。
同步處理常式可用的組態選項如下:
外部登入模組 the-external-login-module
外部登入模組位於管理控制檯下的 Apache Jackrabbit Oak外部登入模組 下。
其工作是定義要使用的身分提供者和同步處理常式,有效地連結兩個模組。
下列組態選項可供使用:
透過SSL設定LDAP configure-ldap-over-ssl
AEM 6可以設定為透過SSL使用LDAP進行驗證,其程式如下:
-
設定LDAP識別提供者時,請勾選 使用SSL 或 使用TLS 核取方塊。
-
根據您的設定,設定同步處理常式和外部登入模組。
-
如有需要,請在Java™ VM中安裝SSL憑證。 您可以使用keytool完成此安裝:
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
-
為確保一切正常,請檢查新產生的憑證:
openssl x509 -noout -text -in root-ca.crt
-
確定憑證設定(.cnf)檔案中指定的所有資料夾都存在。 如果沒有,請建立它們。
-
建立隨機種子,例如透過執行:
openssl rand -out private/.rand 8192
-
將建立的.pem檔案移動到.cnf檔案中設定的位置。
-
最後,將憑證新增至Java™金鑰存放區。
啟用偵錯記錄 enabling-debug-logging
LDAP Identity Provider和外部登入模組皆可啟用除錯記錄,以疑難排解連線問題。
若要啟用偵錯記錄,您必須執行下列動作:
- 前往「Web管理主控台」。
- 找到「Apache Sling記錄記錄器設定」,並使用以下選項建立兩個記錄器:
-
記錄層級: Debug
-
記錄檔logs/ldap.log
-
訊息模式: {0,date,
dd.MM.yyyy
HH:mm:ss.SSS
} &;ast;{4}&;ast; {2} -
記錄器:org.apache.jackrabbit.oak.security.authentication.ldap
-
記錄層級: Debug
-
記錄檔:logs/external.log
-
訊息模式: {0,date,
dd.MM.yyyy
HH:mm:ss.SSS
} &;ast;{4}&;ast; {2} -
記錄器: org.apache.jackrabbit.oak.spi.security.authentication.external
關於群組隸屬關係的一句話 a-word-on-group-affiliation
透過LDAP同步的使用者可以屬於AEM中的不同群組。 這些群組可以是外部LDAP群組,這些群組會作為同步處理的一部分新增到AEM。 但是,它們也可以是單獨新增的群組,而且不屬於原始LDAP群組關係綱要。
通常,這些群組是由本機AEM管理員或任何其他身分提供者所新增。
如果從LDAP伺服器上的群組中移除使用者,則同步處理時變更會反映在AEM端。 但是,使用者未由LDAP新增的所有其他群組關聯仍會保留。
AEM會使用rep:externalId
屬性來偵測並處理外部群組中的使用者清除。 此屬性會自動新增至同步處理常式同步的任何使用者或群組,且包含原始身分提供者的相關資訊。
請參閱有關使用者和群組同步的Apache Oak檔案。
已知問題 known-issues
如果您計畫透過SSL使用LDAP,請確定您使用的憑證是在沒有Netscape註解選項的情況下建立的。 如果啟用此選項,驗證會失敗並出現SSL交握錯誤。