当您的某个微服务应用有安全要求,不希望其它所有应用都能调用时,可以对调用该应用的其它应用进行鉴权,仅允许匹配鉴权规则的应用调用。

背景信息

下面以一个示例介绍Dubbo服务鉴权的使用场景。

  • 未配置服务鉴权

    Consumer 1、2、3和Provider在同一个命名空间内,Consumer 1、2和3默认可以调用Provider的所有服务和接口。

    未配置服务鉴权
  • 配置服务鉴权
    • 设置所有服务和接口的鉴权

      可以对Provider的所有服务和接口设置鉴权规则,例如Provider所有服务和接口的鉴权规则设置为拒绝Consumer 1调用(黑名单),则允许Consumer 2、3调用(白名单)。

    • 设置指定服务和接口的鉴权

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

    设置完鉴权规则的调用关系如下图所示。

    已配置服务鉴权

创建服务鉴权规则

  1. 登录MSE管理控制台
  2. 在左侧导航栏选择微服务治理中心 > 服务鉴权
  3. 服务鉴权页面单击创建规则
  4. 创建规则页面设置服务鉴权参数,然后单击确定
    创建规则-Dubbo

    服务鉴权规则参数说明:

    参数 说明
    规则名称 鉴权规则名称,支持大小写字母、数据、下划线(_)和中划线(-),长度不超过64个字符。
    被调用方框架 被调用的应用所使用的框架,选择Dubbo
    被调用方 被调用的应用。
    添加所有接口规则
    注意 所有接口的通用规则仅支持添加一次。
    被调用方 默认为所有服务/所有接口,不可设置。
    鉴权方式 服务鉴权的方式,包含白名单(允许调用)黑名单(拒绝调用),请根据实际鉴权需求选择。
    调用方 需要鉴权的调用方应用,可以单击添加调用方设置多个需要鉴权的调用方应用。
    添加指定接口规则
    注意 指定接口添加的规则不是追加,而是覆盖针对所有接口的通用规则,请谨慎配置。
    被调用方接口 指定被调用应用的服务和接口。
    鉴权方式 服务鉴权的方式,包含白名单(允许调用)黑名单(拒绝调用),请根据实际鉴权需求选择。
    调用方 需要鉴权的调用方应用,可以单击添加调用方设置多个需要鉴权的调用方应用。
    默认状态 规则的启用开关。
    • 打开:创建后即启用,默认打开。
    • 关闭:创建后不启用,如果需要启用,请在服务鉴权页面规则的操作列单击开启规则

结果验证

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

后续步骤

服务鉴权规则创建完成后,您还可以编辑规则、根据规则的不同状态关闭规则或开启规则。当不再需要服务鉴权时,删除规则。