企业管理中用户数据同步机制解决思路
背景
组织人员信息管理服务是许多系统中不可缺少的核心模块,里面装载着许多重要的敏感信息。当前许多企业在实际生产过程中,使用着多种系统软件,例如 OA、CRM、财务、邮件系统等等,这些系统都有着自己独立的一套组织管理模块。随之出现了一系列问题:
管理成本高:一个人或多个人管理多个系统,人力成本高,工作效率低。
易出现管理问题或风险:例如,公司规定各系统录入一致的账户,而人为录入中极可能出现失误,导致通知给员工的是一个账户,实际录入的是有误的账户。某个系统没有及时关闭离职人员账户,导致离职人员依旧可以访问,可能损失重要信息。
用户登录体验差效率低:一个员工拿着一个账户却要记不同系统的密码,甚至是多个不同账户登录系统还要来回切换。
此时,一套有效的用户数据同步机制即可解决以上问题。它可以帮助企业统一管理组织信息,实现一次操作而使多系统及时响应,一次登录便能同时管理其管辖下的任何系统。那么如何才能达成数据同步呢?
同步前提
要达到同步,首先得有一个集中化管理用户信息的服务(以下简称组织中心),这个服务通过收集其它系统的组织人员信息,形成“完整”的组织信息,然后根据配置的策略向需要被同步的系统(统称第三方系统)下发信息,以达到信息同步的效果。当然这里面第三方系统需要提供接口、协议或者可操作的数据库。除此之外或许还会涉及一些系统改造的工作,因为并不是所有的系统都提供暴露增删改查的接口。
常见的同步难点及解决思路
系统问题点及解决思路
事务性问题
事务管理必须在同步过程中进行,否则可能会因为一些因素导致仅部分同步成功。例如,人员与组织目录关联异常。
假如上面的问题都顺利解决了,就可以开始考虑同步了。那么问题又来了,如果第三方数据量十分庞大又该如何收集呢?下面我们来讲同步方案及策略。
同步方案及策略
同步方案
全量同步
一次性下发第三方所有组织人员信息进行清洗同步。当第三方系统的组织信息量不是很大的时候可以考虑全量同步。缺点是消耗资源较大。
增量同步
如果第三方的数据量庞大且复杂,倘若机器性能够好,也许可以顺利完成同步。但这样需要的硬件成本将会极高,大部分企业也不会采纳这种方案,因此就出现了增量同步方案。增量同步是将变化的信息进行同步。具体方案如下:
回调同步。每次修改了信息都会将变动后的信息同步至第三方或者组织中心,收到信息的一方自我比对然后进行修改。(此种方式一般涉及改造问题)
变动记录。假设管理者修改了组织中心的组织目录信息,组织中心会将被修改的信息与涉及的相关信息记录下来。当第三方来获取增量同步或者根据策略下发增量信息时,会把记录变动的信息发出去,第三方根据变动信息进行处理。(这里的变动也包含删除,这里删除不会真删除只是标记为删除)
特殊的增量。分页获取信息,有最大页数限制,频次限制。
SSO 单点,从身份认证源获取信息同步。这里有个弊端就是获取的信息一般不全,且组织目录也不一定能获取。
如果多次修改同一条数据,这里会以时间作为版本进行管理,第三方需要多次拉取变动记录进行更新。
同步策略
主动同步
组织中心主动将数据下发,分为:
人工手动同步
定时全量/增量同步
变动增量同步
被动同步
第三方主动通过接口拉取全量或者增量数据。小细节:拉取时可选择更新旧数据,也可选择只同步组织目录或者人员信息。

总结
组织服务只提供相关的查询接口与批量新增修改接口,新增修改时对失败数据进行返回,具体的数据清洗转化则由清洗服务实际控制。组织中心结合清洗服务可以做到双向同步,既可以收集其它系统的组织信息,也可以把收集完善后的数据下发给第三方系统。但也可能与某些系统结合成环,因此如果一个企业有多个组织源,建议采用其中一个作为上游源,以组织中心作为中间同步件,避免成环。
组织中心结合其它协议及安全策略后,可成为唯一身份认证源中心。其它系统在一定条件下就可以通过这个身份认证中心,达到员工一次登录即可多系统登录的效果,解放 IT 管理员的双手,提高了工作效率的同时也提升了系统的安全性。
公众号:全象云低代码