15分钟

任务 5 接入 API 网关

任务目的

将 Web 项目接入腾讯云 API 网关。发布在服务器上的 Web 项目处于所有人都可以访问的状态,有一定的安全隐患。将其接入腾讯云的 API 网关能够快速实现鉴权和限流功能,增加安全性。

任务步骤

1.创建服务

打开本机浏览器,前往腾讯云 API 网关控制台,导航到【服务】,点击【新建】新建服务。

服务

在弹出框的【服务名】输入框填入“swagger2”,【前端类型】选择“http”,【备注】填入“test”,点击【提交】创建服务。

新建服务

2.新建通用 API

点击“服务名”进入【服务信息】页面。

swagger服务

点击【管理 API】,选择【通用 API】,点击【新建】按钮新建通用 API。

新建API

进入【前端配置】页面,在【API 名称】输入框填入“swagger-ui”,【前端类型】选择“HTTP”,【路径】输入框填入“/{param}”,【鉴权类型】选择“密钥对”。点击【新增参数配置】,如下图所示配置参数。点击【下一步】按钮。

前端配置

进入【后端配置】页面,【后端域名】填入“CVM 公网 IP”,【后端路径】输入框填入“/{param}”。其它项保持默认,点击【下一步】。

后端配置

进入【响应结果】页面,【返回类型】选择“HTML”。点击【完成】按钮新建 API。

响应结果

回到 API 网关控制台,导航至【服务】,在服务列表找到“test”服务,点击“test”右侧的【发布】。

服务

进入【发布服务】弹出框,【发布环境】项选择“发布”,【备注】输入框填入“test”。点击【提交】按钮发布服务。

发布服务

3.添加使用计划

进入 API 网关控制台,导航至【密钥】,点击【新建】按钮新建密钥。

密钥

来到【新建密钥】弹出框,在【密钥名】输入框输入“test”。点击【提交】按钮新建密钥。

新建密钥

回到 API 网关控制台,导航至【使用计划】,点击【新建】按钮新建使用计划。

使用计划

来到【新建使用计划】弹出框,在【使用计划名】输入框填入“test”,在【启用配额】项勾选【启用】并在输入框填入“50”,在【备注】输入框填入“test swagger2”。点击【提交】按钮新建使用计划。

新建使用计划

点击“ID/使用计划名”。

test使用计划

进入【使用计划信息】页面,在【已绑定密钥】卡片点击【绑定密钥】按钮。

使用计划信息

在弹出框中勾选【test】,点击【提交】按钮。

绑定密钥

点击【已绑定 API】,点击【绑定 API】将使用计划绑定到 API。

绑定API

在弹出框中勾选之前步骤创建的通用 API,点击【提交】按钮。

选择API

绑定成功结果如下图。

绑定API成功

4.实验验证

前往【服务信息】页面,找到并复制【公网域名】。

服务信息

打开本机浏览器,在地址栏输入“API 网关公网域名”+“/swagger-ui.html”按下回车键,访问结果如下图所示。这是由于该 API 使用密钥对鉴权,需要在请求头添加密钥对信息才能正常访问。

访问公网域名

前往 API 网关控制台,导航到【密钥】,复制并保存“SecretId”和“SecretKey”。

密钥详情

登录 Linux 实例,执行以下命令,将命令中的“SecretKey”替换为之前复制的“SecretKey”。

echo -n 'date: Fri, 09 Oct 2015 00:00:00 GMT' | openssl dgst -sha1 -hmac 'SecretKey' -binary | base64
                                                                  # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140

复制并保存输出结果,本实验此处输出结果为“LVb8J8WgaEhAUgrG7AqQ9Mu8iEM=”。

计算signature

打开本机浏览器,前往Firefox 网站,下载并安装 Firefox 浏览器。安装完成后打开 FireFox 浏览器,前往ModHeader 扩展页面。点击【添加到 Firefox】,然后在弹出框点击【添加】。

ModHeader扩展

点击 Firefox 浏览器右上角新增的 ModHeader 图标,点击“加号”图标添加如下的 Header。将下表中的“SecretId”替换为密钥的“SecretId”,“signature”的值替换为之前保存的输出结果。

Name

Value

Date

Fri, 09 Oct 2015 00:00:00 GMT

Authorization

hmac id="SecretId", algorithm="hmac-sha1", headers="date", signature="LVb8J8WgaEhAUgrG7AqQ9Mu8iEM="

操作完成后的结果如下图所示。

添加Request Header

在 Firefox 浏览器地址栏输入“API 网关公网域名”+“/swagger-ui.html”按下回车键,即可访问页面。

访问Swagger2页面

刷新数次,可以发现页面与下图类似。访问次数超过使用计划的配额,API 网关禁止访问此页面了。

禁止访问

前往 API 网关控制台,导航到【使用计划】。点击“ID/使用计划名”,点击【已绑定 API】,在绑定的 API 列表可以发现【配额详情】已经从“0/50”变为“50/50”。

绑定API信息