全部产品

服务鉴权

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

功能说明

白名单与黑名单

  • 白名单

    • 启用白名单后,白名单下所有已创建的规则都将生效,只有满足白名单规则的请求才可以访问。

    • 属于高危操作,会造成不满足规则的请求被拒绝:请先确认所有规则正确,不需要的规则删除后,再启用白名单。

  • 黑名单

    • 启用黑名单后,黑名单下所有已创建的规则都将生效,满足黑名单规则的请求都将被拒绝。

    • 属于高危操作:请先确认所有规则正确,不需要的规则删除后,再启用黑名单。

  • 白名单和黑名单互斥

    • 在启用白名单时,需先禁用黑名单;在启用黑名单时,需先禁用白名单。

    • 通过服务拓扑或其它监控,发现有未知应用在调用接口,可以建立规则,将其放入黑名单。

    • 对可信度较高应用,可通过规则,将其放入白名单。

访问控制规则

  • 支持添加多条鉴权规则:多条规则之间是 的关系。

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

前置条件

  • 服务网格服务鉴权功能支持 SOFARPC、Dubbo、Spring Cloud 三种框架。其中,Dubbo 和 Spring Cloud 需要确保引入的 sofa-registry-cloud-all 依赖版本为 1.2.8 及以上,详见 SDK 版本说明

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

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

鉴权操作

SOFAStack 平台 > 中间件 > 微服务平台 > 微服务 > 页面,单击 服务治理 > 服务鉴权 标签,可以对鉴权规则进行查询、添加和编辑。

查询鉴权规则

可以根据下述内容,对鉴权规则进行查询:

  • 应用名

  • 服务 ID

添加鉴权规则

单击 添加鉴权规则 按钮,可配置相应的鉴权规则。鉴权规则.png

  • 鉴权粒度:目前仅支持服务级鉴权。

  • 规则名称:支持汉字、英文、数字和下划线。

  • 类型:包括白名单和黑名单。

  • 应用:从下拉框选择一个待鉴权应用。

  • 运行模式:分为 拦截模式观察者模式。两者的主要区别在于触发熔断或者降级时的处理不同:

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

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

  • 匹配条件:可设置多条匹配规则,各匹配规则之间是 的关系。规则主要包括下述内容:

    • 字段:包括系统字段和自定义字段。

    • 字段名:包括调用方应用名、调用方 IP、服务方应用名、服务方方法名。

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

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

更多

选择 添加鉴权规则 按钮右侧 更多 选项,可以全部导入和导出鉴权规则。

编辑鉴权规则

鉴权页面提供两种类型的鉴权规则,用户可对鉴权服务或鉴权应用下的鉴权规则进行查询及编辑。

  • 服务列表:汇总了所有鉴权服务及对应服务下的所有鉴权规则。

  • 应用列表:汇总了所有鉴权应用及对应应用下的所有鉴权规则。

鉴权信息汇总.png

单击单个服务或应用,可对鉴权规则进行下述操作:

  • 开启或关闭黑、白名单。

  • 开启或关闭鉴权规则。

  • 添加、编辑、删除鉴权规则。

查看服务鉴权日志

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