如何设置或编辑 Azure API 管理策略

适用于:所有 API 管理层级

本文介绍如何在 Azure 门户中通过编辑策略定义来配置 API 管理实例中的策略。 每个策略定义是一个 XML 文档,描述针对 API 请求或响应按顺序运行的入站和出站语句序列。

门户中的策略编辑器提供引导式窗体,API 发布者可以使用这些窗体在策略定义中添加和编辑策略。 你还可以直接在策略代码编辑器中编辑 XML。

有关策略的详细信息:

先决条件

如果你没有 API 管理实例和后端 API,请参阅:

转到你的 API 管理实例

  1. 在 Azure 门户中,搜索并选择“API 管理服务”:

    在搜索结果中显示 API 管理服务的屏幕截图。

  2. 在“API 管理服务”页上,选择你的 API 管理实例:

    显示“API 管理服务”页面上的 API 管理实例的屏幕截图。

在门户中配置策略

以下示例演示如何使用门户的策略编辑器中的两个选项配置策略:

  • 基于引导式表单的编辑器,可简化配置大量策略
  • 代码编辑器,可在其中直接添加或编辑 XML

在此示例中,策略将筛选来自特定传入 IP 地址的请求。 筛选范围限定为所选 API。

注意

可以在其他范围配置策略,例如针对所有 API、某个产品或单个 API 操作。 有关其他示例,请参阅本文稍后介绍的配置范围

若要配置策略,请执行以下操作:

  1. 在 API 管理实例的左侧导航栏中,选择“API”。

  2. 选择前面导入的 API。

  3. 选择“设计”选项卡。

  4. 若要将策略应用到所有操作,请选择“所有操作”。

  5. 在“入站处理”部分,选择“+ 添加策略”。

    在 API 管理中添加策略

  6. 在“添加入站策略”中,选择要添加的策略。 例如,选择“筛选 IP 地址”

    筛选 IP 地址策略

    提示

    • 显示的策略范围限定为要配置的策略部分 - 在本例中限定为入站处理。
    • 如果未看到所需的策略,请选择“其他策略”磁贴。 这会打开 XML 代码编辑器,并显示该部分和范围的策略的完整列表。
  7. 选择“允许的 IP”“+ 添加 IP 筛选器”,并添加允许发出 API 请求的传入地址范围的第一个和最后一个 IP 地址。 根据需要添加其他 IP 地址范围。

    配置允许的 IP 地址

  8. 选择“保存”以立即将更改传播到 API 管理网关。

    ip-filter 策略现在会显示在“入站处理”部分。

在不同的范围配置策略

API 管理让你可以在每个策略部分灵活地在多个范围配置策略定义。

重要

并非所有策略都可以在每个范围或策略部分应用。 如果要添加的策略未启用,请确保在支持的策略部分和该策略的范围内操作。 若要查看某个策略的策略部分和范围,请参阅策略参考主题中的“用法”部分。

注意事项

“后端”策略部分只能包含一个策略元素。 默认情况下,API 管理在全局范围的 后端 部分配置 forward-request 策略,并在其他范围配置 base 元素。

全局范围

在您的 API 管理实例中,已将全局范围配置为针对所有 API。

  1. 在 API 管理实例的左侧导航栏中,选择“API”“所有 API”。

  2. 选择“设计”选项卡。

    在产品层面配置策略

  3. 在策略部分,选择“+ 添加策略”以使用表单编辑的策略编辑器,或选择“</>”(代码编辑器)图标直接添加和编辑 XML。

  4. 选择“保存”以立即将更改传播到 API 管理网关。

产品范围

产品范围是针对选定的产品配置的。

  1. 在左侧菜单中选择“产品”,然后选择要对其应用策略的产品。

  2. 在产品窗口中选择“策略”。

    在全局范围配置策略

  3. 在策略部分,选择+ 添加策略以使用基于窗体的策略编辑器,或选择</>(代码编辑器)图标直接添加和编辑 XML。

  4. 选择“保存”以立即将更改传播到 API 管理网关。

API 范围

API 范围是针对选定 API 的所有操作配置的。

  1. 在 API 管理实例的左侧导航栏中选择“API”,然后选择要对其应用策略的 API。

  2. 选择“设计”选项卡。

  3. 选择所有操作

    在 API 范围配置策略

  4. 在策略部分,选择“+ 添加策略”以使用基于窗体的策略编辑器,或选择</>(代码编辑器)图标直接添加和编辑XML。

  5. 选择“保存”以立即将更改传播到 API 管理网关。

操作范围

操作范围是针对选定的 API 操作配置的。

  1. 在 API 管理实例的左侧导航栏中,选择“API”。

  2. 选择“设计”选项卡。

  3. 选择要将策略应用到的操作。

    在操作范围配置策略

  4. 在策略部分,选择“+ 添加策略”以使用基于表单的策略编辑器,或选择“</>”(代码编辑器)图标直接添加和编辑 XML。

  5. 选择“保存”以立即将更改传播到 API 管理网关。

重复使用策略配置

可以在 API 管理实例中创建可重复使用的策略片段。 策略片段是包含一个或多个策略配置的 XML 元素。 策略片段有助于以一致的方式配置策略并维护策略定义,而无需重复或重新键入 XML 代码。

使用 include-fragment 策略在策略定义中插入策略片段。

使用 base 元素设置策略评估顺序

如果在多个范围内配置策略定义,则可将多个策略应用到 API 请求或响应。 根据不同范围内策略的应用顺序,请求或响应的转换可能不同。

在 API 管理中,通过在每个范围的策略定义中放置 base 元素来确定策略评估顺序。 base 元素继承处于下一个更宽泛(父)范围的该部分中配置的策略。 base 元素默认包含在每个策略部分。

注意

若要查看当前范围的有效策略,请在策略编辑器中选择“计算有效策略”。

若要使用策略编辑器修改策略评估顺序,请执行以下操作:

  1. 从您配置的最窄范围的定义开始,API 管理会首先应用它。

    例如,使用在全局范围和 API 范围配置的策略定义时,请先处理 API 范围的配置。

  2. base 元素放在某个部分,以确定要从父范围的相应部分的哪个位置继承所有策略。

    例如,在 API 范围配置的 inbound 部分,放置一个 base 元素,以控制要在哪个位置继承全局范围的 inbound 部分中配置的策略。 在以下示例中,从全局范围继承的策略将先应用,然后再应用 ip-filter 策略。

    <policies>
      <inbound>
          <base />
            <ip-filter action="allow">
                <address>10.100.7.1</address>
            </ip-filter>
      </inbound>
      [...]
    </policies>
    

    注意

    • 可以在部分中的任何策略元素之前或之后放置 base 元素。
    • 若要防止从父范围继承策略,请删除 base 元素。 在大多数情况下,不建议这样做。 但是,在某些情况下,它可能非常有用,例如,当您希望对特定操作应用不同的策略,而不是针对于 API(涵盖所有操作的范围)所配置的策略时。
  3. 在范围逐渐扩大的策略定义中继续配置 base 元素。

    全局范围的策略没有父范围,在其中使用 base 元素不起作用。

获取 Copilot 帮助

从 Copilot 获取 AI 帮助,以创建和编辑 API 管理策略定义。 借助 Copilot,创建和更新符合特定要求的策略,而无需了解 XML 语法,并获取现有策略的说明。 Copilot 还可以帮助你转换你可能在其他 API 管理解决方案中配置的策略。

示例提示:

Generate a policy that adds an Authorization header to the request with a Bearer token.

Copilot 由 AI 提供支持,因此可能会带来意外和错误。 有关详细信息,请参阅 Copilot 常规使用常见问题解答

若要详细了解如何使用策略,请参阅: