哪个网站可以免费做国外网站,怎么设置网站的logo,门户网站开发使用什么语言,网站怎么做弹框一.分布式系统的认证授权大致架构
以云音乐系统为例#xff1a; 注#xff1a;一般情况下#xff0c;我们会把认证的部分的接口提取为一个单独的认证服务模块中。
二.单点登录#xff08;Single Sign On#xff09;
单点登录#xff0c;Single Sign On#xff0c;简称…一.分布式系统的认证授权大致架构
以云音乐系统为例 注一般情况下我们会把认证的部分的接口提取为一个单独的认证服务模块中。
二.单点登录Single Sign On
单点登录Single Sign On简称为 SSO。
SSO的定义是在多个应用系统中用户只需要登录一次就可以访问所有相互信任的应用系统。 就比如说淘宝和天猫是两个系统但有了单点登录统一认证后我们在登录淘宝后发现天猫也可以自动登录使用。
这样用户只需要认证一次便可以在多个拥有访问权限的系统服务中访问提高了用户体验性。这个功能就叫做单点登录。 简单说就是原来每个系统都需要一个认证服务现在把这些认证服务集中在一个系统服务中统一认证即可。
三.使用JWTJSON Web Token
【1】JWT简单说就是一串JSON字符串一串经过加密的签名密钥里面包含了用户的身份信息。相比于基于session的传统方法使用JWT我们可以无状态认证。
【2】传统的基于session的方式是有状态认证用户登录成功将用户的身份信息存储在服务端并且加大了服务端的存储压力。 并且校验令牌需要远程请求认证服务客户端的每次访问都会远程校验执行性能低这种方式不适合在分布式系统中应用。 虽然有Session复制、Session黏贴等解决问题的方式但是并不好用。 【3】使用JWT我们可以无状态认证。JWT能够让资源服务自己校验令牌的合法性将省去远程请求认证服务的成本提高了性能并且节省了存储的成本。 用户认证通过后会得到一个JWT令牌JWT令牌中已经包括了用户相关的信息客户端只需要携带JWT访问资源服务资源服务根据事先约定的算法自行完成令牌校验无需每次都请求认证服务完成授权。 四.引入网关
【1】一般微服务都会使用网关。之前我们是在每个服务中进行认证和授权而认证部分是每个服务都共有的完全可以将这个操作放在网关中完成。
在网关中进行用户身份的认证可以将很多非法的请求拦截到微服务之外这叫做网关认证。
【2】网关的职责
1、网站白名单维护
针对不用认证的URL全部放行。
2、校验jwt的合法性。
除了白名单剩下的就是需要认证的请求网关需要验证jwt的合法性jwt合法则说明用户身份合法否则说明身份不合法则拒绝继续访问。
【3】网关不负责授权对请求的授权操作在各个微服务进行因为微服务最清楚用户有哪些权限访问哪些接口。