汉得鲲苍基础架构管理平台的核心目标是为企业的异构系统提供简单高效的一站式统一闭环管理能力,包括统一资源(集群、主机、存储等)管理、统一应用及部署管理、统一监控管理、统一服务治理,帮助企业实现更快、更好、更全面的异构系统管理。
接下来我们将会提供一系列推文,介绍鲲苍平台的使用,帮助您快速了解本平台,给您更好的使用体验。
本文为系列推文的第十一讲,将介绍如何通过鲲苍实现无代码侵入的、透明的服务网关认证授权能力。
服务认证
认证(Authentication)是验证你的身份凭据(例如用户名和密码),通过这个凭据,系统得以知道你就是你。如果凭据通过系统验证,说明系统有你这个用户,你就能够登录访问系统,否则系统会拒绝你的访问。服务认证常见的实施方式包括单因素认证、双因素认证、多因素认证等,有助于防止未经授权的访问,提高系统和网络的安全性。
服务授权
授权(Authorization)是你通过认证后,确认你是否拥有访问特定资源、执行特定操作的权限。如果有相应权限,就可以访问使用系统的特定功能,否则系统会拒绝你的访问。服务授权可以基于角色、策略、访问控制列表(ACL)等方式进行实施,有助于确保系统的资源得到适当的保护,同时也有助于维护数据的完整性和机密性。
综合而言,服务认证和服务授权是计算机系统和网络安全中的关键组成部分,它们协同工作以确保只有合法的用户或实体能够访问和操作特定的服务和资源,并且在系统中维护了安全性和权限的控制。
◆ 已经与平台建立连接的 K8S 集群(可参见系列推文第一讲)。
◆ 该集群下已创建可用的容器环境(如果仅用于资源管理,可创建空环境)。
应用基础组件上架,平台已内置服务认证组件<istio-authn>、服务授权组件<istio-authz>。
当应用上架后,可以使用该应用进行部署;也可以根据自身需求,将预定义组件复制为自定义组件进行改造后再上架部署。
前置准备
部署服务网关组件
部署基础组件选择 istio-ingress-gateway 组件进行部署,配置处不需要配置认证信息。
详细配置可参见服务网关路由能力文档进行部署配置。
实战一:服务认证-全局校验
部署基础组件选择 istio-authn 组件进行部署,各字段填写如下:
◆ issuer: testing@secure.istio.io
◆ jwksUri(实际部署地址):172.xx.xx.xx:xxxx/jwks.json
◆ 强制校验 Token 必须存在:true
◆ 含义:针对全局访问进行 JWT Token 的认证校验,若 Token 不匹配则限制访问
验证过程
没有 JWT-403
不设置 JWT,403状态码表示认证策略设置生效,校验拒绝了没有携带 JWT Token 的请求访问。
无效 JWT-401
设置无效 JWT,401状态码表示请求 JWT 验证失败。
有效 JWT 但不包含 groups:cliam
Token认证及授权校验都通过了(没有报401 Unauthorized 及403 Forbidden 错误响应),但是基于 JWT claims 的路由失败,404状态码表示没有正确路由返回。
有效 JWT 且包含 groups: group1 claim
设置有效 JWT,且包含 groups:groups1,200状态码表示可以成功访问。
其他网关路由请求
验证其他⽹关路由请求,之前可以正常路由,此时会被授权校验拦截,403状态码表示请求访问被拒绝。
实战二:服务认证-局部校验
部署基础组件选择 istio-authn 组件进行部署,各字段填写如下:
◆ issuer: testing@secure.istio.io
◆ jwksUri(实际部署地址):172.xx.xx.xx:xxxx/jwks.json
◆ 强制校验 Token 必须存在:true
◆ 请求路径列表:/headers
◆ 含义:仅验证请求路径中包含 /headers 前缀的用户请求
验证过程
没有 JWT-403
不设置 JWT,403状态码表示认证策略设置生效,请求路径前缀为 /headers 校验拒绝了没有携带 JWT Token 的请求访问;其他例如携带无效 JWT Token 的访问等与全局校验时演示的效果是一样的。
其他网关路由请求
验证其他网关路由请求,之前会被授权校验拦截,现在因为是局部路由限制,仅限制了 /headers 路径,因此, /status 依然可以访问。
实战三:服务授权-白名单
同服务认证章节,需要依赖⽹关配置。
同时注意,实战三、实战四中黑白名单的授权访问依赖于源IP地址保持,因此必须先通过如下命令更新网关配置,以保持源IP地址:
kubectl patch svc istio-ingressgateway -n istio-system -p '{"spec":{"externalTrafficPolicy":"Local"}}'
当前已经内置到鲲苍集群组件 Istio 中,通过平台集群组件部署的 Istio 无需修改,确认开启即可。
白名单-基于IP地址的允许列表
部署基础组件选择 istio-authz 组件进行部署,各字段填写如下:
◆ 授权动作: ALLOW
◆ 源IP地址列表:1.2.3.4, 5.6.7.0/24
◆ 含义:当访问IP地址为源IP地址列表中所填写地址时,允许访问
验证过程
验证请求被拒绝
403状态码表示授权策略设置生效,校验拒绝了非源IP地址列表来源IP地址的请求访问。
验证请求被允许
更新允许的源IP地址列表,增加如上验证服务器的IP地址,重新访问,此时访问请求被允许。
实战四:服务授权-黑名单
黑名单-基于IP地址的拒绝列表
部署基础组件选择 istio-authz 组件进行部署,各字段填写如下:
◆ 授权动作: DENY
◆ 源IP地址列表:172.xx.xx.xxx(验证服务器的IP地址)
◆ 含义:当访问IP地址为源IP地址列表中所填写地址时,拒绝访问
验证过程
验证请求被拒绝
403状态码表示授权策略设置生效,校验拒绝了源IP地址列表中IP地址的请求访问。
验证请求被允许
重新使用一台不在被拒绝的源IP地址列表中的主机进行请求访问,此时访问请求被允许。
想了解平台更多功能?请关注后续一系列推文~
欢迎在评论区留言,与我们一起探讨服务认证、授权在您业务中的应用潜力~
联系我们:
· 如果您想了解鲲苍 META FOUNDATION 更详细的功能介绍和产品信息,请登录开放平台查阅我们的产品文档
· 如果您有疑问,可以通过开放平台进行工单反馈,问题分类请选择【产品/汉得基础架构管理平台】
相关产品咨询或更多信息了解,欢迎联系我们。