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

背景信息

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

  • 未配置服务鉴权

    Consumer 1、2、3和Provider在同一个命名空间内,Consumer 1、2和3默认可以调用Provider的所有Path(Path 1、2和3)。

    未配置服务鉴权
  • 配置服务鉴权
    • 设置所有Path的鉴权

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

    • 设置指定Path的鉴权

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

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

    已配置服务鉴权

视频

创建服务鉴权规则

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

    服务鉴权规则参数说明:

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

结果验证

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

后续步骤

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