将策略添加到 API 部署
您可以为 API 流量配置各种安全策略。此配置要求您指定流量选择标准和策略所需的参数。请按照以下步骤将策略添加到 API 定义:
-
导航到 安全 > API 安全 > 策略。
-
单击 添加。
-
指定策略组的名称。
-
从列表中选择一个 部署。
-
从列表中选择要为其配置策略的 上游服务。
-
单击 添加 以选择流量选择器和策略类型。流量选择器 - 流量选择标准包括 API 资源路径或路径前缀、方法和策略。您可以使用以下任一选项来指定流量选择标准:
-
API 资源 – 选择要应用策略的 API 资源及其方法。您可以使用关键字搜索 API 资源和方法。流量选择器(/en-us/netscaler-console-service/media/create-policy-api-definition.png)在此示例中,列出了具有
POST方法的/userAPI 资源。 -
自定义规则 – 在此选项卡中,您可以指定自定义路径前缀和多个方法。配置的策略适用于与 API 流量选择的自定义规则匹配的传入 API 请求。
在此示例中,无身份验证策略适用于具有/bill前缀和GET方法的 API 资源。
在策略中,从列表中选择要应用于所选 API 资源和方法的策略。有关每个策略的更多信息,请参阅策略类型。 -
-
可选,您可以移动策略类型以设置优先级。优先级较高的策略类型将首先应用。
-
单击保存以添加策略。如果要立即应用策略,请单击保存并应用。
策略类型
配置 API 策略时,您可以选择要应用于 API 资源和方法的以下策略:
注意:
要使用 API 管理 API 安全性,请参阅 (/zh-cn/netscaler-console-service/api-security/use-apis-to-manage-api-security.html)。
身份验证和授权
API 资源托管在应用程序或 API 服务器上。当您希望对此类 API 资源强制实施访问限制时,可以使用身份验证和授权策略。这些策略验证传入的 API 请求是否具有访问资源所需的权限。
使用以下策略为选定的 API 资源定义身份验证和授权:
No-Auth
使用此策略跳过对选定流量的身份验证。
Auth-Basic
此策略指定将本地身份验证与 HTTP 基本身份验证方案一起使用。要使用本地身份验证,您必须在 NetScaler 上创建用户帐户。
OAuth
OAuth 需要外部身份提供商使用 OAuth2 对客户端进行身份验证并颁发访问令牌。当客户端将此令牌作为访问凭据提供给 API 网关时,将根据配置的值验证令牌。
-
JWKS URI - 包含用于 JWT (JSON Web Token) 验证的 JWK (JSON Web Key) 的端点 URL
-
颁发者 - 身份验证服务器的身份(通常是 URL)。
-
受众 - 令牌适用的服务或应用程序的身份。
-
要保存的声明 - 访问权限表示为一组声明和预期值。以 CSV 格式指定声明值。
-
内省 URI - 身份验证服务器的内省端点 URL。此 URL 用于验证不透明访问令牌。有关这些令牌的更多信息,请参阅不透明访问令牌的 OAuth 配置。指定内省 URI 后,指定客户端 ID 和客户端密钥以访问身份验证服务器。
-
允许的算法 - 此选项允许您限制传入令牌中的某些算法。默认情况下,允许所有支持的方法。但是,您可以检查所选流量所需的算法。
验证成功后,API 安全性授予客户端访问权限。
重要提示:
当您为选定的 API 资源配置 OAuth 或 Auth-Basic 策略时,请为其余 API 资源配置 无身份验证 策略。此配置明确表示您希望跳过对其余资源的身份验证。
授权
此策略验证访问 API 资源所需的权限。访问权限表示为一组声明和预期值。要配置此策略,请选择添加新声明并指定以下内容:
-
声明名称
-
声明值
重要提示:
API 安全性要求对 API 流量同时使用身份验证和授权策略。因此,您必须将授权策略与身份验证策略一起配置。身份验证策略可以是 OAuth 或
Auth-Basic。
即使您没有任何授权检查,您也必须创建具有空声明的授权策略。否则,请求将被拒绝并出现 403 错误。
速率限制
指定分配给所选 API 资源的最大负载。通过此策略,您可以监控 API 流量速率并采取预防措施。要配置此策略,请指定以下内容:
-
HTTP 标头名称 - 它是一个流量选择器键,用于筛选流量以识别 API 请求。并且,速率限制策略仅适用于并监控此类 API 请求。
-
标头值 - 这些标头值针对上述标头名称,并以逗号分隔。
-
阈值 - 在指定间隔内允许的最大请求数。如果您已指定标头值,则此阈值适用于每个标头值。示例 1:当您为标头名称
x-api-key指定标头值 ("key1","key2","key3") 并将阈值设置为80时,所设置的阈值将应用于每个标头值。示例 2:如果您想为每个标头值指定不同的阈值,请使用相同的 HTTP 标头名称创建单独的速率限制策略。-
策略 1:为标头名称
x-api-key指定标头值 ("key1","key2") 并将阈值设置为80。 -
策略 2:为标头名称
x-api-key指定标头值 ("key3") 并将阈值设置为30。
如果您未指定标头值,则阈值将应用于指定的 HTTP 标头名称。 -
-
时间片 - 以微秒为单位指定的时间间隔。在此间隔期间,将根据配置的限制监控请求。默认情况下,它设置为 1000 微秒(1 毫秒)。
-
限制类型 - 您希望应用速率限制策略的模式。您可以选择突发或平滑限制类型。
-
操作 - 定义您希望对超出阈值的流量执行的操作。您可以指定以下操作之一:
-
丢弃:丢弃超出配置流量限制的请求。
-
重置:重置请求的连接。
-
REDIRECT:将流量重定向到配置的 redirect_url。
-
RESPOND:使用标准响应进行响应 (
429 Too many requests)。
-
WAF
此策略可防止安全漏洞、数据丢失以及对访问敏感业务或客户信息的网站进行未经授权的修改。
在配置 WAF 策略之前,使用 StyleBooks 在 NetScaler Console 中创建 WAF 配置文件。
在 WAF Profile Name 中,选择或指定您已创建的 WAF 配置文件。
Bot
此策略可识别恶意 Bot 并保护您的设备免受高级安全攻击。
在配置 BOT 策略之前,使用 StyleBooks 在 NetScaler Console 中创建 BOT 配置文件。
在 Bot Profile Name 中,指定您已创建的 BOT 配置文件。
标头重写
此策略可帮助您修改 API 请求和响应的标头。如果要替换 HTTP 标头中的值,请指定以下内容:
-
HTTP Header Name:您要在请求标头中修改的字段名称。示例:
Host -
Header value:可选,您要在指定标头名称中修改的值字符串。示例:
sample.com -
标头新值:用于替换指定标头值的新值。如果未指定标头值,它会将任何收到的值替换为指定给HTTP 标头名称的值。示例:
example.com
在此示例中,标头重写策略会将
sample.com 替换为 example.com,在 API 请求的 Host 字段中。
URI 路径重写
此策略可帮助您修改 API 请求和响应的 URI 路径。如果要替换 URI 路径中的某个段,请添加规则以执行以下操作之一:
-
替换路径段 – 选择此操作类型时,请指定以下内容:
-
当前路径段 – 您要替换的路径段。
-
新路径段 – 仅替换当前路径段的新路径段。
例如,要将 URI 路径中的区域设置从英语更改为中文,请在当前路径段中指定/zh-cn/。然后,在新路径段中指定/zh-zh。它仅替换路径段并保留其余 URI 路径。 -
-
替换完整路径 – 此操作类型会将 API 请求和响应的 URI 路径完全替换为指定的路径。如果您在新路径段中指定
/example.html,则 API 请求或响应的 URI 路径将更改为指定的路径。 -
删除路径段 – 此操作会从 URI 中删除指定的段。例如,要从 URI 路径中删除英语区域设置,请在当前路径段中指定
/zh-cn/。 -
插入路径段 – 此操作会在 URI 路径中插入指定的段。要应用此规则,请指定要插入段的位置以及要插入的段。例如,当您要在某些文本之后插入一个段时,请执行以下操作:
-
指定要插入新段的位置。
-
在 Current Path Segment 中,指定要在其后添加新段的文本。
-
在 New Path Segment 中,指定要添加的段。
-
拒绝
此策略可帮助您拒绝 API 请求访问您的 API 资源。