简介

API Management -> API 与公网的中间层
API 网关是 API Management 的实例

  • 控制 API 公开的方式
  • 控制对 API 的访问权限

优势

  1. API 文档,快速公开 API 的结构
  2. 可托管多个版本的 API,应用可以逐步更新
  3. 为单个、多个客户端设置速率限制
  4. 运行情况监控,可查看错误响应和日志文件
  5. 分析调用频率及调用的系统类型
  6. 安全性,可与 AAD 集成

定价层

image.png
消耗层创建大约需要一分钟,其他大约需要半小时

什么时候适合“消耗”定价层

基本功能

  1. APIs
    • 导入、管理和测试 API
      • 可以通过 swagger 生成的 json 文件导入(符合 OpenAPI 规范)
      • 官方推荐使用 Azure Powershell 等命令行工具管理 API
    • 查看 API 结构
    • 可新建具有 Mock Response 的测试用 API
  2. 产品
    • 多个 API 可以绑为一组产品
    • 为产品配置访问权限
    • 同一 API 可在不同产品中配置不同权限
  3. 密钥
    • 调用 API 时必需通过 Header 或查询带入
    • 可为单个、全部 API 和产品配置密钥
    • 密钥可配置访问权限

性能优化(缓存策略)

  1. API 管理策略
    • 入站、出站、后端和出错四个时间
    • 全局、产品、API 和操作四个作用域
    • 访问权限、身份验证、跨域、转换、重写和重试等策略
  2. 缓存策略
    • 出站存储响应,入站检查是否有缓存响应
    • 可存储单个值或全部响应
    • 可根据查询字段配置缓存响应
    • 可使用 Redis 作为外部缓存,提供更好的缓存配置和更大的空间
    • 消耗定价层没有内部缓存(用于无服务 API)

提高安全

  1. Headers 管理(可用于隐藏服务器信息、版本等)
  2. 配置转换策略
    • JSON XML 互相转换
    • 响应正文字符串替换
    • 设置后端服务、正文、HTTP 标头
    • 增删改查询字符串的参数
    • 重写 URL,重写响应正文中的链接
  3. 限制 API 请求
    • 通过订阅限制(API 或操作在一定时长内的调用次数)
    • 通过密钥限制(按 IP、域、订阅 ID、标头)
  4. 身份验证支持密钥和证书

与 Azure AD 结合

  1. 在 AAD 中为 API 注册应用程序
  2. 在 AAD 中为 Client 注册应用程序
  3. 在 API Management OAuth2.0 中配置 OAuth 2.0 服务器
  4. 在 API Settings 中选择 OAuth2.0 服务器
  5. 在入站规则中配置检查 Authorization 标头和验证 aud 值

2-4 仅当需要从 API Management 的开发者仪表板访问 API 时配置

OAuth 2.0 配置

请求 API 时可以在客户端弹出登录窗口

部署于 VNET 中

External
image.png
Internal
image.png

与 Application Gateway 结合

image.png
1_eRNwXNiFLHxafSRV2JBHVw (1).png