社區用戶同步

簡介

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

使 用者資料是用來指代使用者、使 用者​分析 及使 用者群組 **。

籍是指在發佈環境中注 ** 冊的使用者,而非在作者環境中註冊的使用者。

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

同步發佈群的使用者

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

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

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

啟用用戶同步後,群中的發佈實例間的用戶資料會自動同步。

用戶同步設定說明

有關如何啟用發佈群的同步的詳細逐步說明,請參閱

背景中的使用者同步

sling-dist-workflow

  • VLT包:是發佈者上所做所有變更的zip檔案,需要在發佈者間散發。發佈者上的變更會產生由變更事件接聽程式挑選的事件。 這會建立包含所有變更的vlt套件。

  • 散發套件:包含Sling的散發資訊。這是內容需要在何處發佈,以及上次何時發佈的資訊。

當……

從Communities Sites控制台發佈網站

在作者上,當社群網站從Communities Sites主控台發佈時,其效果是replicate相關頁面,而Sling則分發動態建立的社群使用者群組,包括其會籍。

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

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

當拓撲為publish farm且已正確設定使用者同步時,使用Sling散發,將​user​和​user profile​同步到發佈群。

在Publish上建立新的社群群組

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

在程式中,新網站頁面會複製到所有發佈例項。 動態建立的社群使用者群組及其會籍是Sling散布至所有發佈例項。

使用Security Console建立使用者或使用者群組

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

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

使用者在發佈時發佈內容

對於用戶生成的內容(UGC),在發佈實例上輸入的資料通過配置的SRP訪問。

最佳做法

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

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

必備條件

  1. 如果使用者和使用者群組已在一個發佈者上建立,建議在設定並啟用使用者同步之前,手動將使用者資料同步至所有發佈者。

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

  2. 請確定已安裝最新的代碼:

在AEM Communities上啟用使用者同步時,必須進行下列設定。 請確定這些設定正確,以防止sling內容散發失敗。

Apache Sling Distribution Agent - Sync Agents Factory

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

配置中的預設值是單個發佈實例的預設值。 由於使用者同步對同步多個發佈例項(例如對於發佈群)很有用,因此需要將其他發佈例項新增至設定。

內容如何同步?

編寫實例ping發佈器的導出端點。 每當在特定發佈者(n)上建立或更新使用者時,「作者」會從其匯出端點取得內容,並且將內容推送至其他發佈者(n-1,即與擷取內容的發佈者不同)。

若要設定Apache Sling Sync Agents設定

在AEM作者實例上:

  1. 以管理員權限登入。

  2. 訪問Web控制台

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

  3. 找到​Apache Sling Distribution Agent - Sync Agents Factory

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

    • 驗證名稱:socialpubsync.

    • 選中​Enabled​複選框。

    • 選擇​使用多個隊列

    • 指定​匯出器端點​和​匯入器端點(您可以新增更多匯出器和匯入器端點)。

      這些端點會定義您要從何處取得內容,以及要將內容推播到何處。 作者從指定的導出器端點提取內容,並將內容推送到發佈者(其從中提取內容的發佈者除外)。
      sync-agent-fact

Adobe Granite Distribution —— 加密密碼傳輸機密提供者

它可讓作者識別已授權的使用者,即具有從作者同步使用者資料以進行發佈的權限。

在所有發佈例項上建立的授權使用者可協助發佈者與作者連線,並在作者上設定Sling散發。 此授權用戶具有所有必需的ACL

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

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

在AEM作者實例上:

  1. 以管理員權限登入。

  2. 訪問Web控制台

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

  3. 找到​Adobe Granite Distribution - Encrypted Password Transport Secret Provider

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

    驗證屬性name: socialpubsync- publishUser .

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

    例如,usersync-admin

    花崗——密碼——轉移

Apache Sling Distribution Agent - Queue Agents Factory

此設定可用來設定您要在發佈者間同步的資料。 當在​允許根​中指定的路徑中建立/更新資料時,「var/community/distribution/diff」將激活,並且建立的複製器從發佈商提取資料,並將其安裝到其他發佈商。

配置要同步的資料(節點路徑)

在AEM發佈例項上:

  1. 以管理員權限登入。

  2. 訪問Web控制台

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

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

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

    驗證名稱:socialpubsync -reverse。

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

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

  7. 對每個publish實例重複。

    隊列代理——事實

Adobe Granite Distribution - Diff Observer Factory

此設定會同步發佈者的群組成員資格。
如果變更某個發佈者中的群組成員資格,並未更新其他發佈者的成員資格,請確定​ref:members​已新增至​已搜尋的屬性名稱

確保成員同步

在每個AEM發佈例項上:

  1. 以管理員權限登入。

  2. 訪問Web控制台

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

  3. 找到​Adobe Granite Distribution - Diff Observer Factory

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

    驗證​代理名:socialpubsync -reverse**

  5. 選中​Enabled​複選框。

  6. 將​rep:members​指定為​[!UICONTROL 中propertyName的description,以查找屬性名稱]​和保存。

    diff-obs

Apache Sling Distribution Trigger - Scheduled Triggers Factory

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

作者會每30秒(預設值)對發行者進行投票。 如果資料夾​/var/sling/distribution/packages/ socialpubsync - vlt /shared​中有任何套件,則會擷取這些套件,並將它們安裝在其他發佈者上。

更改輪詢間隔

在AEM作者實例上:

  1. 以管理員權限登入。

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

  3. 找到​Apache Sling Distribution Trigger - Scheduled Triggers Factory

    • 選取要開啟以進行編輯的現有設定(鉛筆圖示)
    • 驗證Name: socialpubsync-scheduled-trigger
    • 將「間隔」(以秒為單位)設定為所需間隔並保存。

    scheduled-trigger

AEM Communities User Sync Listener

若是Sling散發中訂閱與後續版本有差異的問題,請檢查下列屬性是否已設定在​AEM Communities User Sync Listener​組態中:

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

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

在每個AEM發佈例項上:

  1. 以管理員權限登入。

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

  3. 找到​AEM Communities User Sync Listener

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

    驗證名稱:socialpubsync-scheduled-trigger

  5. 設定下列​NodeTypes:

    rep:用戶

    nt :unstructured

    nt :資源

    rep:ACL

    sling:Folder

    sling:OrderedFolder

    此屬性中指定的節點類型將同步,不同發佈者之間會同步通知資訊(部落格和後面的設定)。

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

    區段/計分

    社交/關係

    活動

  7. 將​ignorablenodes​設為:

    .token

    系統

    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​的值。

    slingid

    如果發佈例項的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系統上:

    use windows explorer and search for _sling.id.file_

  5. 啟動發佈例項。 在啟動時,會指派新的Sling ID。

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

重複這些步驟,直到所有發佈例項都有唯一的Sling ID。

Vault Package Builder Factory

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

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

為確保更新在發佈者之間正確同步

在每個AEM發佈例項上:

  1. 訪問Web控制台,例如http://localhost:4503/system/console/configMgr

  2. 找到​Apache Sling Distribution Packaging - Vault Package Builder Factory Builder名稱:socialpubsync-vlt

  3. 選擇編輯表徵圖。

  4. 新增兩個套件篩選:

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

    • 要用新節點覆蓋現有的rep :policy節點,請添加第三個包過濾器:

      /home/users|**+**.\*/rep:policy

    • 要防止策略被分發,請設定

      Acl處理:忽略

vault-package-builder-factory

疑難排解AEM Communities中的Sling散發

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

  1. 檢查是否 未正確添加配置 請確定未新增或編輯多個設定,而應編輯現有的預設設定。

  2. 檢查配置。請確定所有組態在您的AEM作者實例中已正確設定,如最佳實務中所述。

  3. 檢查授權的使用者權限。如果軟體包未正確安裝,則檢查在第一個發佈實例中建立的授權用戶是否具有正確的ACL。

    若要驗證此項,請改變作者例項上的已建立的授權使用者,而不是變更Adobe Granite Distribution - Encrypted Password Transport Secret Provider組態,以使用管理員使用者憑證。 現在,請嘗試再次安裝軟體包。 如果用戶同步與管理員憑據配合工作正常,則表示建立的發佈用戶沒有適當的ACL。

  4. 檢查比較觀察器工廠配置。例如,如果發佈群中只有特定節點未同步,則群組成員未同步,則請確定Adobe Granite Distribution - Diff Observer Factory組態已啟用,且​rep:members​設定在​lookdproperties names​中。

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

    • 節點類型——設定為​rep:User, nt:unstructured, nt:resource, rep:ACL, sling: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控制台。 例如,http://localhost:4502/system/console/configMgr

      2. 找到設定​Apache Sling Distribution Agent - Sync Agents Factory

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

      在作者實例上禁用用戶同步時,(導出器和導入器)端點將被禁用,而作者實例是靜態的。 作者不會ping或讀取​vlt​套件。

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

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

    4. 檢查在建立用戶時建立的日誌順序。

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

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

    7. 在發行者上,變更​Apache Sling Distribution Agent - Sync Agents Factory​中的匯出器或匯入器端點。

      我們可以下載並擷取封裝資料,以檢查哪些屬性已推送至其他發佈者,以及哪些資料遺失。

本頁內容