Compartir a través de

使用工作区进行联合 API 管理

可用性

重要

此功能仅在 API 管理 的高级 层中可用。

本文概述了 API 管理 工作区 ,以及它们如何使分散式 API 开发团队能够在通用服务基础结构中管理和产品化其 API。

为什么组织应该联合 API 管理?

如今,组织在管理 API 激增方面越来越面临挑战。 随着 API 和 API 开发团队的数量的增长,管理它们的复杂性也是如此。 这种复杂性可能导致作开销、安全风险增加,并降低敏捷性。 一方面,组织希望建立集中式 API 基础结构,以确保 API 治理、安全性和合规性。 另一方面,他们希望 API 团队能够创新并快速响应业务需求,而无需管理 API 平台的开销。

API 管理的 联合 模型解决了这些需求。 联合 API 管理允许开发团队进行分散式 API 管理,同时保持由 API 平台团队管理的集中式治理、监视和 API 发现。 此模型克服了替代方法的限制,例如平台团队的完全集中 API 管理或每个开发团队孤立的 API 管理。

联合 API 管理提供:

  • 集中式 API 治理和可观测性
  • 统一的开发人员门户,用于有效的 API 发现和载入
  • API 团队之间的隔离管理权限,提高工作效率和安全性
  • API 团队之间的隔离 API 运行时,提高了可靠性、复原能力和安全性

工作区如何启用联合 API 管理

在 Azure API 管理中,使用 工作区 实现联合 API 管理。 工作区在 API 管理服务中像“文件夹”一样运行:

  • 每个工作区都包含 API、产品、订阅、命名值和相关资源。 有关工作区中支持的资源和作的完整列表,请参阅 API 管理 REST API 参考
  • Teams 对工作区中的资源的访问通过 Azure 的基于角色的访问控制(RBAC)进行管理,其内置或自定义角色可分配给 Microsoft Entra 帐户并限定为工作区。
  • 每个工作区都与一个或多个 工作区网关 相关联,用于将 API 流量路由到工作区中 API 的后端服务。
  • 平台团队可以在工作区中应用跨 API 的 API 策略,并通过开发人员门户实现集中式 API 发现体验。
  • 每个工作区团队都可以收集和分析网关资源日志来监视自己的工作区 API,而平台团队可联合访问 API 管理服务中所有工作区中的日志,从而在整个 API 生态系统中提供监督、安全性和合规性。

包含工作区的 API 管理服务的概念图。

注释

  • API 管理 REST API 版本 2023-09-01-preview 或更高版本支持最新的工作区功能。
  • 有关定价注意事项,请参阅 API 管理定价

虽然工作区独立于 API 管理服务和其他工作区进行管理,但设计可以引用选定的服务级别资源。 请参阅本文后面的 工作区和其他 API 管理功能

示例方案概述

使用 Azure API 管理管理 API 的组织可能有多个开发团队来开发、定义、维护和产品化不同的 API 集。 工作区允许这些团队使用 API 管理单独管理、访问和保护其 API,并独立于管理服务基础结构。

下面是用于创建和使用工作区的示例工作流。

  1. 管理 API 管理实例的中央 API 平台团队会创建一个工作区,并使用 RBAC 角色为工作区协作者分配权限,例如,创建或读取工作区中的资源的权限。 还会为工作区创建工作区范围的 API 网关。

  2. 中心 API 平台团队使用 DevOps 工具为该工作区中的 API 创建 DevOps 管道。

  3. 工作区成员在工作区中开发、发布、产品化和维护 API。

  4. 中心 API 平台团队管理服务的基础结构,例如监视、复原和强制实施所有 API 策略。

工作区的 RBAC 角色

Azure RBAC 用于配置工作区协作者读取和编辑工作区中的实体的权限。 有关角色列表,请参阅 如何在 API 管理中使用基于角色的访问控制

若要管理工作区中的 API 和其他资源,必须将工作区成员分配到作用域为 API 管理服务、工作区和工作区网关的角色(或使用自定义角色的等效权限)。 服务范围内的角色支持从工作区级别资源引用某些服务级别资源。 例如,将用户组织到工作区级别组,以控制 API 和产品可见性。

注释

为便于管理,请设置Microsoft Entra 组,以向多个用户分配工作区权限。

工作区和其他 API 管理功能

工作区设计为独立工作区,以最大程度地隔离管理访问和 API 运行时。 有几个例外情况可以确保更高的工作效率,并启用平台范围的治理、可观测性、可重用性和 API 发现。

  • 资源引用 - 工作区中的资源可以引用工作区中的其他资源,并从服务级别(例如用户、授权服务器或内置用户组)引用其他资源。 它们无法引用另一个工作区中的资源。

    出于安全原因,无法通过工作区级别策略(例如命名值)或资源名称(例如,在 set-backend-service 策略中)backend-id引用服务级别资源。

    重要

    API 管理服务(例如,API、产品、标记或订阅)中的所有资源都需要具有唯一的名称,即使它们位于不同的工作区中也是如此。 不能有同一类型的任何资源,并且同一工作区、其他工作区或服务级别具有相同的 Azure 资源名称。

  • 开发人员门户 - 工作区是一种管理概念,不会向开发人员门户使用者显示,包括通过开发人员门户 UI 和基础 API。 工作区中的 API 和产品可以发布到开发人员门户,就像服务级别上的 API 和产品一样。

    注释

    API 管理支持将服务级别上定义的授权服务器分配给工作区中的 API。

从预览工作区迁移

如果在 Azure API 管理中创建预览工作区并想要继续使用它们,请将工作区迁移到正式版,方法是将工作区网关与每个工作区相关联。

删除工作区

如果要使用 Azure 门户界面删除工作区,删除工作区会删除其所有子资源(API、产品等)及其关联的网关。 它不会删除 API 管理实例或其他工作区。