V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sbex
V2EX  ›  问与答

微服务的服务间调用到底需不需要鉴权?

  •  
  •   sbex · 2023-03-06 11:14:49 +08:00 · 3113 次点击
    这是一个创建于 619 天前的主题,其中的信息可能已经有所发展或是发生改变。

    或者说加了鉴权到底是不是一种明智的选择?有没有什么意义?

    想听一下大家的看法。

    23 条回复    2023-03-07 01:31:59 +08:00
    dobelee
        1
    dobelee  
       2023-03-06 11:20:44 +08:00   ❤️ 1
    内部通信鉴权干嘛?
    Chad0000
        2
    Chad0000  
       2023-03-06 11:22:09 +08:00
    可鉴可不鉴
    kop1989smurf
        3
    kop1989smurf  
       2023-03-06 11:24:33 +08:00
    如果是暴露的 API ,鉴权还是有意义的。关键就是值不值得的问题。
    wangpugod2003
        4
    wangpugod2003  
       2023-03-06 11:24:52 +08:00
    Internal 的 microservices 之间当然不用鉴权,只在 API Gateway 的入口需要。
    xiangxiangxiang
        5
    xiangxiangxiang  
       2023-03-06 11:27:58 +08:00
    我司应该是核心的 RPC 需要鉴权,比如说 IM 消息、交易这些场景
    sbex
        6
    sbex  
    OP
       2023-03-06 11:32:08 +08:00
    @xiangxiangxiang 这个场景鉴权方案选的是什么?如果是那种带有效期的 token ,怎么能维持住鉴权状态的?
    777777
        7
    777777  
       2023-03-06 11:38:47 +08:00
    核心系统还是要鉴权一下,给黑客内网横向设道坎
    PHPer233
        8
    PHPer233  
       2023-03-06 11:41:53 +08:00
    建议鉴权,防止内鬼搞破坏。
    w292614191
        9
    w292614191  
       2023-03-06 11:58:05 +08:00
    走网关啊,我是直接在微服务通过网关去调用其他微服务,这样网关自然鉴权了。
    w292614191
        10
    w292614191  
       2023-03-06 11:58:38 +08:00
    直接注入 @FeignClient("gateway")

    然后就可以了
    xiangxiangxiang
        11
    xiangxiangxiang  
       2023-03-06 11:58:49 +08:00
    @sbex 不是针对用户或者会话的,相当于是对主调方的一个授权,注册中心集成的能力 应该是
    YadongZhang
        12
    YadongZhang  
       2023-03-06 12:03:38 +08:00 via Android
    JWT 鉴权

    https://redis.com/blog/json-web-tokens-jwt-are-dangerous-for-user-sessions/

    直接跳到上面链接 blog 里的 Where can I use it 一节
    mejee
        13
    mejee  
       2023-03-06 12:05:08 +08:00
    需不需要看情况。
    mejee
        14
    mejee  
       2023-03-06 12:07:02 +08:00
    比如某个系统很核心,比如交易、推送,这种还是鉴权比较好。对黑客攻击、内部人员捣鬼、甚至其他主调方的 bug 都有明显的好处。
    比如你们公司很小,人员简单,那么可能也没必要。总之就是看情况,看值不值得搞
    nothingistrue
        15
    nothingistrue  
       2023-03-06 12:10:14 +08:00
    如果能内网隔离或者指定 IP 白名单,那么能不鉴权就不鉴权——在基础设施做要比在上层应用做成本更低。如果是公网上裸奔,那还是老老实实做鉴权。以上是仅限安全控制,不涉及业务上鉴权的时候。如果系统架构设计或者业务上,龟腚就是不同服务之间需要认证授权才能调用,那么也得老老实实做鉴权。
    nicebird
        16
    nicebird  
       2023-03-06 13:26:57 +08:00
    看公司多大,如果你是一个大公司,服务多,集群大,需要鉴权的会很多。如果公司小,就那么些服务,不要整这些。
    miv
        17
    miv  
       2023-03-06 13:32:40 +08:00 via Android
    一般不用啊,微服务是内部服务,自己调。又不是对外的。
    luomao
        18
    luomao  
       2023-03-06 13:46:42 +08:00
    我这边是实现了一个鉴权 jar 包依赖,所有需要鉴权的服务引入,自动在拦截器中做鉴权,微服务间调用时传递用户 token ,不仅方便鉴权,还能在各个服务中获取用户信息
    IDAEngine
        19
    IDAEngine  
       2023-03-06 13:51:28 +08:00
    集群部署走内部 VPN 或虚拟内网没必要鉴权,不然增加额外性能消耗
    keppelfei
        20
    keppelfei  
       2023-03-06 14:37:35 +08:00
    正规公司只有运维有权限拉取生产环境的登录权限,所以鉴权反而增加链路复杂性,要知道鉴权也要时间不是?
    dddd1919
        21
    dddd1919  
       2023-03-06 14:39:22 +08:00
    @PHPer233 家贼难防,零信任基本等同于给自己没事找事
    securityCoding
        22
    securityCoding  
       2023-03-06 21:44:10 +08:00
    敏感业务接口要鉴权
    qfdk
        23
    qfdk  
       2023-03-07 01:31:59 +08:00 via iPhone
    小公司 Gateway 鉴权就好. 大点儿的 服务间不在同一机器 那就加个端对端的鉴权
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4967 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:12 · PVG 09:12 · LAX 17:12 · JFK 20:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.