分布式系统——认证方案

40人浏览

分布式系统

当前流行的微服务就是分布式系统架构。

分布式系统特点:

  • 分布性:可独立部署,服务之间交互通过网络进行通信,比如:订单服务、商品服务;
  • 伸缩性:可集群方式部署,并可针对部分结点进行扩容;
  • 共享性:可作为共享资源对外提供服务;

分布式认证

分布式系统的每个服务都会有认证、授权的需求,需要由独立的认证服务处理系统认证授权的请求;

统一认证授权

提供独立的认证服务,统一处理认证授权。不同种类的客户端(H5、APP),采用一致的认证权限、会话机制,实现统一认证授权。认证方式:用户名密码、短信验证码、二维码、人脸识别等。

应用接入认证

提供安全的系统对接机制,并可开放部分API给接入第三方使用。

分布式认证方案

1 基于session的认证方式
基于session认证,每个应用服务都要在session中存储用户身份信息,负载均衡需要按IP分配或复制session信息,否则会重新认证。

2 基于token的认证方式(推荐)
基于token认证,服务器不用存储认证数据,客户端可以把token存在任意地方,可以实现web和App统一认证机制。可以使用当前流行的Oauth2、JWT等。

分布式认证流程

统一认证服务
承载了OAuth2接入方认证、登入用户的认证、授权以及生成令牌的职责,完成实际的用户认证、授权功能。

API网关
作为系统入口,API网关为接入方提供定制的API集合,还具有身份验证、监控、负载均衡、缓存等功能。