nginx 鉴权_k8s中的服务使用proxy auth鉴权

本文介绍了如何在Kubernetes的Nginx Ingress上实现Proxy Auth鉴权,利用外部服务进行登录验证。通过设置HTTP Header X-Forwarded-User来确认用户身份,并详细描述了鉴权流程及失败时重定向到登录页面的机制。通过添加特定的ingress注解,可以实现这一功能。
摘要由CSDN通过智能技术生成

k8s nginx ingress除了可以对服务提供basic权限验证外,也可以使用外部的鉴权服务。我们集群内肯定会有很多服务, 比如我们会有论坛博客、有视频点播等等服务,我们肯定为了避免用户在各个子服务内重复登陆而采用了单点登录服务。很好,而nginx ingress也可以帮我们做一些工作。

比如,我们建立了一套登录与鉴权服务,登录页面URL是http://example.com/login ,鉴权URL是http://example.com/auth,我们约定登录用户会设定一个Header X-Forwarded-User来记录用户名,子服务收到请求直接检查有无此Header即可判断是否是已登录的某用户。

我们的鉴权URL Handler:

    @RequestMapping("/auth")
    public void auth(HttpServletRequest request, HttpServletResponse response) {
    
        if (!UserUtils.isLogin()) {
    
            response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
            return;
        }
        response.setHeader("X-Forwarded-User", UserUtils.GetUserName());
        response.setStatus(HttpServletResponse.SC_OK);
    }

那么只要用户请求经过这个auth接口后会回上Header头

X-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值