承接上篇,如果应用都是平台上应用,角色、用户都是统一的,控制体系也一样。但是链接到外部应用就会出问题。
用户同步问题:从门户跳转外部应用时,会带入参数token,应用通过该token访问平台的微服务换成用户信息,然后根据对应关系变换成自己的用户信息即可。
用户同步相对简单,复杂的是权限控制体系。权限本身的控制是应用决定的。但是跳转之前就有个控制问题:窗口里显示的图标是有权限的,无关的不显示。
如果采用外部窗口模式,因为窗口内的信息是应用本身提供的,所以问题相对简单,而且也不需要角色同步。
如果采用注册功能模式,就需要角色同步。机理如下:
平台端:
1、平台创建角色后,可以选择角色点推送,可以在对应外部系统建立角色(严格按id对接),需外部系统实现标准服务。
2、定义角色权限时,同时更新外部应用。
3、授权时,同时更新外部应用。
外部应用:
1、创建角色时,同时在平台创建(调用平台接口)
2、定义角色权限时,同时更新平台。
3、授权时,同时更新平台。
实现了上述双向同步,就可以把外部应用等同为内部应用了。但是也只实现了用户体系一致。最彻底的解决方案还是基于平台重新构建应用。
实质上,组织内部的很多应用都是单体应用,技术体系比较老旧,加上当前的国产化替代浪潮,很多应用本身