一次性 APPKEY
APPKEY 的安全处理
APPKEY 是应用程序使用 AmiVoice API 时的"服务认证密钥字符串",如果泄露可能会被滥用。如果将 APPKEY 嵌入应用程序中,恶意第三方可能会从应用程序中提取 APPKEY。通常,请不要将您自己拥有的 APPKEY 发送到应用程序用户的机器上。相反,请使用具有有效期限的一次性 APPKEY,以便即使泄露也能将影响范围降到最低。
备注
- 一次性 APPKEY 与 My Page 上列出的 APPKEY 具有相同的功能,是一个"服务认证密钥字符串",但不同之处在于它根据"发行日期和有效时间"设置了"有效期限日期"。 此外,还可以对连接源的 IP 地址进行限制。
- 一次性 APPKEY 的发行数量没有上限。
警告
- 特别是对于 Web 应用程序,请避免在 HTML 或 JavaScript 中写入 APPKEY,因为网站用户可能会看到它。
- 如果无法避免将 APPKEY 嵌入应用程序中,请对 APPKEY 进行混淆或加密。混淆或加密可以使从应用程序中提取 APPKEY 变得更加困难。
- APPKEY 无法更改。要更改它,需要取消会员资格并创建新帐户。
- 无限期发行的一次性 APPKEY 与 My Page 上的 APPKEY 一样,无法更改或禁用,因此在发行时请充分考虑后再使用。
使用一次性 APPKEY
使用一次性 APPKEY 时,可以考虑以下实现方法:
- 通过某种方式对应用程序用户进行身份验证
- 身份验证成功后,在服务器端发行设置了有效期限的一次性 APPKEY 并发送给应用程序
- 应用程序使用一次性 APPKEY 来使用 AmiVoice API
以下说明如何使用一次性 APPKEY 发行 API。
请求
要使用一次性 APPKEY 发行 API,需要设置 serviceId(查询参数名为 sid)和服务密码(spw)。
请设置 My Page 中"连接信息"的"共同连接信息"中列出的[serviceId]和[服务密码]。
备注
服务密码与用于登录 My Page 的密码不同。
有效时间(查询参数名为 epi)可以任意设置。如果将数值设置为 epi,则以毫秒为单位。有关其他设置方法,请参阅参考。如果省略 epi,则默认值设置为 30000(30 秒)。请考虑从发行一次性 APPKEY 到实际发送 AmiVoice API 请求之间的预期时间来 进行设置。可以在 ipa 中指定可以使用 APPKEY 的 IP 地址。
让我们使用 curl 命令来发行一次性 APPKEY。
示例1
仅限 IP 地址 203.0.113.253 的访问,并将有效期限设置为发行后 30 秒。
curl https://acp-api.amivoice.com/issue_service_authorization \
-d sid={serviceId} \
-d spw={service密码} \
-d epi=30000 \
-d ipa=203.0.113.253
示例2
如果要按范围指定允许的 IP 地址,可以使用 CIDR 指定。
curl https://acp-api.amivoice.com/issue_service_authorization \
-d sid={serviceId} \
-d spw={service密码} \
-d epi=30000 \
-d ipa=203.0.113.0/24
示例3
IP 地址或其范围可以用逗号分隔多个指定。
curl https://acp-api.amivoice.com/issue_service_authorization \
-d sid={serviceId} \
-d spw={service密码} \
-d epi=30000 \
-d ipa=203.0.113.0/24,198.51.100.0/24
响应
响应是纯文本,返回一次性 APPKEY。可以直接将其设置为请求参数的 authorization key。