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 规范
- 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”,然后单击“添加”。
- 为 API 规范架构选择所需的文件,然后单击“确定”
使用 GUI 向现有配置文件分配 API 规范
- 导航到 安全 > NetScaler Web App Firewall > 配置文件
- 选择用户定义的配置文件并单击“编辑”。
- 在 NetScaler Web App Firewall 配置文件页面上,单击“编辑”图标。
- 为 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 架构验证,请执行以下操作:
- 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”。**
- 选择用户定义的配置文件并单击“编辑”。
- 在 NetScaler Web App Firewall 配置文件页面上,在“高级设置”部分下,单击“安全检查”。
- 在 安全检查 部分中,选择 R EST API 架构验证 或 gRPC API 架构验证 ,然后单击 操作设置。
- 在 操作 页面中,设置 操作参数。您可以选择或清除该选项。
- 单击确定。
注意:
在配置 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 架构验证
- 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”。
- 选择用户定义的配置文件并单击“编辑”。
- 在 NetScaler Web App Firewall 配置文件页面上,在“高级设置”部分下,单击“放松规则”。
- 选择 REST API 架构验证 并单击 编辑。
- 在 REST API 架构验证放松规则 页面中,单击“添加”。
-
在 REST API 架构验证放松规则 页面中,指定以下详细信息:
- 已启用 - 选择启用放松规则的选项。
- 重置 URL 模式-输入应用松弛效果的 URL 模式。
- REST URL 松弛操作-选择一个操作。
- 注释-表达式的描述。
- 资源 ID-用于标识资源的唯一 ID。
- 单击 Create(创建)。 新添加的 REST API 架构验证放松规则在 REST API 架构验证放松规则页面上列出。
gRPC API 架构验证
- 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”。
- 在 配置文件 页面上,选择一个配置文件,然后单击 编辑。
- 在 NetScaler Web App Firewall 配置文件页面上的“高级设置”部分下,单击“放松规则”。
- 选择 gRPC API 架构验证 并单击 编辑。
- 在 gRPC API 架构验证放松规则 页面中,单击“添加”。
- 在 gRPC API 架构验证放松规则 页面中,指定以下详细信息:
- 已启用 - 选择启用放松规则的选项。
- gRPC 方法模式-输入应用松弛的 gRPC 方法模式
- REST URL 松弛操作-选择任一操作。
- 注释-表达式的描述。
- 资源 ID-用于标识资源的唯一 ID。
- 单击 Create(创建)。 gRPC API 架构验证放松规则页面中列出了新添加的 gRPC API 架构验证放松规则。