全部产品

服务管控--鉴权

更新时间:2020-07-22 10:49:39

服务提供者提供服务后,通过 服务鉴权 功能,对服务调用方进行鉴权,主要用于鉴定哪些服务调用者有权限调用所提供的服务。

功能说明

白名单与黑名单

  • 白名单
    • 启用白名单后,白名单下所有已创建的规则都将生效,只有满足白名单规则的请求才可以访问。
    • 属于高危操作,会造成不满足规则的请求被拒绝:请先确认所有规则正确,不需要的规则删除后,再启用白名单。
  • 黑名单
    • 启用黑名单后,黑名单下所有已创建的规则都将生效,满足黑名单规则的请求都将被拒绝。
    • 属于高危操作:请先确认所有规则正确,不需要的规则删除后,再启用黑名单。
  • 白名单和黑名单互斥
    • 在启用白名单时,需先禁用黑名单;在启用黑名单时,需先禁用白名单。
    • 通过服务拓扑或其它监控,发现有未知应用在调用接口,可以建立规则,将其放入黑名单。
    • 对可信度较高应用,可通过规则,将其放入白名单。

访问控制规则

  • 支持添加多条鉴权规则:多条规则之间是 的关系。
  • 每条规则支持多个匹配条件:每条规则的多个匹配条件之间是 的关系。

操作步骤

前置条件

  • 服务网格服务鉴权功能支持 SOFARPC、Dubbo、Spring Cloud 三种框架。其中,Dubbo 和 Spring Cloud 需要确保引入的 sofa-registry-cloud-all 依赖版本为 1.2.8 及以上,详见 SDK 版本说明
  • 在使用容器应用服务发布应用时,应用名称必须与本地应用注册代码配置的 spring.application.name一致。

添加访问控制规则

  1. 微服务平台 > 服务网格 > 服务管控 页面,点击自己的 服务 ID,进入 服务详情 页面。
  2. 选择 服务鉴权 标签,进入 访问控制 页面。
  3. 选择白名单或黑名单访问控制,点击 开始创建,即可开始配置访问控制规则:
    • 规则名:支持汉字、英文、数字和下划线。
    • 模式:变更模式需要更新规则才能生效。
      • 严格模式:拒绝请求。
      • 非严格模式:不拒绝请求,只打印日志。
    • 匹配条件:通过添加字段及字段间关系,实现条件匹配。
      1. 选择 字段类型字段名
        • 系统字段:调用方应用名、调用方 IP、服务方应用名、服务方服务名、服务方方法名。
      2. 选择 逻辑关系:等于、不等于、属于、不属于、正则(使用正则表达式匹配)。
      3. 输入待匹配的 字段值服务鉴权实例
  4. 点击 保存

查看服务鉴权日志

可以前往 mosn-sidecar-container 容器查看服务鉴权日志:/home/admin/logs/mosn/rbac.log