ADC

API 规范验证

API 规范可确保通过 API(应用程序编程接口)在系统之间无缝传输数据。它保证交换的数据遵循预定义的结构或格式,从而增强系统的整体可靠性和安全性。

API 规范定义了端点、架构和参数。架构验证是一个允许您检查传入流量是否符合您在 API 规范中提供的架构的过程。通过将 API 规范与 Web App Firewall 配置文件相关联,您可以指定允许哪些传入流量,哪些流量被阻止或记录。根据导入的 API 规范验证传入流量有助于确保网络流量的安全性和合规性。

软件开发中常用几种 API 类型。这些类型决定了不同软件系统之间数据的结构和交换方式。NetScaler 支持以下 API 类型:

  • 代表性状态转移 (REST)
  • Google Remote Procedure Call (gRPC)

API 规范定义了 API 的设计,包括端点、方法、参数和数据格式。这些规范确保了开发和使用 API 时的一致性、互操作性和易用性。NetScaler 支持以下规范格式:

  • Open API(以前称为 Swagger)
  • ProtoBuf(协议缓冲区)

注意:您可以使用 GUI 或 CLI 导入、添加、更新和删除 API 规范文件。有关更多信息,请参阅 导入

使用 CLI 为配置文件分配 API 规范

使用 API 规范文件配置 Web App Firewall 配置文件以验证流量。您可以使用 restAction(用于 REST API)或 grpcAction(用于 gRPC API)参数配置验证失败时使用的操作。

在命令提示符下,键入: set appfw profile <Profile Name> -apispec <API spec entity name>

-  Profile name - The name of the profile.
-  API spec entity name - The name of the entity that is created from the uploaded API specification.

使用 GUI 向配置文件分配 API 规范

  1. 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”,然后单击“添加”。
  2. 为 API 规范架构选择所需的文件,然后单击“确定

使用 GUI 向现有配置文件分配 API 规范

  1. 导航到 安全 > NetScaler Web App Firewall > 配置文件
  2. 选择用户定义的配置文件并单击“编辑”
  3. NetScaler Web App Firewall 配置文件页面上,单击“编辑”图标。
  4. 为 API 规范架构选择所需的文件,然后单击“确定”。

使用 CLI 配置 REST 和 gRPC API 架构验证

在命令提示符下,键入:

set appfw profile <profile name> -restAction [block log   none  stats]
set appfw profile <profile name> -grpcAction [block log   none  stats]
<!--NeedCopy-->

使用 GUI 配置 REST 和 gRPC API 架构验证

要配置或修改 REST 和 gRPC API 架构验证,请执行以下操作:

  1. 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”。**
  2. 选择用户定义的配置文件并单击“编辑”
  3. NetScaler Web App Firewall 配置文件页面上,在“高级设置”部分下,单击“安全检查”。
  4. 安全检查 部分中,选择 R EST API 架构验证gRPC API 架构验证 ,然后单击 操作设置
  5. 操作 页面中,设置 操作参数。您可以选择或清除该选项。
  6. 单击确定

注意:

在配置 API 架构验证的安全检查之前,取消选择“开始 URL”选项。

使用 CLI 为 API 架构验证配置放松规则

配置放松规则,绕过某些流量根据与 Web App Firewall 配置文件关联的 API 规范中指定的架构进行验证。

要配置 REST API 架构验证的放松规则,请在命令提示符处键入:

bind appfw profile <profile name> -restValidation <REST relaxation pattern> -ruleAction <Log|None>

  • REST 放松模式-应用放松效果的 URL 模式。模式可以包括变量和通配符定义,如 Google API 原型中所述当前链接: https://github.com/googleapis/googleapis/blob/master/google/api/http.proto

    指定的 URL 不必是 API 规范的一部分。

    注意: 模式的前缀应具有 HTTP 方法(即GET、PUT、POST、DELETE、PATCH)后跟冒号(:)。 示例:

    • GET:/v1/{name=messages/*} - 允许三个以 /v1/messages 开头的区段 URL,方法为 GET。
    • PATCH:/v1/messages/{message_id=**} - 允许任何带有 /v1/messages 前缀的东西,方法是 PATCH。
    • POST:/v1/lists/** -允许任何带有 /v1/lists 前缀且方法为 POST 的内容。
    • ://engineering/** -允许任何将第二段作为工程分段的 URL,无论使用哪种方法。
  • Log 或 None - 指定是否为匹配规则的绕过流量生成日志。当操作设置为日志时,宽松的 URL 和相应的规则将转储到系统日志中。将操作设置为记录时,宽松的 URL 和相应的规则将记录在系统日志中。

要配置 gRPC API 架构验证的放松规则,请在命令提示符处键入:

bind appfw profile <profile name> -grpcValidation <gRPC pattern> -ruleAction <Log|None>

  • gRPC 模式-应用松弛的 gRPC 端点的模式。指定的 gRPC 方法不必是 API 规范的一部分。

    示例:

    • citrix.api.doc.addBook-允许在 citrix.api.doc 包中使用 RPC AddBook。
    • test.api.** - 允许包中的所有 RPC,以 test.api 开头。
    • *.engineering。** -允许所有以工程作为软件包名称第二段的 RPC。
  • 日志 无-指定是否为匹配规则的绕过流量生成日志。

使用 GUI 为 API 架构验证配置放松规则

REST API 架构验证

  1. 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”
  2. 选择用户定义的配置文件并单击“编辑”
  3. NetScaler Web App Firewall 配置文件页面上,在“高级设置”部分下,单击“放松规则”。
  4. 选择 REST API 架构验证 并单击 编辑
  5. REST API 架构验证放松规则 页面中,单击“添加”。
  6. REST API 架构验证放松规则 页面中,指定以下详细信息:

    1. 已启用 - 选择启用放松规则的选项。
    2. 重置 URL 模式-输入应用松弛效果的 URL 模式。
    3. REST URL 松弛操作-选择一个操作。
    4. 注释-表达式的描述。
    5. 资源 ID-用于标识资源的唯一 ID。
    6. 单击 Create(创建)。 新添加的 REST API 架构验证放松规则在 REST API 架构验证放松规则页面上列出。

gRPC API 架构验证

  1. 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”
  2. 配置文件 页面上,选择一个配置文件,然后单击 编辑
  3. NetScaler Web App Firewall 配置文件页面上的“高级设置”部分下,单击“放松规则”。
  4. 选择 gRPC API 架构验证 并单击 编辑
  5. gRPC API 架构验证放松规则 页面中,单击“添加”。
  6. gRPC API 架构验证放松规则 页面中,指定以下详细信息:
    1. 已启用 - 选择启用放松规则的选项。
    2. gRPC 方法模式-输入应用松弛的 gRPC 方法模式
    3. REST URL 松弛操作-选择任一操作。
    4. 注释-表达式的描述。
    5. 资源 ID-用于标识资源的唯一 ID。
    6. 单击 Create(创建)。 gRPC API 架构验证放松规则页面中列出了新添加的 gRPC API 架构验证放松规则。