Menu Close

11.4. 参考器过滤

3scale 支持转译器过滤器功能,可用于将应用程序可以访问 API 的 IP 地址或域名列入白名单。API 客户端在 Referrer 标头中指定 referrer 值。使用 Referrer 标头的目的信息包括在 RFC 7231, section 5.5.2:Referer.

要使 Rerer Filtering 功能正常工作,您必须在服务策略链中启用 APIcast Referrer policy

要启用 Adrer Filtering 功能,请转至 [your_API_name] > Applications > Settings > Usage Rules。选择 Require referr filter 并点击 Update Product

启用推荐程序过滤器

有权访问您的 API 的开发人员必须配置开发人员门户允许的域/IP 引用器。

在 Developer Portal 中配置推荐

在 Admin Portal on the application details 页中,所有属于该服务的应用程序详情页面中会显示一个新的 Referencerer Filters 部分。此处,管理员也可以为此应用程序配置允许参考器标头值的白名单。

在 Developer Portal 中配置推荐

您可以为每个应用程序设置最多五个引用者值。

该值只能包含拉丁字母、数字和特殊字符 *.-. * 只能用于通配符值。如果值设为 *,则允许任何引用器值,因此将绕过引用器检查。

Require referrer 过滤 功能和 3scale Referencerer 策略 被启用时,授权会按以下方式工作:

  1. 没有指定推荐过滤器的应用程序通常只使用提供的凭证获得授权。
  2. 对于设置有引用器过滤器值的应用程序,APIcast 从请求的引用者标头中提取 引用器 值,并将它作为 AuthRep(授权和报告)请求中的 引用器 param 发送到 Service Management API。下表显示了针对引用器过滤参数的不同组合的 AuthRep 响应。
referrer 参数通过?为应用配置了参考器过滤器?引用器参数值HTTP 响应响应正文

匹配引用器过滤器

200 OK

<status><authorized>true</authorized></status>

匹配引用器过滤器

200 OK

<status><authorized>true</authorized></status>

不匹配引用器过滤器

409 冲突

<status><authorized>false</authorized><reason>referrer "test.example.com" is not allowed</reason> (test.example.com 是一个示例)

不匹配引用器过滤器

200 OK

<status><authorized>true</authorized></status>

*

200 OK

<status><authorized>true</authorized></status>

*

200 OK

<status><authorized>true</authorized></status>

 — 

409 冲突

<status><authorized>false</authorized><reason>referrer is missing</reason>

 — 

200 OK

<status><authorized>true</authorized></status>

未经 AuthRep 授权的调用将被 APIcast 拒绝,并显示"Authorization Failed"错误。您可以在服务集成页面上配置确切的状态代码和错误消息。