简介
API Management -> API 与公网的中间层
API 网关是 API Management 的实例
- 控制 API 公开的方式
- 控制对 API 的访问权限
优势
- API 文档,快速公开 API 的结构
- 可托管多个版本的 API,应用可以逐步更新
- 为单个、多个客户端设置速率限制
- 运行情况监控,可查看错误响应和日志文件
- 分析调用频率及调用的系统类型
- 安全性,可与 AAD 集成
定价层
消耗层创建大约需要一分钟,其他大约需要半小时
什么时候适合“消耗”定价层
基本功能
- APIs
- 导入、管理和测试 API
- 可以通过 swagger 生成的 json 文件导入(符合 OpenAPI 规范)
- 官方推荐使用 Azure Powershell 等命令行工具管理 API
- 查看 API 结构
- 可新建具有 Mock Response 的测试用 API
- 导入、管理和测试 API
- 产品
- 多个 API 可以绑为一组产品
- 为产品配置访问权限
- 同一 API 可在不同产品中配置不同权限
- 密钥
- 调用 API 时必需通过 Header 或查询带入
- 可为单个、全部 API 和产品配置密钥
- 密钥可配置访问权限
性能优化(缓存策略)
- API 管理策略
- 入站、出站、后端和出错四个时间
- 全局、产品、API 和操作四个作用域
- 访问权限、身份验证、跨域、转换、重写和重试等策略
- 缓存策略
- 出站存储响应,入站检查是否有缓存响应
- 可存储单个值或全部响应
- 可根据查询字段配置缓存响应
- 可使用 Redis 作为外部缓存,提供更好的缓存配置和更大的空间
- 消耗定价层没有内部缓存(用于无服务 API)
提高安全
- Headers 管理(可用于隐藏服务器信息、版本等)
- 配置转换策略
- JSON XML 互相转换
- 响应正文字符串替换
- 设置后端服务、正文、HTTP 标头
- 增删改查询字符串的参数
- 重写 URL,重写响应正文中的链接
- 限制 API 请求
- 通过订阅限制(API 或操作在一定时长内的调用次数)
- 通过密钥限制(按 IP、域、订阅 ID、标头)
- 身份验证支持密钥和证书
与 Azure AD 结合
- 在 AAD 中为 API 注册应用程序
- 在 AAD 中为 Client 注册应用程序
- 在 API Management OAuth2.0 中配置 OAuth 2.0 服务器
- 在 API Settings 中选择 OAuth2.0 服务器
- 在入站规则中配置检查 Authorization 标头和验证 aud 值
2-4 仅当需要从 API Management 的开发者仪表板访问 API 时配置
OAuth 2.0 配置
请求 API 时可以在客户端弹出登录窗口
部署于 VNET 中
External
Internal