在Spring Cloud Alibaba Sentinel中,授权规则(也称作来源访问控制)主要用来控制哪些调用者可以访问特定资源。它可以实现类似于黑白名单的功能,用于保障服务的安全性。
授权规则主要体现在两个方面:
-
白名单(Whitelist):
白名单表示只有来自于指定源头的调用请求才能通过,否则将被拒绝。在Sentinel中,可以通过配置白名单规则指定允许访问的调用者的名称或者标识符。 -
黑名单(Blacklist):
黑名单则相反,表示来自黑名单中所列源头的调用请求将被拒绝,其他未列出的调用者可以正常访问资源。
配置Sentinel授权规则的一般步骤:
- 在Sentinel控制台中,找到“授权规则”模块。
- 新增规则,配置资源名称(资源名即你要保护的接口或服务)、流控应用(即调用者的标识,如服务名或IP等)、授权类型(白名单或黑名单)以及其他相关信息。
- 保存规则后,Sentinel会自动将规则推送至所有已接入Sentinel的客户端,客户端在收到规则后将开始实施相应的访问控制。
需要注意的是,Sentinel授权规则功能需要配合自定义的RequestOriginParser来解析请求中的来源信息,从而判断请求是否符合规则要求。在Spring Cloud Alibaba环境中,可以实现com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser
接口来定制来源解析逻辑。