1. Apache Sling分发代理 — 同步代理工厂

启用用户同步

  • 作者​ 上的

Apache Sling分发代理

2.创建授权用户

配置权限

在步骤3中使用授权用户在Author上配置Sling分发。

CAUTION
必须创建新用户。
  • 分配的默认用户是​**admin**。
  • 不使用communities-user-admin user.

如何添加ACL

  • 访问CRXDE Lite

  • 选择/home节点

  • 在右窗格中,选择Access Control选项卡

  • 要添加ACL项,请选择+按钮

    • 主体搜索为用户同步创建的用户
    • 类型Allow
    • 权限jcr:all
    • 限制 rep:glob*/activities/*
    • 选择​ 确定
  • 选择​ 全部保存

添加ACL窗口

另请参阅

3. Granite分发Adobe — 加密的密码传输密钥提供程序

配置权限

在所有Publish实例上创建授权用户(即​ administrators ​用户组的成员)后,必须在Author上将该授权用户标识为具有将用户数据从Author同步到Publish的权限。

  • 作者​ 上的

    • 使用管理员权限登录

    • 访问Web控制台

    • 找到com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name

    • 要打开进行编辑,请选择现有配置(铅笔图标)
      验证property namesocialpubsync-publishUser

    • 在步骤2中将用户名和密码设置为在Publish中创建的授权用户

      • 例如,usersync-admin

加密密码传输密钥提供程序

4. Apache Sling分发代理 — 队列代理工厂

启用用户同步

  • 每个Publish实例上的​

    • 使用管理员权限登录

    • 访问Web控制台

    • 找到Apache Sling Distribution Agent - Queue Agents Factory

      • 要打开进行编辑,请选择现有配置(铅笔图标)
        验证Namesocialpubsync-reverse

      • 选中Enabled复选框

      • 选择Save

    • 针对每个Publish实例​ 重复

队列代理工厂

5. Adobe Social同步 — 观察者工厂差异

启用组同步

  • 每个Publish实例上的​

    • 使用管理员权限登录

    • 访问Web控制台

    • 找到​ Adobe Social Sync - Diff Observer Factory

      • 要打开进行编辑,请选择现有配置(铅笔图标)

        验证agent namesocialpubsync-reverse

      • 选中Enabled复选框

      • 选择Save

比较观察者工厂

6. Apache Sling Distribution Trigger — 计划触发器工厂

(可选)修改轮询间隔

默认情况下,作者每30秒轮询一次更改。 更改此间隔:

  • 作者​ 上的

    • 使用管理员权限登录

    • 访问Web控制台

    • 找到Apache Sling Distribution Trigger - Scheduled Triggers Factory

      • 要打开进行编辑,请选择现有配置(铅笔图标)

        • 验证Namesocialpubsync-scheduled-trigger
      • Interval in Seconds设置为所需的间隔

      • 选择Save

计划触发器工厂

为多个Publish实例配置

默认配置是单个Publish实例。 由于启用用户同步的原因是同步多个Publish实例,例如对于发布场,必须将额外的Publish实例添加到同步代理工厂。

7. Apache Sling分发代理 — 同步代理工厂

添加Publish实例:

同步代理工厂

  • 导出程序终结点
    每个Publish实例都应该有一个导出程序端点。 例如,如果有2个Publish实例localhost:4503和4504,则应该有两个条目:

    • https://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
    • https://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
  • 导入程序端点
    每个Publish实例都应该有一个导入程序端点。 例如,如果有2个Publish实例localhost:4503和4504,则应该有两个条目:

    • https://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
    • https://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
  • 选择Save

8. AEM Communities用户同步侦听器

(可选)同步其他JCR节点

如果存在要在多个Publish实例之间同步的自定义数据,则:

  • 每个Publish实例上的​

    • 使用管理员权限登录

    • 访问Web控制台

      • 例如,https://localhost:4503/system/console/configMgr
    • 找到AEM Communities User Sync Listener

    • 要打开进行编辑,请选择现有配置(铅笔图标)
      验证Namesocialpubsync-scheduled-trigger

AEM Communities用户同步侦听器

  • 节点类型
    这是已同步的节点类型的列表。 必须在此处列出sling:Folder以外的任何节点类型(sling:folder单独处理)。
    要同步的节点类型的默认列表:

    • rep:User
    • nt:unstructured
    • nt:resource
  • 可忽略的属性
    这是如果检测到任何更改将被忽略的属性的列表。 对这些属性的更改可能会作为其他更改的副作用而同步(因为同步始终在节点级别),但是对这些属性的更改本身不会触发同步。
    要忽略的默认属性:

    • cq:lastModified
  • 可忽略的节点
    同步期间被忽略的子路径。 这些子路径下的任何内容都不会随时同步。
    要忽略的默认节点:

    • .tokens
    • 系统
  • 分布式文件夹
    大多数sling:Folders被忽略,因为不需要同步。 这里列出了少数例外。
    要同步的默认文件夹

    • 区段/得分
    • 社交/关系
    • 活动

9.唯一Sling ID

CAUTION
如果Sling ID在两个或更多Publish实例之间匹配,则用户组同步失败。

如果发布场中的多个Publish实例的Sling ID相同,则用户组不会同步。

要验证所有Sling ID值是否不同,请在每个Publish实例中执行以下操作:

  1. 浏览到http://<host>:<port>/system/console/status-slingsettings
  2. 检查​ Sling ID ​的值

检查Sling ID的值

如果Publish实例的Sling ID与任何其他Publish实例的Sling ID匹配,则:

  1. 停止具有匹配Sling ID的某个Publish实例

  2. 在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*

  3. 启动Publish实例

    • 启动时,会为其分配一个新的Sling ID
  4. 验证​ Sling ID ​现在是否是唯一的

重复这些步骤,直到所有Publish实例都具有唯一的Sling ID。

Vault Package Builder工厂

要使更新正确同步,必须修改用于用户同步的Vault包生成器:

  • 在每个AEM Publish实例上

  • 访问Web控制台

  • 找到Apache Sling Distribution Packaging - Vault Package Builder Factory

    • Builder name: socialpubsync-vlt
  • 选择编辑图标

  • 添加两个Package Node Filters

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

    • 要使用新节点覆盖现有rep:policy节点,请添加第三个包过滤器:

      • /home/users|+.*/rep:policy
    • 要防止策略被分发,请设置

      • Acl Handling: IGNORE

保险库包生成器工厂

当……发生时

在Publish上用户自行注册或编辑个人资料

根据设计,在发布环境(自注册)中创建的用户和配置文件不会显示在创作环境中。

当拓扑是发布场并且已正确配置用户同步时,将使用Sling分发跨发布场同步​ 用户 ​和​ 用户配置文件

用户或用户组是使用安全控制台创建的

根据设计,在发布环境中创建的用户数据不会出现在创作环境中,反之亦然。

当使用用户管理和安全性控制台在发布环境中添加新用户时,如有必要,用户同步会将新用户及其组成员资格同步到其他Publish实例。 用户同步还会同步通过安全控制台创建的用户组。

疑难解答

如何让用户同步脱机

若要使用户同步脱机,要删除Publish实例手动同步数据,分发队列必须为空且静默。

检查分发队列的状态:

  • 对于作者:

    • 使用CRXDE Lite

      • /var/sling/distribution/packages中查找条目

        • 使用模式distrpackage_*命名的文件夹节点
    • 使用包管理器

      • 查找挂起的包(尚未安装)

        • 使用模式socialpubsync-vlt*命名
        • communities-user-admin创建

当分发队列为空时,禁用用户同步:

完成任务后,要重新启用用户同步,请执行以下操作:

使用同步诊断

用户同步诊断是一种检查配置并尝试识别任何问题的工具。

在作者中,只需从主控制台导航到​ 工具、操作、诊断、用户同步诊断。

只需进入“User Sync Diagnostics(用户同步诊断)”控制台即可显示结果。

这是未启用用户同步时显示的内容:

警告:未启用用户同步诊断

如何对Publish实例运行诊断

从创作环境运行诊断时,通过/失败结果包括一个[INFO]部分,其中显示已配置的Publish实例列表以供确认。

列表中包括运行该实例诊断的每个Publish实例的URL。 已将URL参数syncUser附加到诊断URL,其值设置为在步骤2中创建的​ 授权同步用户

注意:在启动该URL之前,授权同步用户 ​必须已登录到该Publish实例。

Publish实例的 诊断