使用鉴权功能时,用户需要先在客户端配置依赖项,然后在 TSF 控制台设置鉴权规则。

以下视频将为您介绍 TSF 服务鉴权功能的使用方法:

步骤1:配置依赖项

  • 对于 Spring Cloud 应用,请参考开发者手册中的 服务鉴权
  • 对于 Mesh 应用,无须额外配置。

步骤2:设置鉴权规则

  1. 登录 TSF 控制台
  2. 在左侧导航栏,单击【服务治理】。
  3. 在服务列表,单击服务名,进入服务详情页。
  4. 在服务详情的【服务鉴权】标签页,选择鉴权方式:
    • 不启用:关闭鉴权功能。
    • 白名单:匹配任意一条规则的请求,允许调用。
    • 黑名单:匹配任意一条规则的请求,拒绝调用。
  5. 选择白名单或黑名单,单击【新建鉴权规则】按钮。
  6. 在新建页面中填写规则信息,并选择规则的【生效状态】。

步骤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 是参数)。