网关与微服务间鉴权的疑惑

查看 68|回复 7
作者:MoonWalker   
最佳实践是什么
  • 1:简单的在网关 filter 里加一个固定的 Token ,各个微服务校验这个 Token 的正确性
  • 2: 网络方案,利用防火墙让微服务仅接受来自网关的流量
  • 3: ?

  • crazycoding   
    1.网关登录保留用户登录信息,返回 token
    2.前端携带 token ,网关层校验 token ,网关层配置默认携带 token header 到各个微服务,各个微服务 filter 解析 token ,保存到 threadlocal ,用于各个微服务上下文获取登录信息
    MoonWalker
    OP
      
    @crazycoding 嗯你说的是正常从网关走到微服务的,我的意思是说如何避免直接绕过网关到微服务
    ChevalierLxc   
    @MoonWalker 你都是网关了,外网就不应该直接能访问到你的微服务,微服务之间的调用,应该有 service secret 的东西调用,外网的 request 无法直接调用微服务。
    zuixinwenyue   
    除了网关流量 其它的全部禁掉就好了,一般也不能直接请求微服务,暴露的应该是网关。
    tianterrence   
    不知道现在外部与网关是怎样鉴权的,当网关鉴权成功后,生成用户 token 通过 head 下发,在内网中各个服务应该是信任的。
    如果确实不信任,或者是敏感业务,可以要求网关生成 jwt token ,各个服务直接从里面获取用户信息,不需要回查其它服务。
    如果整个链路从外到内,都是 jwt token ,那就全部透传即可。
    retanoj   
    @MoonWalker 网关和微服务之间也做认证
    比如服务注册时候派发证书,调用时建立 mTLS 通道
    或者服务注册时候派发 JWT ,调用校验
    buruoyanyang   
    我理解是网关后面的服务应该只能被网关和内部服务调用,可以通过防火墙实现。目前我们是通过 gateway 鉴权的请求都会把 token 解析成对应的用户信息,通过 header 或者其他方式向后续的服务传递。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部