在微服务架构中,如果某个服务具有特定的安全访问控制需求,并且不希望任意其他服务进行调用,可以通过实施鉴权机制来实现。这样做可以确保只有经过身份验证且符合预设权限标准的服务才能成功调用该受保护的服务,从而保障系统的安全性和可靠性。
背景信息
下面以一个示例介绍Spring Cloud服务鉴权的使用场景。Dubbo服务鉴权同样适用。
未配置服务鉴权
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的Path2涉及一些核心业务或数据,不希望Consumer 2调用,可以将Path 2对Consumer 2的鉴权方式设置为黑名单(拒绝调用),则Consumer 2只能访问Provider的Path 1和Path 3。
设置完鉴权规则的调用关系如下图所示。
视频教程
操作步骤
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 安全 > 服务鉴权。
在服务鉴权页面单击创建规则。
在创建规则页面设置服务鉴权参数,然后单击确定。
参数
说明
规则名称
鉴权规则名称,支持大小写字母、数字、下划线(_)和短划线(-),长度不超过64个字符。
被调用方类型
根据实际情况选择应用或K8s Namespace。
被调用方(应用)
当被调用方类型选择应用时,选择被调用的应用。
被调用方(K8s Namespace)
当被调用方类型选择K8s Namespace时,选择被调用的应用集群和所在的命名空间。
被调用方框架
被调用的应用所使用的框架,根据需要选择Spring Cloud或者Dubbo。
添加所有接口规则
重要所有接口的通用规则仅支持添加一次。
被调用方Path
默认为所有Path,不可设置。
说明此参数仅适用于Spring Cloud。
被调用方接口
默认为所有服务/所有接口,不可设置。
说明此参数仅适用于Dubbo。
鉴权方式
服务鉴权的方式,包含白名单(允许调用)和黑名单(拒绝调用),请根据实际鉴权需求选择。
调用方
需要鉴权的调用方应用,可以单击添加调用方设置多个需要鉴权的调用方应用。
添加指定接口规则
重要指定接口添加的规则不是追加,而是覆盖针对所有接口的通用规则,请谨慎配置。
被调用方Path
指定被调用应用的Path。
说明此参数仅适用于Spring Cloud。
被调用方接口
指定被调用应用的服务和接口。
说明此参数仅适用于Dubbo。
鉴权方式
服务鉴权的方式,包含白名单(允许调用)和黑名单(拒绝调用),请根据实际鉴权需求选择。
调用方
需要鉴权的调用方应用,可以单击添加调用方设置多个需要鉴权的调用方应用。
默认状态
规则的启用开关。
打开:创建后即启用,默认打开。
关闭:创建后不启用,如果需要启用,请在服务鉴权页面规则的操作列单击开启。
结果验证
服务鉴权规则配置完成且开启后,请根据实际业务验证服务鉴权规则是否生效。
相关操作
服务鉴权规则创建完成后,您还可以编辑规则、根据规则的不同状态关闭规则或开启规则。当不再需要服务鉴权时,删除规则。