使用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設定:

  1. LDAP識別提供者(IDP)。
  2. 同步處理常式。
  3. 外部登入模組。
NOTE
觀看Oak的外部登入模組 — 使用LDAP及Beyond進行驗證,以深入探索外部登入模組。
若要閱讀使用Apache DS設定Experience Manager的範例,請參閱設定Adobe Experience Manager 6.5使用Apache目錄服務。

設定LDAP識別提供者 configuring-the-ldap-identity-provider

「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來計算部分中繼路徑。
群組成員屬性
包含一或多個群組成員的群組屬性。

設定同步處理常式 configuring-the-synchronization-handler

同步處理常式會定義識別提供者使用者和群組與存放庫同步的方式。

它位於管理控制檯中的​ Apache Jackrabbit Oak Default Sync Handler ​名稱下。

同步處理常式可用的組態選項如下:

同步處理常式名稱
同步設定的名稱。
使用者到期時間
同步的使用者過期之前的持續時間。
使用者自動會籍
同步的使用者自動新增到的群組清單。
使用者屬性對應
來自外部本機屬性的清單對應定義。
使用者路徑前置詞
建立使用者時使用的路徑前置詞。
使用者成員資格到期
成員資格到期的時間。
使用者成員資格巢狀深度
同步成員關係時,傳回群組巢狀的最大深度。 如果值為0,則會有效地停用群組成員資格查閱。 值1隻會新增使用者的直接群組。 只有在同步使用者成員資格祖先時,同步個別群組時,這個值才無效。
群組到期時間
同步群組過期前的持續時間。
群組自動成員資格
同步群組自動新增至的群組清單。
群組屬性對應
來自外部本機屬性的清單對應定義。
群組路徑前置詞
建立群組時使用的路徑前置詞。

外部登入模組 the-external-login-module

外部登入模組位於管理控制檯下的​ Apache Jackrabbit Oak外部登入模組 ​下。

NOTE
Apache Jackrabbit Oak外部登入模組會實作Java™驗證與授權服務(JAAS)規格。 如需詳細資訊,請參閱官方OracleJava™安全性參考指南

其工作是定義要使用的身分提供者和同步處理常式,有效地連結兩個模組。

下列組態選項可供使用:

JAAS排名
指定此登入模組專案的排名(即排序順序)。 專案會依遞減順序排序(也就是說,較高的值排名組態排在首位)。
JAAS控制旗標
指定LoginModule為REQUIRED、REQUISITE、SUFFICIENT或OPTIONAL的屬性。 如需這些標幟涵義的詳細資訊,請參閱JAAS設定檔案。
JAAS領域
LoginModule登入的領域名稱(或應用程式名稱)。 如果未提供領域名稱,則LoginModule會以Felix JAAS組態中設定的預設領域註冊。
身分提供者名稱
身分提供者的名稱。
同步處理常式名稱
同步處理常式的名稱。
NOTE
如果您打算讓AEM執行個體擁有多個LDAP組態,則必須為每個組態建立個別的識別提供者與同步處理程式。

透過SSL設定LDAP configure-ldap-over-ssl

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憑證 creating-ssl-certificates

在設定AEM透過SSL以LDAP進行驗證時,可以使用自我簽署憑證。 以下是產生憑證以與AEM搭配使用的工作程式範例。

  1. 請確定您已安裝SSL程式庫且正常運作。 此程式使用OpenSSL作為範例。

  2. 建立自訂的OpenSSL設定(cnf)檔案。 此設定可以透過複製預設​ openssl.cnf ​設定檔案並自訂它來完成。 在UNIX®系統上,它位於/usr/lib/ssl/openssl.cnf

  3. 在終端機中執行以下命令,繼續建立CA根金鑰:

    code language-none
    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™金鑰存放區。

啟用偵錯記錄 enabling-debug-logging

LDAP Identity Provider和外部登入模組皆可啟用除錯記錄,以疑難排解連線問題。

若要啟用偵錯記錄,您必須執行下列動作:

  1. 前往「Web管理主控台」。
  2. 找到「Apache Sling記錄記錄器設定」,並使用以下選項建立兩個記錄器:
  • 記錄層級: Debug

  • 記錄檔logs/ldap.log

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

  • 記錄器:org.apache.jackrabbit.oak.security.authentication.ldap

  • 記錄層級: Debug

  • 記錄檔:logs/external.log

  • 訊息模式: {0,date,dd.MM.yyyy HH:mm:ss.SSS} &amp;ast;{4}&amp;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交握錯誤。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2