全部产品
云市场

服务访问控制

更新时间:2020-04-27 15:50:11

通过创建访问控制规则,RPC 服务的提供者可以为特定的调用者添加或限制访问授权,灵活地调整服务订阅者调用本服务的权限。

前置条件

  1. SOFABoot 版本必须是 3.1.1 或以上。
  2. 在工程的 pom.xml 文件中,引入动态配置依赖:
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>ddcs-enterprise-sofa-boot-starter</artifactId>
    4. </dependency>
  3. 在 RPC 服务端和客户端的 application.properties 文件中,添加以下配置:
    1. com.alipay.sofa.rpc.dynamic-config=drm
  4. 在引入 RPC jar 包的 pom.xml 文件中,引入 sofa-configuration-sdk
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>sofa-configuration-sdk</artifactId>
    4. <version>0.1.1</version>
    5. </dependency>

服务访问控制说明

白名单与黑名单

访问控制可通过设置 白名单(whitelist)或 黑名单(blacklist)完成。白名单与黑名单互斥,二者无法同时开启。每个服务的访问控制只能启用其中一种模式。

  • 白名单模式:只有符合白名单规则的服务调用者有访问权限。白名单外的所有请求都会被拒绝。
  • 黑名单模式:所有符合黑名单规则的服务调用者将被拒绝访问。黑名单外的所有请求都被允许。

白名单与黑名单

规则说明

白名单与黑名单均由一条或多条规则构成。多条规则间用 (OR)的关系连接。一旦名单被启用,访问请求只要满足其中任意一条已启用的规则,即被视为满足过滤条件。

说明:只有处于“已启用”状态的规则才被用来做访问请求的规则匹配。

规则构成

  • 规则名:由汉字、英文字母、数字、下划线组成。
  • 状态:已启用 或 已禁用。
  • 匹配条件:一条规则由一个或多个匹配条件构成,多个匹配条件间用 的关系连接。
  • 操作:编辑规则、删除规则。

匹配条件

规则匹配条件支持使用系统字段或自定义字段做匹配。

  • 系统字段
    • 调用方应用名
    • 调用方 IP
    • 服务方应用名
    • 服务方服务名
    • 服务方方法名
  • 自定义字段:支持自定义字段名。
  • 逻辑关系(操作符):
    • 等于
    • 不等于
    • 属于
    • 不属于
    • 正则:使用正则表达式匹配。
  • 字段值