1.目前多个业务系统自己维护了用户,按我的理解,应该需要把用户表(例如账号、密码等)提取到一个统一的服务进行账户认证吧? 2.但是有些业务系统的用户表中特殊的用户相关字段和系统的功能深度集成,这些字段是一起提取到认证服务中还是各个业务系统单独维护一张用户表来存这些特殊的用户相关字段? 3.关于权限问题(接口权限),由于每个业务系统的接口权限、角色的表结构相同,是否需要提取到一个统一的权限服务中进行授权和鉴权?
1
pkxutao 2023-03-14 14:47:20 +08:00
个人理解:
1 、最好是这样做 2 、各个系统单独维护,认证系统只维护基本用户信息 3 、也可以各个系统单独维护权限,重点在于你有多大决心去改你的系统,如果系统级重构的话那用户相关的都做到用户系统里面(已经不叫认证系统了),其他的可以做成业务服务,只管业务就行,如果你想最小化修改,那就认证系统只做登录认证,其他维持不变 |
2
aw2350 2023-03-14 15:51:42 +08:00
1 。每个系统在登录时同步存储一下用户信息,存在更新不存在插入,仅限于非敏感信息
3 有一个独立的服务去维护角色鉴权等,包含应用角色各个维度的组合权限交叉,通过中间件或过滤器等进行鉴权 |
3
litchinn 2023-03-15 09:28:55 +08:00
1 楼已经说的很好了,这里做一点具体的补充
1. 可以做一个 IAM 2. 业务相关的各自负责处理,某些共用的也可以业务系统自己再来一个,比如头像,在共有一个的情况下,各个系统也能改成自己独立使用的,这个东西完全看系统的业务设计,没啥最佳实践 3. RBAC 即可,角色在 IAM 中管理,角色所拥有的接口权限由业务系统负责,登录后可以获取用户角色,根据角色判断是否有访问权限 |