Communities用戶同步

簡介

在AEM Communities中,從發佈環境(視設定的權限而定),網站訪客​可能成為​成員、建立​使用者群組​及編輯其​成員設定檔

使 用者資料是用來指代使用 、使 用者設 定檔和 使用者群組​的詞語。

會籍一詞是指在發佈環 境中註冊的使用者,而非在製作環境中註冊的使用者。

有關用戶資料的詳細資訊,請訪問管理用戶和用戶組

在發佈伺服器場間同步用戶

根據設計,在發佈環境中建立的使用者資料不會出現在製作環境中。

在製作環境中建立的大部分使用者資料,都會保留在製作環境中,不會同步或複製到發佈例項。

topologypublish farm時,必須將在一個發佈實例上進行的註冊和修改與其他發佈實例同步。 成員必須能夠登入並查看其任何發佈節點上的資料。

啟用使用者同步後,系統會自動在伺服器陣列中的發佈執行個體間同步使用者資料。

用戶同步設定說明

如需如何在發佈伺服器陣列間啟用同步的詳細逐步指示,請參閱:

用戶在後台同步

sling-dist-workflow

  • vlt包

    此檔案是發佈商上完成的所有變更的zip檔案,需要分發給各發佈商。 發佈伺服器上的更改生成由更改事件偵聽器選擇的事件。 這會建立包含所有變更的vlt套件。

  • 分發包

    其中包含Sling的發佈資訊。 這是關於內容需要分發的位置,以及上次分發的時間的資訊。

…時會發生什麼事

從Communities Sites控制台發佈站點

在作者上,從Communities Sites主控台發佈社群網站時,效果是復寫相關聯的頁面,而Sling會分發動態建立的社群使用者群組,包括其成員資格。

在發佈時建立或編輯配置檔案

根據設計,在發佈環境中建立的使用者和設定檔(例如透過自行註冊、社交登入、LDAP驗證)不會出現在製作環境中。

當拓撲為publish farm且已正確配置用戶同步時,使用Sling分發在發佈場中同步​user​和​user profile

在發佈時建立新社群群組

雖然從發佈例項開始,但實際上會發生在製作例項上建立社群群組(這會產生新網站頁面和新使用者群組)。

在程式中,新網站頁面會複製到所有發佈執行個體。 動態建立的社群使用者群組及其成員資格已分發至所有發佈執行個體。

使用安全控制台建立用戶或組

根據設計,在發佈環境中建立的使用者資料不會出現在製作環境中,反之亦然。

當使用使用者管理與安全性控制台在發佈環境中新增使用者時,使用者同步會將新使用者及其群組成員資格同步至其他發佈執行個體(如有必要)。 使用者同步也會同步透過安全性主控台建立的使用者群組。

使用者在發佈時發佈內容

對於使用者產生的內容(UGC),在發佈執行個體上輸入的資料是透過設定的SRP存取。

最佳實務

預設情況下,用戶同步為​disabled。 啟用用戶同步涉及修改​existing OSGi配置。 啟用使用者同步後,不應新增任何設定。

使用者同步需仰賴製作環境來管理使用者資料分配,即使使用者資料並非建立在製作上亦然。

必備條件

  1. 如果已在一個發佈商上建立了用戶和用戶組,建議在配置和啟用用戶同步之前,手動將用戶資料同步到所有發佈商。

    啟用使用者同步後,只會同步新建立的使用者和群組。

  2. 確認已安裝最新程式碼:

若要在AEM Communities上啟用使用者同步,必須進行下列設定。 請確定這些設定正確,以防止Sling內容分送失敗。

Apache Sling Distribution Agent — 同步代理工廠

此設定會擷取要在發佈者間同步的內容。 設定位於製作執行個體上。 作者必須追蹤所有發佈者,以及同步所有資訊的位置。

設定中的預設值適用於單一發佈執行個體。 由於使用者同步對同步多個發佈例項(例如對於發佈伺服器陣列)非常有用,因此需要將其他發佈例項新增至設定。

如何同步內容?

製作執行個體會偵測發佈者的匯出端點。 每當在特定發佈者上建立或更新使用者時(n),作者就會從其匯出端點取得內容,而將內容推送至其他發佈者(n-1,與內容擷取所在的發佈者不同)。

要配置Apache Sling同步代理配置:

  1. 以AEM製作執行個體的管理員權限登入。

  2. 訪問Web控制台。 例如, https://localhost:4502/system/console/configMgr

  3. 找到​Apache Sling Distribution Agent — 同步代理工廠

    • 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

      驗證名稱:socialpubsync.

    • 選中​啟用​複選框。

    • 選擇​使用多個隊列。

    • 指定​導出器端點​和​導入器端點(您可以添加更多導出器和導入器端點)。

      這些端點會定義您要從何處取得內容,以及要推送內容的位置。 作者從指定的匯出工具端點擷取內容,並將內容推送至發佈工具(其擷取內容的發佈工具除外)。
      sync-agent-fact

AdobeGranite分發 — 加密的密碼傳輸密碼提供程式

它可讓作者識別已授權的使用者,即擁有將使用者資料從作者同步到發佈的權限。

在所有發佈執行個體上建立的授權使用者可協助發佈者與作者連線,並在作者上設定Sling分送。 此授權用戶具有所有必要ACL

每當要在發佈者上安裝資料或從發佈者擷取資料時,作者就會使用此設定中設定的憑證(使用者名稱和密碼)與發佈者連線。

使用授權使用者將作者與發佈者連線:

  1. 以AEM製作執行個體的管理員權限登入。

  2. 訪問Web控制台

    例如, https://localhost:4502/system/console/configMgr

  3. 找到​AdobeGranite分發 — 加密的密碼傳輸密鑰提供程式。

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    驗證屬性​socialpubsync - publishUser.

  5. 將用戶名和密碼設定為授權用戶

    例如, usersync - admin

granite-passwrd-trans

Apache Sling Distribution Agent — 佇列代理工廠

此設定用於設定您要在不同發佈者間同步的資料。 在​允許的根​中指定的路徑中建立/更新資料時,「var/community/distribution/diff」將激活,所建立的復製程式從發佈伺服器中提取資料並將其安裝到其他發佈伺服器上。

要配置要同步的資料(節點路徑),請執行以下操作:

  1. 以Author例項的管理員權限登入。

  2. 訪問Web控制台

    例如, https://localhost:4503/system/console/configMgr

  3. 找到​Apache Sling Distribution Agent - Queue Agent Factory

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    驗證名稱:socialpubsync -reverse

  5. 選中​Enabled​複選框並保存。

  6. 指定要在​允許的根​中複製的節點路徑。

  7. 對每個​publish​例項重複。

    queue-agent-fact

AdobeGranite分佈 — 差異觀察器工廠

此設定會同步各發佈者的群組成員資格。
如果更改某個發佈伺服器中組的成員身份不更新其它發佈伺服器的成員身份,請確保將​ref:members​添加到​查找的屬性名稱​中。

要確保成員同步:

  1. 以AEM製作執行個體的管理員權限登入。

  2. 訪問Web控制台

    例如, https://localhost:4503/system/console/configMgr

  3. 找到​AdobeGranite分佈 — 差異觀察器工廠

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    驗證​代理名:socialpubsync -reverse

  5. 選中​啟用​複選框。

  6. 指定​rep:members​作為​lookdproperties names​中propertyName的說明,並保存。

    diff-obs

Apache Sling Distribution觸發程式 — 排程觸發程式工廠

此設定可讓您設定輪詢間隔(在此間隔內,發佈者會被Ping通,且作者會提取變更),以同步各發佈者的變更。

作者每30秒輪詢一次發佈者(預設)。 如果資料夾/var/sling/distribution/packages/ socialpubsync - vlt /shared中存在任何包,則它將獲取這些包並將其安裝到其他發佈器上。

更改輪詢間隔:

  1. 以AEM製作執行個體的管理員權限登入。

  2. 訪問Web控制台,例如https://localhost:4502/system/console/configMgr

  3. 找出​Apache Sling Distribution觸發程式 — 排程觸發程式工廠

    • 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

      驗證​socialpubsync -scheduled-trigger

    • 將間隔(以秒為單位)設定為所需間隔並保存。

    排程觸發器

AEM Communities用戶同步偵聽器

若是Sling分送中訂閱與後續項目不一致的問題,請檢查​AEM Communities使用者同步接聽程式​設定中是否已設定下列屬性:

  • NodeTypes
  • 可忽略屬性
  • 可忽略節點
  • DistributedFolders

若要同步訂閱、追蹤和通知

在每個AEM發佈例項上:

  1. 以管理員權限登入。

  2. 訪問Web控制台。 例如, https://localhost:4503/system/console/configMgr

  3. 找到​AEM Communities用戶同步偵聽器

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)

    驗證名稱:socialpubsync -scheduled-trigger

  5. 設定以下​NodeTypes:

    rep:User

    nt:unstructured

    nt:resource

    rep:ACL

    sling:Folder

    sling:OrderedFolder

    此屬性中指定的節點類型將同步,並且通知資訊(隨後是部落格和配置)會在不同發佈者之間同步。

  6. 在​DistributedFolders​中添加要同步的所有資料夾。 例如,

    segments/scoring

    social/relationships

    activities

  7. 將​ignobalenodes​設定為:

    .tokens

    system

    rep:cache (由於我們使用黏著工作階段,因此不需要將此節點同步至不同的發佈者)。

    user-sync-listner

唯一Sling ID

AEM製作例項使用Sling ID來識別資料傳回的位置,以及發佈商需要(或不需要)將套件傳回的位置。

確認發佈伺服器陣列中的所有發佈者都有唯一的Sling ID。 如果Sling ID在發佈伺服器陣列中用於多個發佈執行個體相同,則使用者同步將會失敗。 由於作者不知道要從何處擷取套件,以及要在何處安裝套件。

若要確保發佈伺服器陣列中發佈者的唯一Sling ID,請在每個發佈執行個體上:

  1. 瀏覽至https://host:port/system/console/status-slingsettings

  2. 檢查​Sling ID​的值。

    slid

    如果發佈例項的Sling ID符合任何其他發佈例項的Sling ID,則:

  3. 停止具有相符Sling ID的其中一個發佈執行個體。

  4. crx-quickstart/launchpad/felix目錄中,搜索並刪除名為​sling.id.file的檔案。

    例如,在Linux系統上:

    rm -i $(find . -type f -name sling.id.file)

    例如,在Windows系統上:

    使用Windows資源管理器並搜索sling.id.file

  5. 啟動發佈例項。 啟動時,系統會為其指派新的Sling ID。

  6. 驗證​Sling ID​現在是唯一的。

重複這些步驟,直到所有發佈執行個體都有唯一的Sling ID。

保管庫包生成器工廠

要正確同步更新,必須修改保管庫包生成器以便用戶同步。
/home/users中,建立*/rep:cache節點。 它是一個快取,用於發現如果我們查詢節點的主名,則可以直接使用此快取。

如果在發佈者之間同步rep :cache節點,則可停止用戶同步。

為確保在各發佈者之間正確同步更新,請在每個AEM發佈例項上:

  1. 訪問Web控制台

    例如, https://localhost:4503/system/console/configMgr

  2. 找到​Apache Sling Distribution Packaging - Vault Package Builder Factory

    產生器名稱:socialpubsync-vlt

  3. 選取編輯圖示。

  4. 添加兩個包節點篩選器:

    • /home/users|-.*/.tokens
    • /home/users|-.*/rep:cache
  5. 策略處理

    • 要用新節點覆蓋現有的rep:policy節點,請添加第三個包篩選器:/home/users|+.*/rep:policy
    • 為防止策略分發,請設定:Acl Handling: IGNORE

    保管包生成器工廠

疑難排解AEM Communities中的Sling分發

如果Sling發佈失敗,請嘗試下列除錯步驟:

  1. 檢查是否未 正確新增設定

    請確定未新增或編輯多個設定,而是應編輯現有的預設設定。

  2. 檢查配置

    請確定所有configurations已在您的AEM Author例項中適當設定,如 Best Practices中所述。

  3. 檢查授權的使用者權限

    如果未正確安裝程式包,則檢查在第一個發佈實例中建立的授權用戶是否具有正確的ACL。

    若要驗證此資訊,請改變已建立的授權使用者,改為變更「製作」例項上的AdobeGranite分發 — 加密密碼傳輸密碼提供者設定,以使用管理員使用者憑證。 現在,請嘗試再次安裝程式包。 如果使用者同步可搭配管理員憑證正常運作,則表示建立的發佈使用者沒有適當的ACL。

  4. 檢查比較觀察器工廠配置

    如果發佈伺服器陣列中只有特定節點未同步(例如,組成員未同步),請確保AdobeGranite分發 — 差異觀察器工廠配置已啟用,並​rep:成員​在​查找的屬性名稱​中設定。

  5. 檢查AEM Communities用戶同步監聽器配置。 如果已建立的使用者已同步,但訂閱和後續項目無法運作,請確定AEM Communities使用者同步接聽程式設定有:

    • 節點類型 — 設定為​rep:User, nt:unstructurednt:resourcerep:ACLsling:Folder​和​sling:OrderedFolder
    • 可忽略節點 — 設為​.tokenssystem​和​rep:cache
    • 分佈式資料夾 — 設定到要分佈的資料夾。
  6. 檢查在發佈執行個體上建立使用者時產生的記錄

    如果上述設定已適當設定,但使用者同步無法運作,請檢查建立使用者時產生的記錄。

    檢查記錄檔的順序是否相同,如下所示:

    15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7422] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C, /home/users/C/Cw-5avWqilmqsNn5hCvK]
    15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7422] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ2: ADD paths=[/home/users/C, /home/users/C/Cw-5avWqilmqsNn5hCvK], user=communities-user-admin
    15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7431] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C/Cw-5avWqilmqsNn5hCvK, /home/users/C/Cw-5avWqilmqsNn5hCvK/profile, /home/users/C/Cw-5avWqilmqsNn5hCvK/rep:policy]
    15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7431] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ3: ADD paths=[/home/users/C/Cw-5avWqilmqsNn5hCvK, /home/users/C/Cw-5avWqilmqsNn5hCvK/profile, /home/users/C/Cw-5avWqilmqsNn5hCvK/rep:policy], user=communities-user-admin
    15.05.2016 18:33:01.757 *INFO* [sling-oak-observation-7431] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337181554_ebb27ad9-a861-4405-9342-d64c916654e2:0.0.1
    15.05.2016 18:33:01.820 *INFO* [sling-oak-observation-7422] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337181554_58811273-5861-48fe-95d2-4aff367b99c3:0.0.1
    15.05.2016 18:33:02.023 *INFO* [sling-oak-observation-7430] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C/Cw-5avWqilmqsNn5hCvK/profile]
    15.05.2016 18:33:02.023 *INFO* [sling-oak-observation-7430] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ4: ADD paths=[/home/users/C/Cw-5avWqilmqsNn5hCvK/profile], user=communities-user-admin
    15.05.2016 18:33:02.273 *INFO* [sling-oak-observation-7430] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337182039_f34f4fa6-10b9-42eb-8740-4da9d4d38f99:0.0.1
    

除錯:

  1. 禁用用戶同步:

  2. 在AEM製作例項上,使用管理員權限登入。

    1. 訪問Web控制台。 例如, https://localhost:4502/system/console/configMgr

    2. 找到設定​Apache Sling Distribution Agent — 同步代理工廠

    3. 取消選中​Enabled​複選框。

      在製作執行個體上停用使用者同步時,會停用(匯出工具和匯入工具)端點,且製作執行個體為靜態。 作者不會ping或擷取​vlt​套件。

      現在,如果使用者是在發佈執行個體上建立,則會在​/var/sling/distribution/packages/ socialpubsync - vlt /data​節點中建立​套件。​如果作者將這些套件推送至其他服務。 您可以下載並擷取此資料,以檢查所有屬性都推送至其他服務。

  3. 前往發佈者,然後在發佈者上建立使用者。 因此,會建立事件。

  4. 檢查在建立使用者時建立的記錄🔗的順序。

  5. 檢查是否在​/var/sling/distribution/packages/socialpubsync-vlt/data​上建立​vlt​套件。

  6. 現在,在AEM製作例項上啟用使用者同步。

  7. 在發佈商上,在​Apache Sling Distribution Agent — 同步代理工廠​中更改導出器或導入器端點。
    我們可以下載並擷取套件資料,以檢查哪些屬性已推送至其他發佈者,以及哪些資料已遺失。

本頁內容