服务鉴权使用说明

最近更新时间: 2024-09-05 15:09:00

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

步骤1:配置依赖项

  • 对于 Spring Cloud 应用,请参考开发者手册中的 【服务治理】。

  • 对于 Mesh 应用,无须额外配置。

步骤2:设置鉴权规则

  1. 登录 【TSF 控制台】 。

  2. 在左侧导航栏,单击【服务治理】。

  3. 在服务列表,单击服务名,进入服务详情页,选择【服务鉴权】页签。

  4. 在服务鉴权页面,鉴权方式选择【不启用】,单击【新建鉴权规则】,填写鉴权规则和生效状态。

  • 不启用:关闭鉴权功能。

  • 白名单:匹配任意一条规则的请求,允许调用。

  • 黑名单:匹配任意一条规则的请求,拒绝调用。

  1. 鉴权规则创建完成后,选择已生效规则对应的鉴权方式。

注意:

至少有一条规则确认生效后,才能开启对应的鉴权方式。例如只有一条黑名单规则生效,则只能切换到黑名单鉴权方式,不能切换到白名单鉴权方式。

  1. 在该鉴权方式下,可继续添加鉴权规则。

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