网关的鉴权功能如何设计?
今天聊一个互联网最特殊的中间件--网关,特殊是因为它与其它中间件相比!
如果你简历上写你懂网关,那么鉴权设计是必问的问题,接下来我们一点点分析鉴权设计时的思考!
在思考前先了解下几个问题:
1.什么是网关
2.网关有什么特殊性
1.什么是网关
网关是应用的所有流量入口,是分布式高性能中间件,具有屏蔽内部逻辑,请求转发,用户鉴权,负载均衡,反作弊的能力!
2.网关有什么特殊性
1.具有高性能
网关的高性能与其它中间件要求都要高,能提升一点点就要提升一点!我们后面讲功能设计时会扣这个细节。
2.高可用
分布式场景下必备技能,网关也不例外
3.可扩展
也是分布式场景必备技能,要想能够方便快速扩展,那么无状态设计是最容易扩展的,在功能设计时尽可能的无状态化设计
鉴权设计方案思考
正常流程:用户访问应用时,通过网关做用户鉴权,如果没有鉴权需要跳转登录,登录完存储鉴权信息,下次在访问时携带鉴权信息,鉴权通过直接转发应用系统,如果鉴权失败则直接返回。我们都知道鉴权信息应该存储在服务端,其中思考:用户鉴权的信息应该如何存储?
第一种方案根据用户的鉴权信息指定在某一个网关交互,这种方案叫Session绑定。看上去这种方案没有毛病,别忘了还可用性和扩展性。
解决可用性问题唯一的办法就是副本冗余,当发生扩容时原来的计算都会失效。很显然这种方案不靠谱
第二种方案为了解第一种方案,我们在把网关的鉴权信息相互复制,每个网关存储所有的数据。这种方案与上一个方案来讲,由于每个网关存储所有的鉴权信息,不依赖于某一个网关。这种方案如果规模小的时没毛病,但当集群大了会造成数据风暴,这种方案也不靠谱。
第三种方案
继续优化第二种方案,如果每台都存储那么会引发数据风暴,那么把数据下沉到中间件,由缓存redis 承接。以正常的应用设计方案来说都是这么设计的,为了数据共享把数据由缓存来承接。那这种方案应该没有问题了吧!
这种方案对应用系统来说没问题, 但对于网关来说会多一次网络IO。对于高性能来说就不友好了,每次用户请求都要访问缓存这更不太靠普了。
第四种方案
继续思考,还有没有第四种方案呢?
(1)存储到指定网关不行
(2)网关存储所有数据不行
(3)下沉到缓存不行
(4)如果鉴权信息存储到客户端呢?
当用户登录后把鉴权信息存储到客户端并存储到服务端的缓存Redis中,每次请求携带token,由网关只做鉴权算法,当鉴权成功直接通过,如果鉴权失败在请求缓存,如果缓存还失败直接返回。
再看下高可用有没有问题? 网关只是鉴权校验的算法,不存在固化数据,属于无状态化设计,支持快速扩展
我们生产上网关是采用cookie+token的方式做鉴权信息存储。如果你有更好的方案,可以一起交流,如果这篇文章对你有用,麻烦关注点赞转发,或关注公众号“猿码”了解更多内容,感谢你的支持!
航天信息申请一种基于网关进行鉴权控制处理的方法和系统专利,通过解决权限控制个性化需求,提高业务处理效率
金融界2024年5月6日消息,据国家知识产权局公告,航天信息股份有限公司申请一项名为“一种基于网关进行鉴权控制处理的方法和系统“,公开号CN117978445A,申请日期为2023年12月。
专利摘要显示,本发明提供一种基于网关进行鉴权控制处理的方法和系统,其中,所述方法包括:网关获取并解析用访问请求;网关查询请求路由,当所述拟访问的业务系统存在时,根据所述用户签名和身份令牌信息对所述用户进行认证,生成认证结果;当所述认证结果为认证通过时,获取与所述身份令牌信息绑定的用户信息和权益配置信息;将所述权益配置信息与数据库和缓存中的预配置信息进行比对,生成比对结果;当所述比对结果为比对一致时,网关接收拟访问业务系统基于所述业务数据包返回的响应信息,并将根据所述响应信息生成的访问结果返回至用户。所述方法和系统借助网关解决权限控制个性化需求的控制问题,降低了系统资源的占用,提高了业务处理的效率。
本文源自金融界
相关问答
网关 认证是什么意思?认证网关是用户进入CA证书认证服务的网络信任域和金融专网应用服务系统前的接入和访问控制设备,它具有用户身份认证代理的功能,能够和证书认证服务系统交互,完...
grpc远程调用能通过 网关 吗?可以通过网关实现grpc远程调用。网关技术可以实现协议转换和流量转发,grpc远程调用采用HTTP/2作为传输协议,在网关中可以进行协议的转换,并将请求转发给后端的...
做物流哪家银行收款好?中信银行。中信银行推行的物流宝就不错。物流宝是中信银行为网络货运商等物流行业提供的专属定制方案,利用国家开放网络货运商资质申请政策窗口,基于业务场景,...
错误代码211是什么意思?...ERR-211解决方案:运营商自定义错误代码ERR-211:以后SP下发订制/退订的通知信息将只被用来确认订制关系,但不会下发到用户手机上,改由SPMS通知,此消息在定...
mme?是什么意思?TA列表的管理-维护TAI和UE位置区(LAI)的映射,UE时区的管理-PDN网关和服务网关的选择-切换到2G/3G时,选择SGSN-MME改变时,选择MME-漫游的处理-鉴权管...
cmnet设置参数?1、打开手机系统设置界面应用,点击页面中的“移动网络”设置选项。2、进入移动网络设置页面之后,点击“接入点名称”设置选项。3、选择默认接入点为cmnet,点...
美国封杀中兴,关键点就是芯片,这个芯片的用途是什么?坦率地讲,以中兴的实力,造个芯片是没问题的,中兴也的确自己制造了很多芯片用于通讯设备上,但是目前仅限于低端芯片可以自力更生,在决定设备关键性能的...五,核心...
微服务架构如何保证安全性?一.微服务架构回顾那我们先回忆一下,常用4种架构之微服务架构。微服务架构,主要是中间层分解,将系统拆分成很多小应用(微服务),微服务可以部署在不同的服...如...
局域网中别人能窃取你的资料吗?局域网到底能不能窃取资料?先给大家说一下,什么叫局域网?#网络##安全##防火墙##病毒##入侵#局域网是同一路由器或交换机,下面连的网段就是一个路由器或交...
中国移动的cmnet怎么设置?参数是多少? - 兔sir 的回答 - 懂得1、打开手机系统设置界面应用,点击页面中的“移动网络”设置选项。2、进入移动网络设置页面之后,点击“接入点名称”设置选项。3、选择默认接入点为...