Istio 实战:JWT 认证

本文介绍了如何在Istio中实现JWT认证。首先,通过环境准备和配置HTTPBin应用来验证基础功能。接着,详细展示了如何启用JWT验证,创建RequestAuthentication资源并更新VirtualService,以确保只有携带有效JWT的请求才能通过。最后,验证了不同JWT状态的请求响应,并解释了配置细节,包括issuer、jwksUri和JWT claims的匹配规则。
摘要由CSDN通过智能技术生成

文章中使用到的相关资源下载处:istio 实战:JWT认证

前言

请求认证策略指定验证 JSON Web Token(JWT)所需的值。这些值包括:

  • token 在请求中的位置
  • 请求的 issuer
  • 公共 JSON Web Key Set(JWKS)

Istio 会根据请求认证策略中的规则检查提供的令牌(如果已提供), 并拒绝令牌无效的请求。当请求不带有令牌时,默认将接受这些请求。 要拒绝没有令牌的请求,请提供授权规则,该规则指定对特定操作(例如,路径或操作)的限制,即 istio 授权 AuthorizationPolicy CRD

环境准备

  1. 创建命名空间 mm-foo,开启 istio sidecar 自动注入

    kubectl create ns mm-foo
    kubectl edit ns mm-foo # 在 label 处添加 "istio-injection: enabled"
    

    在这里插入图片描述

  2. 创建 httpbin 应用,创建对应的虚拟服务和网关资源

    kubectl apply -f httpbin.yaml
    kubectl apply -f httpbin-gw-vs.yaml
    
  3. 根据 vs 和 gw 配置的域名,修改主机 hosts 文件在这里插入图片描述

  4. 验证 httpbin 功能是否正常工作
    在这里插入图片描述

启用 JWT 验证

  1. 创建请求身份验证以启用 JWT 验证

    kubectl apply -f requestAuth.yaml
    
  • 这个请求身份验证将在 Istio 网关上启用 JWT 校验

  • 这个请求身份验证只应用于入口网关

    请求身份验证将只检查请求中是否存在 JWT
    要使 JWT 成为必要条件, 如果请求中不包含 JWT 的时候就拒绝请求, 请应用任务中指定的授权策略

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    快,把我桶也提着

    如果对您有帮助欢迎支持哦~

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值