使用服务鉴权实现Dubbo应用的访问控制

当您的某个微服务应用有安全要求时,您可以对该应用进行接口或方法粒度的访问控制,对调用方进行访问鉴权,仅允许匹配鉴权规则的调用方发起调用,以此提高应用的安全性。本文介绍如何使用服务鉴权实现Dubbo应用的访问控制。

使用场景

未配置服务鉴权

  • 同一命名空间内的服务可以相互调用,Consumer 1、Consumer 2和Consumer 3默认可以调用Provider的所有Path(Path 1、Path 2和Path 3)。
  • 使用MSE网关对Consumer服务进行路由转发,Gateway 1和Gateway 2可以调用Consumer 1、Consumer 2、Consumer 3三个应用实例。
未配置服务鉴权

配置服务鉴权

  • 设置所有接口的鉴权
    • 对Provider的所有接口设置鉴权规则。例如,Provider设置所有接口鉴权规则为:将Consumer 1加入黑名单(拒绝访问),Consumer 2、Consumer 3加入白名单(允许调用)。
    • 对Consumer的所有接口设置鉴权规则。例如,Consumer 1只允许Gateway 1的调用,Consumer 2、Consumer 3只允许Gateway 2的调用,需进行如下操作。
      • Consumer 1设置所有接口鉴权规则,将Gateway 1加入白名单(允许调用)。
      • Consumer 2、Consumer 3设置所有接口鉴权规则,将Gateway 2加入白名单(允许调用)。
  • 设置指定接口的鉴权

    在设置所有Path的鉴权基础上,还可设置Consumer指定Path的鉴权规则。例如,在设置所有Path的鉴权方式下,Consumer 2、Consumer 3可以访问Provider的所有Path,但Provider的Path 2涉及一些核心业务或数据,不希望Consumer 2调用,可以将Path 2对Consumer 2的鉴权方式设置为黑名单(拒绝调用),则Consumer 2只能访问Provider的Path 1和Path 3。

设置鉴权规则的调用示意图如下所示。

已配置服务鉴权
说明
  • 对于作为Readiness或Liveness健康探针的接口,为避免因服务鉴权规则导致应用健康检查失败,请设置该接口的鉴权方式白名单(允许调用),且调用方任意来源
  • 对于在EDAS服务鉴权规则中引用的MSE网关实例,EDAS会默认开启网关插件edas-service-auth。请勿在MSE网关管理控制台随意更改该插件的开启状态和配置内容。

视频

创建服务鉴权规则

  1. 登录EDAS控制台

  2. 在左侧导航栏,选择流量管理 > 微服务治理 > Dubbo

  3. Dubbo左侧导航栏,单击服务鉴权

  4. 服务鉴权页面,单击创建规则

  5. 创建规则面板设置服务鉴权参数,然后单击确定

    服务鉴权-创建规则-Dubbo

    服务鉴权规则参数说明:

    配置项

    说明

    微服务空间

    服务所在的地域微服务空间

    规则名称

    鉴权规则名称,支持大小写字母、数字、下划线(_)和短划线(-),长度不超过64个字符。

    被调用方类型

    默认为应用

    被调用方(应用)

    被调用的应用。

    被调用方框架

    被调用的应用所使用的框架,选择Dubbo

    添加所有接口规则

    重要

    所有接口的通用规则仅支持添加一次。

    被调用方接口

    默认为所有服务 / 所有接口,且该参数值不可修改。

    鉴权方式

    服务鉴权的方式。包含白名单(允许调用)黑名单(拒绝调用),请根据实际鉴权需求选择。

    调用方

    需要鉴权的调用方。

    调用方类型:应用网关任意来源。您可按需选择EDAS应用和MSE网关作为需要鉴权的调用方,也可选择任意来源将接口完全公开。

    说明
    • 应用网关可同时选择,您可添加多个应用和多个网关。

    • 任意来源应用网关互斥。

    添加指定接口规则

    重要

    指定接口添加的规则不是追加,而是覆盖针对所有接口的通用规则,请谨慎配置。

    被调用方接口

    指定被调用应用的服务和接口。

    鉴权方式

    服务鉴权的方式,包含白名单(允许调用)黑名单(拒绝调用),请根据实际鉴权需求选择。

    调用方

    需要鉴权的调用方。

    调用方类型:应用网关任意来源。您可按需选择EDAS应用和MSE网关作为需要鉴权的调用方,也可选择任意来源将接口完全公开。

    说明
    • 应用网关可同时选择,您可添加多个应用和多个网关。

    • 任意来源应用网关互斥。

    默认状态

    规则的启用开关。

    • 打开:创建后即启用,默认打开。

    • 关闭:创建后不启用,需要在服务鉴权页面规则的操作列,单击开启规则

结果验证

服务鉴权规则配置完成且开启后,请根据实际业务验证服务鉴权规则是否生效。

相关操作

服务鉴权规则创建完成后,您还可以在服务鉴权页面,单击对应规则操作列的编辑开启关闭以及删除,对规则进行管理。