• 微服务架构下的安全认证与鉴权


    https://www.jianshu.com/p/22610b276bee

    https://zhuanlan.zhihu.com/p/29345083

     

     https://www.jianshu.com/p/604bb732ddd4

    • 用户进入网关开始登陆,网关过滤器进行判断,如果是登录,则路由到后台管理微服务进行登录
    • 用户登录成功,后台管理微服务签发JWT TOKEN信息返回给用户
    • 用户再次进入网关开始访问,网关过滤器接收用户携带的TOKEN
    • 网关过滤器解析TOKEN ,判断是否有权限,如果有,则放行,如果没有则返回未认证错误。


    服务之间的鉴权

    因为我们都知道服务之间开源通过注册中心寻到客户端后,直接远程过程调用的。对于生产上的各个服务,一个个敏感性的接口,我们更是需要加以保护。主题的流程如下图:

    笔者的实现方式是基于Spring Cloud的FeignClient Inteceprot(自动申请服务token、传递当前上下文)和Mvc Inteceptor(服务token校验、更新当前上下文)来实现,从而对服务的安全性做进一步保护。

    结合Spring Cloud的特性后,整体流程图如下:

    优化点

    虽然通过上述的用户合法性检验、用户权限拦截以及服务之间的鉴权,保证了Api接口的安全性,但是其间的Http访问频率是比较高的,请求数量上来的时候,慢的问题是就会特别明显。可以考虑一定的优化策略,比如用户权限缓存、服务授权信息的派发与混存、定时刷新服务鉴权Token等。

    结语

    上述是笔者在项目里的大体思路,有兴趣的朋友可以借鉴我的开源项目,欢迎star:

  • 相关阅读:
    struts2+jpa+spring 泛型版小结
    PasswordEncoder
    父窗口 子窗口
    Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
    js 正则表达式
    <aop:config>
    CJDBC
    struts2取值
    mysql启动错误1067的解决
    杂碎
  • 原文地址:https://www.cnblogs.com/duanxz/p/15898590.html
Copyright © 2020-2023  润新知