单点登录用户同步

摩羯座的黄小姐 发布于 2017/08/02 15:48
阅读 1K+
收藏 0

【DevOps必读】产品经理与程序员之间如何破局?>>>

1.       系统A、B、C中都存在老用户,认证中心建立了用户User,User需要和原来系统中的用户进行映射匹配。建立匹配关系的时候,用户的用户名、密码需要和对应系统匹配验证吗?如果填写的用户名、密码不对该怎么处理?

2.       认证中心创建了用户User,User有访问A、B系统的权限,通过MQ到A、B系统推送用户并且新建用户User,推送的时机是什么时候?(如果我把用户User推送到了A系统,用户User又在系统中维护了和A系统中用户的映射关系,用户User不是白推了?这个推送时机很疑惑)

3.       认证中心创建了用户User,User有访问A、B系统的权限,通过MQ推送到A、B系统,假如A系统或者B系统中已经存在了User(用户编号、密码相同),那我还推送吗?

加载中
0
大连馋师
大连馋师

坐等红薯、宏哥出来大法~

摩羯座的黄小姐
摩羯座的黄小姐
坐等红薯大哥
0
DeMoNHaDeS
DeMoNHaDeS

1、看怎么设计。

最清晰简单的设计是用户的用户名密码都统一放到认证中心,ABC系统不留,相当于在任意一个系统登录都是用的同一个用户名密码。这么做的话需要做用户关联和整合。

如果每个系统还是使用原本的用户名密码,那么认证中心就存各个系统的用户关联关系和登录状态。每个系统还是用原本的用户名和密码。这么做的话需要做用户关联。

2、新建用户就是在创建用户时。认证中心的User相当于账户,主要作登录使用,A系统的User相当于用户,主要作维护用户信息使用。

3、已经存在,那就要判断,当前存在的是否跟要创建的匹配,匹配就不需要创建,不匹配就创建失败。

0
kentxp
kentxp

你这个情况 我认为应该是在历史遗留系统之间去建立SSO遇到的问题

我认为能否考虑如下思路

1 合并A,B,C系统账户数据,全部放到认证中心,对于重复的数据,借鉴游戏合并服务器的重名角色思路一样,让用户选择修改。这一步要从数据角度去看 ,代价如何。

2 A,B,C和认证中心之间,建立主从账号体系,认证中心为主,业务系统为从,首次登陆让用户用户输入用户信息以及来源系统,也可以借鉴QQ登陆,微信登陆论坛那种Oauth2.0模式,然后建立认证中心的账户,逐渐淘汰业务系统的账号体系

3 认证中心的新建立的账户,我建议不要推送给业务系统了。

摩羯座的黄小姐
摩羯座的黄小姐
回复 @kentxp : 非常感谢。
kentxp
kentxp
问题1 你弄错了对象的主体,好比你在一个银行办了3张卡,但是这3张卡的持卡人,都是你,至于怎么归并数据 ,需要参考具体业务衡量 问题2 你的原意,应该是在业务系统和SSO之间做数据同步,我不赞同这么处理,数据同步本身也会出现不一致的情况,比如我们常见的微信公众号,微信推送给业务系统的,只有用户的openid,业务系统怎么处理权限,是业务系统的事情,我也比较返回业务系统的权限放在cas中管理。
摩羯座的黄小姐
摩羯座的黄小姐
我还是不太明白,假如张三 原来在A系统注册了1001、B系统注册了1002、C系统注册了1003我都放到了认证中心,那还怎么单点登录?如果认证中心新建的账户User不推到业务系统,那么业务系统怎么给User分配权限?
0
水狐狸
水狐狸

1.把系统A,B,C中的用户全部同步到认证中心,如有重复进行合并;

2. 第一种情况,认证中心包含授权。 如果认证中心包含对子系统的授权,则业务系统中的用户和权限功能全部移除掉,以认证中心的授权和用户为基准,进行单项同步。

    第二种情况,认证中心不包含授权,则需要把认证中心与业务系统中的用户信息需要双向同步,权限功能各业务系统自行处理。

0
摩羯座的黄小姐
摩羯座的黄小姐

引用来自“章玖”的评论

1.把系统A,B,C中的用户全部同步到认证中心,如有重复进行合并;

2. 第一种情况,认证中心包含授权。 如果认证中心包含对子系统的授权,则业务系统中的用户和权限功能全部移除掉,以认证中心的授权和用户为基准,进行单项同步。

    第二种情况,认证中心不包含授权,则需要把认证中心与业务系统中的用户信息需要双向同步,权限功能各业务系统自行处理。

嗯,就是这样处理的,第二种方法 谢谢

0
SimonAt
SimonAt

最近也遇到这种了:

返回顶部
顶部