将策略添加到 API 部署

您可以为 API 流量配置各种安全策略。此配置要求您指定策略所需的流量选择标准和参数。执行以下步骤将策略添加到 API 定义:

  1. 导航到“安全性”>“API 安全性”>“策略”。

  2. 单击添加

  3. 指定策略组的名称。

  4. 从列表中选择 部署

  5. 从列表中选择要为其配置策略的 上游服务

  6. 单击 添加 选择通信选择器和策略类型。

    流量选择器 -流量选择标准包括 API 资源路径或路径前缀、方法和策略。

    您可以使用以下任一选项来指定流量选择标准:

    • API 资源 — 选择要应用策略的 API 资源及其方法。您可以使用关键字搜索 API 资源和方法。

      流量选择器

      在此示例中,将列出具有 /userPOST 方法的 API 资源。

    • 自定义规则 — 在此选项卡中,您可以指定自定义路径前缀和多种方法。

      配置的策略适用于与 API 流量选择的自定义规则匹配的传入 API 请求。

      自定义策略规则

      在此示例中, No-Auth 策略适用于具有 /bill 前缀和 GET 方法的 API 资源。

    策略中,从列表中选择要应用于所选 API 资源和方法的策略。有关每个策略的更多信息,请参阅 策略类型

  7. 可选,您可以移动策略类型以设置优先级。优先级较高的策略类型首先适用。

  8. 单击“保存”添加策略。如果要立即应用策略,请单击“保存并应用”。

策略类型

配置 API 策略时,可以选择要应用于 API 资源和方法的以下策略:

注意:

要使用 API 管理 API 安全性,请参阅使用 API 管理 API 安全性

选择策略规则

身份验证和授权

API 资源托管在应用程序或 API 服务器上。当您想对此类 API 资源实施访问限制时,可以使用身份验证和授权策略。这些策略验证传入的 API 请求是否具有访问资源的必要权限。

使用以下策略为所选 API 资源定义身份验证和授权:

No-Auth

使用此策略可以跳过对所选流量的身份验证。

Auth-Basic

此策略指定要与 HTTP 基本身份验证方案一起使用的本地身份验证。要使用本地身份验证,必须在 NetScaler 上创建用户帐户。

OAuth

OAuth 要求外部身份提供商使用 oAuth2 对客户端进行身份验证并发出访问令牌。当客户端将此令牌作为 API 网关的访问凭据提供时,该令牌将根据配置的值进行验证。

  • JWKS URI -具有用于智威汤逊(JSON Web 令牌)验证的 JWT(JSON Web 密钥)的端点的 URL

  • 颁发 者-身份验证服务器的身份(通常是 URL)。

  • 受众 -令牌适用的服务或应用程序的标识。

  • 要保存的声 明-访问权限表示为一组声明和预期值。以 CSV 格式指定声明值。

  • 内省 URI -身份验证服务器的内省端点 URL。此 URL 用于验证不透明的访问令牌。有关这些令牌的更多信息,请参阅不透明访问令牌的 OAuth 配置

    指定 Introspect URI后,指定 客户端 ID 和客户 端密 码以访问身份验证服务器。

  • 允许的算法 -此选项允许您限制传入令牌中的某些算法。默认情况下,允许使用所有支持的方法。但是,您可以检查所选流量的所需算法。

成功验证后,API 安全性会授予对客户端的访问权限。

重要:

在为选定的 API 资源配置 OAuth 或 Auth-Basic 策略时,请为其余 API 资源配置“无身份验证”策略。此配置明确表示您希望跳过其余资源的身份验证。

Authorization(授权)

此策略验证访问 API 资源所需的权限。访问权限表示为一组声明和预期值。要配置此策略,请选择 添加新声 明并指定以下内容:

  • 索赔名称
  • 索赔价值

重要:

API 安全性需要针对 API 流量的身份验证和授权策略。因此,您必须使用身份验证策略配置授权策略。身份验证策略可以是 OAuthAuth-Basic

即使您没有任何授权检查,也必须使用空声明创建授权策略。否则,请求会因 403 错误而被拒绝。

速率限制

指定给所选 API 资源的最大负载。使用此策略,您可以监视 API 流量速率并采取预防措施。要配置此策略,请指定以下内容:

  • HTTP 标头名称 -这是一个流量选择器密钥,用于过滤流量以识别 API 请求。此外,利率限制策略仅适用于此类 API 请求并进行监视。

  • 标头值 -对于上述标头名称,这些标头值用逗号分隔。

  • 阈值 -在指定时间间隔内可以允许的最大请求数。如果您指定了 标头值,则此阈值适用于每个标头值。

    示例 1

    当您为标头名称 x-api-key 指定标头值 ("key1","key2","key3") 并将阈值设置为 80 时,设置的阈值适用于每个标头值。

    示例 2

    如果要为每个标头值指定不同的阈值,请使用相同的 HTTP 标头名称创建单独的速率限制策略。

    • Policy-1:为标头名称 x-api-key 指定标头值 ("key1","key2"),并将阈值设置为 80

    • Policy-2:为标头名称 x-api-key 指定标头值 ("key3"),并将阈值设置为 30

    如果您未指定标头值,则阈值适用于指定的 HTTP 标头名称。

  • 时间片 -以微秒为单位指定的间隔。在此时间间隔内,请求将根据配置的限制进行监视。默认情况下,它设置为 1000 微秒(1 毫秒)。

  • 限制类型 -您希望如何应用费率限制策略的模式。您可以选择 突发平滑 限制类型。

  • 操作 -定义要对超出阈值的流量采取的操作。您可以指定以下操作之一:

    • DROP:将请求删除超过配置的流量限制。
    • RESET:重置请求的连接。
    • 重定向:将流量重定向到已配置的 redirect_url。
    • :使用标准响应 (429 Too many requests) 进行响应。

WAF

此政策可防止安全漏洞、数据丢失以及可能对访问敏感业务或客户信息的网站进行未经授权的修改。

在配置 WAF 策略之前,请使用样书在 NetScaler 控制台中创建 WAF 配置文件

WAF 配置文件名称中,选择或指定您创建的 WAF 配置文件。

机器人

此策略可识别坏机器人并保护您的设备免受高级安全攻击。

在配置 BOT 策略之前,请使用样书在 NetScaler 控制台中创建机器人配置文件

机器人配置文件名称中,指定您创建的机器人配置文件。

标题重写

此策略可帮助您修改 API 请求和响应的标题。如果要替换 HTTP 标头中的值,请指定以下内容:

  • HTTP 标头名称:要在请求标头中修改的已提交的名称。

    示例:Host

  • 标题值:可选,要在指定标头名称中修改的值字符串。

    示例:sample.com

  • 标题新值:替换指定标题值的新值。

    如果未指定标头值,它会将任何接收的值替换为 HTTP 标头名称的指定值。

    示例:example.com

在此示例中,标头重写策略在 API 请求的 Host 字段中将 sample.com 替换 example.com

URI 路径重写

此策略可帮助您修改 API 请求和响应的 URI 路径。如果要替换 URI 路径中的分段,请添加一条规则以执行以下操作之一:

  • 替换路径段 -选择此操作类型时,请指定以下内容:

    • 当前路径段 -要替换的路径段。
    • 新路径分段 -仅替换当前路径段的新路径段。

    例如,要将 URI 路径中的区域设置从英语更改为中文,请在 当前路径段中指定 /en-us/。并且,在“新路径段”中指定 /zh-zh。它仅替换路径段并保留剩余的 URI 路径。

  • 替换完整路径 -此操作类型将 API 请求和响应的 URI 路径完全替换为指定路径。如果您在“新路径分段”中指定 /example.html,则 API 请求或响应的 URI 路径将更改为指定路径。

  • 移除路径分段 -此操作将从 URI 中删除指定分段。例如,要从 URI 路径中删除英语语言环境,请在当前路径段中指定 /en-us/

  • 插入路径分段 -此操作将指定段插入到 URI 路径中。要应用此规则,请指定要插入分段的位置。而且,您想插入哪个区段。

    例如,当您想在某个文本后面插入一个段落时,请执行以下操作:

    1. 指定要插入新分段的位置。
    2. 在“当前路径段”中,指定要在其后添加新段的文本。
    3. 在“新路径分段”中,指定要添加的分段。

拒绝

此策略可帮助您拒绝 API 请求访问您的 API 资源。

将策略添加到 API 部署