> **来源:[研报客](https://pc.yanbaoke.cn)** # API 网关开发指南总结 ## 核心内容 本文档主要介绍如何使用 API 网关进行 API 调用认证,包括 APP 认证和 IAM 认证两种方式。其中,APP 认证通过签名机制实现,而 IAM 认证则分为 Token 认证和 AK/SK 认证。此外,文档还提供了针对不同编程语言(Java、Go、Python、C# 等)的开发示例,帮助开发者实现 API 的安全调用。 ## 主要观点 - API 网关支持多种认证方式,开发者需根据实际业务需求选择合适的认证方法。 - APP 认证需要使用 Key 和 Secret 进行签名,确保请求的合法性和完整性。 - IAM 认证分为 Token 认证和 AK/SK 认证,其中 Token 认证需要先获取认证 Token,AK/SK 认证则需要使用访问密钥对请求进行签名。 - 后端服务需要集成 API 网关提供的 SDK,并对请求中的签名信息进行校验,以确保安全性。 - 不同语言的 SDK 提供了相应的示例代码,便于开发者快速集成和调用 API。 ## 关键信息 ### 1. 使用场景 - **API调用认证开发**:需要在业务系统侧进行认证信息的添加。 - **APP认证调用API**:通过 Key、Secret 和 SDK 对请求进行签名认证。 - **IAM认证调用API**: - **Token认证**:获取 Token 并将其作为请求头携带。 - **AK/SK认证**:通过 AK 和 SK 进行签名处理。 - **后端服务签名校验开发**:若 API 绑定了签名密钥,API 网关会在请求中携带签名信息,后端服务需进行校验。 ### 2. APP 认证流程 #### 2.1 认证前准备 - 获取 API 的请求信息(域名、请求路径、请求方法)。 - 获取 API 的认证信息(Key 和 Secret)。 - 确保 API 已发布到指定环境。 #### 2.2 认证工作原理 1. **构造规范请求**:按照 API 网关的规则组装请求内容。 2. **创建待签字符串**:结合签名算法、请求时间戳和规范请求进行计算。 3. **计算签名**:使用 Key 和 Secret 对待签字符串进行 HMAC-SHA256 哈希运算。 4. **添加签名信息到请求头**:将签名结果添加到 Authorization 请求头中。 #### 2.3 签名约束 - APP 签名仅支持 Body 体 12M 及以下的请求。 - X-Sdk-Date 请求头需为 UTC 时间格式,且时间差不得超过 15 分钟。 ### 3. 不同语言的开发示例 #### 3.1 Java - **前提条件**:安装 IDEA、JDK8 或以上。 - **SDK 获取**:从 API 网关控制台下载 Java SDK,解压后包含核心类和示例代码。 - **配置 Maven**:在 `pom.xml` 文件中添加依赖,并配置 `settings.xml` 文件以使用华为云 SDK 仓库。 - **示例代码**: - 导入 SDK 包。 - 设置 Key 和 Secret。 - 构造请求并进行签名。 - 发送请求并处理响应。 #### 3.2 Go - **前提条件**:安装 Go 1.14 或以上版本和 IDEA。 - **SDK 获取**:下载 Go SDK,解压后包含 SDK 代码和示例文件。 - **示例代码**: - 导入 SDK 包。 - 设置 Key 和 Secret。 - 构造请求并添加签名头。 - 发送请求并处理响应。 #### 3.3 Python - **前提条件**:安装 Python 2.7.9 或 3.X 版本和 pip。 - **SDK 获取**:下载 Python SDK,解压后包含 SDK 代码和示例文件。 - **示例代码**: - 导入 SDK 模块。 - 设置 Key 和 Secret。 - 构造请求并进行签名。 - 发送请求并处理响应。 #### 3.4 C# - **前提条件**:安装 Visual Studio 2019 version 16.8.4 或以上版本。 - **SDK 获取**:从 API 网关控制台下载 C# SDK,并打开对应的工程文件。 - **示例代码**: - 设置 Key 和 Secret。 - 构造请求并进行签名。 - 发送请求并处理响应。 ## 重要注意事项 - **时间同步**:客户端需确保本地时间与 API 网关时钟同步,避免因时间偏差导致认证失败。 - **安全性**:建议将 AK 和 SK 存储在配置文件或环境变量中,避免直接写入代码。 - **SDK 集成**:所有语言的示例代码均依赖 API 网关提供的 SDK,开发者需正确配置依赖项和环境变量。 - **签名校验**:后端服务需集成 SDK 并对请求中的签名信息进行校验,确保请求的合法性。 ## 总结 本文档详细介绍了 API 网关的认证机制,包括 APP 认证和 IAM 认证。对于每种认证方式,文档提供了清晰的步骤说明和不同语言的开发示例,帮助开发者实现 API 的安全调用。开发者应根据实际需求选择合适的认证方式,并遵循文档中的配置要求和注意事项,以确保 API 调用的安全性和稳定性。