服务鉴权

服务提供者提供服务后,您可以通过服务鉴权功能对服务调用方进行鉴权。

注意事项

  • 在使用容器应用服务发布应用时,应用名称必须与本地应用注册代码配置的 spring.application.name 一致。

  • 请确保 SOFABoot 版本在 3.3.3 及以上。有关 SOFABoot 的版本信息,请参见 版本说明

  • 使用服务鉴权时,application.properties 文件中需要额外添加如下配置:

    com.alipay.sofa.rpc.dynamic.alias=drm

    application.properties 文件说明请参见 应用维度配置扩展

添加鉴权规则

  1. 登录 SOFAStack 控制台

  2. 在左侧菜单栏选择 中间件 > 微服务平台 > 微服务 > 服务治理,然后单击 服务鉴权 页签

  3. 单击 添加鉴权规则,然后配置以下参数:

    参数

    说明

    鉴权粒度

    配置鉴权的粒度,可选值为:

    • 应用级:对某个应用添加鉴权规则。

    • 服务级:对应用下的一个或多个服务添加鉴权规则。

    规则名称

    配置鉴权规则的名称。

    仅支持中文、英文、数字、下划线(_)。

    类型

    配置鉴权类型,可选值为:

    • 白名单:选择此项时,匹配条件的请求会被放通。

    • 黑名单:选择此项时,匹配条件的请求会被拒绝。

    应用

    选择待鉴权的应用。

    服务

    选择或填写应用下的一个或多个服务。仅在 鉴权粒度 选择 服务级 时配置。

    运行模式

    配置服务鉴权规则的运行方式,取值如下:

    • 拦截模式:鉴权规则生效,则拒绝请求。

    • 观察者模式:鉴权规则生效时,不拒绝请求,只打印日志。

    匹配条件

    配置鉴权规则的匹配条件,符合条件的流量会被鉴权。

    可配置多条匹配规则,各匹配规则之间是“与”的关系。参数配置如下:

    • 字段:可选择系统字段和自定义字段。

    • 字段名:根据字段类型有不同的值。

      • 系统字段:可选择调用方应用名、调用方 IP、服务方应用名、服务方方法名。

      • 自定义字段:根据实际需求自行设置字段名。

    • 选择逻辑:包括等于、不等于、属于、不属于、正则。

    • 字段值:填入所选字段的值。

  4. 单击 提交,然后单击 确定

  5. 在鉴权规则列表中,将刚刚创建的鉴权规则的状态改为

  6. 根据设置的类型打开白名单或黑名单的开关。

    规则类型为白名单时,打开白名单开关;反之,打开黑名单开关。否则,鉴权规则不生效。

编辑鉴权规则

您可以随时编辑已创建的鉴权规则,规则提交后实时生效。

  1. 服务鉴权 页签,单击目标服务左侧的加号(+)。

  2. 单击目标鉴权规则右侧的 编辑

  3. 按需求编辑鉴权规则后,单击 提交

删除鉴权规则

您可以删除已创建的鉴权规则,删除操作实时生效,请谨慎操作。

  1. 服务鉴权 页签,单击目标服务左侧的加号(+)。

  2. 将目标鉴权规则的状态改为

  3. 单击目标鉴权规则右侧的 删除。然后单击 确定

查看服务鉴权日志

您可以前往 mosn-sidecar-container 容器,服务鉴权日志打印在 /home/admin/logs/mosn/rbac.log 文件中。