应用服务网格 ASM-在ASM中对入口网关进行JWT请求认证:验证JWT认证是否生效
验证JWT认证是否生效
- 使用JWT工具将JWT请求信息编码成JWT Token。
在“Decoded”区域输入以下JWT请求信息,在“Encode”区域将看到自动转换后的JWT Token。
- HEADER:设置alg为“RS512”,输入1创建的JWK中的kid,设置type为“JWT”。
- PAYLOAD:设置iss为“test”,aud为“ASM”,确保与2中配置的发行者、令牌受众保持一致。
- VERIFY SIGNATURE:与1.a中的公钥保持一致。
图4 创建JWT Token
- 通过入口网关访问httpbin服务。
- 执行以下命令,带1创建的JWT Token访问服务。
TOKEN=1创建的JWT Token
curl -I -H "Authorization: Bearer $TOKEN" http://{httpbin服务的外部访问地址}/
预期输出:
HTTP/1.1 200 OK server: istio-envoy date: Wed, 21 Sep 2022 03:11:48 GMT
- 执行以下命令,带无效的JWT Token访问服务。
curl -I -H "Authorization: Bearer invalidToken" http://{httpbin服务的外部访问地址}/
预期输出:
HTTP/1.1 401 Unauthorized www-authenticate: Bearer realm="http://***.***.***.***:***/", error="invalid_token" content-length: 145 content-type: text/plain date: Wed, 21 Sep 2022 03:12:54 GMT server: istio-envoy x-envoy-upstream-service-time: 19
- 修改2中创建的JWT认证,将令牌受众置空(表示对访问的服务不受限制),然后执行以下命令,带1创建的JWT Token访问服务。
curl -I -H "Authorization: Bearer $TOKEN" http://{httpbin服务的外部访问地址}/
预期输出:
HTTP/1.1 200 OK server: istio-envoy date: Wed, 21 Sep 2022 03:20:07 GMT
- 执行以下命令,不带JWT Token访问服务。
curl -I http://{httpbin服务的外部访问地址}/
预期输出:
HTTP/1.1 403 Forbidden content-length: 85 content-type: text/plain date: Wed, 21 Sep 2022 03:29:31 GMT server: istio-envoy x-envoy-upstream-service-time: 6
根据以上结果,可以看到带有正确的JWT Token的请求访问服务成功,带有错误的JWT Token或者不带JWT Token的请求访问服务失败,说明请求身份认证生效。
- 执行以下命令,带1创建的JWT Token访问服务。
- API网关双重认证_双重认证方式_API网关APIG-华为云
- API网关是什么_API网关怎么用_API网关的价格
- API网关流量控制策略_流量管控_API网关APIG-华为云
- 银行卡二、三、四要素验证_银行卡实名认证核验_银行卡实名认证API
- API网关支持http到https自动重定向_开放API_API网关APIG-华为云
- API网关权限管理_授权使用API网关_APIG权限策略和授权项
- 分布式云原生网格类型_华为云分布式云原生_华为云UCS网格类型
- API网关基本概念_云原生API网关_API网关APIG-华为云
- API网关跨VPC开放后端服务_API开放后端服务_API网关APIG-华为云
- API网关的策略_API网关的插件策略_APIG传统策略