SOA 统一认证(清晰理解 + 背诵版)
一、先搞懂什么是 SOASOA面向服务架构把系统拆成多个独立服务用户服务、订单服务、商品服务、支付服务……每个服务独立部署、独立运行通过接口互相调用。问题来了如果每个服务自己做登录、校验、权限会重复开发、维护麻烦、体验不一致。 所以需要统一认证。二、SOA 统一认证 核心目的必背一次登录全网通行SSO 单点登录所有服务共用一套认证逻辑不重复造轮子集中管理账号、权限、会话减少服务耦合提高安全性一句话所有服务共用一个 “门卫”只认门卫发的通行证。三、核心角色4 个很好记客户端浏览器 / APP用户业务服务订单、商品、支付各个子系统认证中心Auth Server统一门卫负责登录、发令牌资源服务用户信息 / 权限给认证中心提供数据四、最经典流程SSO 统一认证流程场景用户第一次访问订单服务用户访问订单服务没登录 → 跳转到认证中心用户在认证中心输入账号密码认证中心校验成功生成唯一令牌 Token返回给浏览器浏览器保存 TokenCookie / 本地存储之后访问任何服务请求头带上 Token业务服务拿到 Token去认证中心校验是否有效校验通过 → 正常访问不通过 → 重新登录核心Token 通行证一次颁发多服务通用五、常用两种实现方案面试必问1. Session 共享方案传统 SOA把登录 Session 存在 Redis所有服务共享优点简单、兼容老系统缺点有状态服务要频繁查 Redis扩展性一般2. JWT 令牌方案现代主流JWTJSON Web Token认证中心签发加密字符串 Token自带用户信息、权限、过期时间服务不用查中心自己解密就能验证优点无状态、性能高、跨服务跨端缺点一旦签发无法主动作废需配合黑名单 / 短过期六、统一认证解决的问题背诵清单重复开发登录模块不用每个服务写账号密码校验登录体验差不用频繁登录SSO权限分散混乱集中管理角色、菜单、接口权限安全管控难统一做验证码、风控、密码策略、日志审计服务调用鉴权服务之间互相调用也要认证微服务也在用七、SOA 统一认证 和 微服务认证的关系SOA 统一认证是思想微服务是升级版实现SOA偏企业内部系统常用 Session / 单点登录微服务常用OAuth2 JWT更标准、更开放八、极简背诵口诀面试直接说SOA 统一认证就是单点登录 SSO搭建认证中心用户一次登录拿到 Token访问所有业务服务时带上令牌统一校验实现账号、登录、权限集中管理解决重复开发、频繁登录、安全管控问题常用实现有 Session 共享和 JWT。