• 请不要在回答技术问题时复制粘贴 AI 生成的内容
awanganddong
V2EX  ›  程序员

微服务认证鉴权做在那一层比较好

  •  
  •   awanganddong · Aug 25, 2022 · 4537 views
    This topic created in 1532 days ago, the information mentioned may be changed or developed.

    现在项目代码耦合在一起,现在打算进行重构,目的是用不同语言来对功能模块进行重构。

    现在是 nginx+lua 作为一个简单的网关,进行消息转发。

    现在比较困惑的就是,认证与鉴权是直接在网关层做,

    还是说在后端起一个鉴权服务来进行处理。

    这两者之间比较困惑, 所以想知道下主流的技术方案。

    16 replies  •  2022-08-26 00:38:49 +08:00
    rocbyte
    rocbyte
    Aug 25, 2022
    1
    我觉得在网关层比较好,后面一马平川,像有些接口服务之间调用比较多的话,频繁的鉴权也影响效率
    helone
    helone
    Aug 25, 2022
    2
    网关层
    zzzzz001
    zzzzz001
    Aug 25, 2022
    3
    我的理解,网关 调用 鉴权服务。
    iamtsm
    iamtsm
    Aug 25, 2022
    4
    楼主用 nginx+lua 这块,像网关鉴权的话,市面上也比较多的一些优秀开源框架,kong, apisix, orange 都有类似鉴权插件的。或者自己写一个也行。
    coderxy
    coderxy
    Aug 25, 2022
    5
    lua 里面去调用鉴权服务进行鉴权。
    awanganddong
    awanganddong
    OP
    Aug 25, 2022
    6
    明白大家的意思了,自己用 nginx+lua 写的话,比较可控。
    wetalk
    wetalk
    Aug 25, 2022
    7
    当然 api 层,否则 req 进入到集群内部,不可能每个服务都做一次鉴权
    morty0
    morty0
    Aug 25, 2022❤️2
    8
    网关做通用鉴权, 鉴权服务做特殊业务的鉴权
    wongskay
    wongskay
    Aug 25, 2022
    9
    @morty0 +1
    qfdk
    qfdk
    PRO
    Aug 25, 2022 via iPhone
    10
    来你可以来抄作业了…… 鉴权在 gateway 做, 每个请求都知道是否鉴权了. 就算是前端的请求来了也知道是不是登录了. 虽然可以向 openid 获取 /user 来获取用户. 这样会先一步知道有没有登陆. 每个用户鉴权成功会有 session 在 gateway 产生,具体就是会有个 cookie 存在客户端,每个请求都带有他. 鉴权是单独做的 openid 服务器. gateway 也管着 token 续命.
    adoal
    adoal
    Aug 25, 2022
    11
    认证在网关,鉴权看情况
    Aliberter
    Aliberter
    Aug 25, 2022
    12
    最近刚做了这块,单独起的 auth 服务,然后在网关全局过滤器里通过 feign 调用 auth 服务进行鉴权
    runningman
    runningman
    Aug 25, 2022
    13
    nginx + lua 复杂吗
    xuanbg
    xuanbg
    Aug 25, 2022
    14
    网关!合适做身份认证和鉴权的只有网关。
    mmdsun
    mmdsun
    Aug 25, 2022 via iPhone
    15
    网关验证登陆、和通用鉴权验证签名之类的。

    具体接口的权限判断,下游微服务判断:
    比如你用 sping security 的话,控制器上直接加权限校验注解 @PreAuthorize 就行。
    saberscarlet
    saberscarlet
    Aug 26, 2022
    16
    网关做认证,鉴权,调用单独的 auth 服务,接口权限根据业务判断了,注意 token 的传递
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2814 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 14:06 · PVG 22:06 · LAX 06:06 · JFK 09:06
    ♥ Do have faith in what you're doing.