服务鉴权使用说明
最近更新时间: 2024-10-17 17:10:00
使用鉴权功能时,用户需要先在客户端配置依赖项,然后在 TSF 控制台设置鉴权规则。
步骤1:配置依赖项
对于 Spring Cloud 应用,请参考开发者手册中的 【服务治理】。
对于 Mesh 应用,无须额外配置。
步骤2:设置鉴权规则
登录 【TSF 控制台】 。
在左侧导航栏,单击【服务治理】。
在服务列表,单击服务名,进入服务详情页,选择【服务鉴权】页签。
在服务鉴权页面,鉴权方式选择【不启用】,单击【新建鉴权规则】,填写鉴权规则和生效状态。
不启用:关闭鉴权功能。
白名单:匹配任意一条规则的请求,允许调用。
黑名单:匹配任意一条规则的请求,拒绝调用。
- 鉴权规则创建完成后,选择已生效规则对应的鉴权方式。
注意:
至少有一条规则确认生效后,才能开启对应的鉴权方式。例如只有一条黑名单规则生效,则只能切换到黑名单鉴权方式,不能切换到白名单鉴权方式。
- 在该鉴权方式下,可继续添加鉴权规则。
步骤3:切换鉴权方式(可选)
用户可以通过控制台,从一种鉴权模式切换到另外一种鉴权模式。
白名单切换到黑名单(或黑名单切换到白名单):不能直接切换,需要先切换到不启用,生效一条黑名单(白名单)规则后,才能切换到黑名单(白名单)。
白名单(或黑名单)切换到不启用:关闭鉴权功能。
步骤4:检查鉴权效果
以官网 Demo 为例说明如何验证鉴权功能。consumer-demo 中已包含鉴权依赖 jar 包,因此这里只需要说明在控制台上创建鉴权规则用来限制特定 API 的调用。
consumer-demo 中提供了三个 API /echo-rest/{str}
、/echo-async-rest/{str}
、/echo-feign/{str}
。在控制台上新建鉴权规则,鉴权方式为白名单,鉴权规则的标签表达式:
创建好规则后,登录机器,使用 curl 命令来验证鉴权是否生效。
命令 | 预期 |
---|---|
curl IP:PORT/echo-rest/hello?user=test |
正常返回 |
curl IP:PORT/echo-async-rest/hello?user=test |
返回鉴权失败 |
curl IP:PORT/echo-feign/hello?user=test |
返回鉴权失败 |
限制说明
等于、不等于、包含、不包含属于严格匹配,正则表达式属于模糊匹配。因此当系统标签是被调方 API PATH 时,目前仅支持使用正则表达式的逻辑关系来匹配带参数的 API 请求。
例如标签的逻辑关系是正则表达式,值填写 /echo/.*
,可以匹配带参数的请求 /echo/test123 (其中 test123 是参数);当标签的逻辑关系是等于、不等于、包含、不包含关系,值是 /echo/{param}
时,不能匹配带参数的请求 /echo/test123 (其中 test123 是参数)。