为华为云函数增加App认证

引言

昨天的博文(华为云云函数FunctionGraph实现随机产生一句土味情话-优快云博客)介绍了使用APIG可以使用户访问华为的云函数。不过当时采用的是无认证方式,不过这种方式有安全风险,特别是FunctionGraph是按照调用次数收费的,如果让未授权用户随意调用,也会增加成本。今天介绍一下如何增加App认证。由于华为云的部分文档和实际操作有出入,所以在此记录一下。

设置App认证

进入FunctionGraph控制台,修改APIG的认证方式为App认证:

此时,如果再在浏览器中直接访问这个API的URL,就会得到如下错误信息:

{"error_msg":"Incorrect app authentication information: Authorization header is missing","error_code":"APIG.0303","request_id":"e7a16aaaf29e2b2204c4a3f3d2735105"}

如果选择支持简易认证,则认证时只需要AppCode,否则使用AppKey加AppSecret(有关原理参见:APP认证工作原理_API网关 APIG_华为云,华为给出了Java、C语言等各种语言的例子)。

创建App

在API网关的“调用API”部分可以找到“应用管理”,在其中创建应用,并绑定API。 点击应用的链接,可以进入详情页面:

其中可以找到AppKey(这个是可以公开的,在HTTP请求中传输)和AppSecet,这个是不能公开的,根据其计算签名。

如果是简易认证,则在AppCode部分添加自定义的AppCode。 

 

这个AppCode是要在HTTP的报头中传输的,所以只有HTTPS协议下才允许这种方式。 

调用验证

采用简易认证方式,发送请求时,增加请求头部参数“X-Apig-AppCode”,省略请求签名相关信息。

以Curl方式为例,增加头部参数名称:X-Apig-AppCode,参数值填生成的AppCode已生成的AppCode

例如:

curl -X GET "https://xxxx.apig.cn-north-4.huaweicloudapis.com/love-words" -H "content-type: application/json"  -H "X-Apig-AppCode: xxxxxxx"

 

结语

添加了App认证之后,可以避免未授权用户调用自己开发的云函数,提升了安全性。

### 关于华为云 IoT 平台与 ESP8266 的开发教程 #### 华为云 IoT 平台简介 华为云物联网平台(IoTDA)提供了一种高效的方式来管理设备并实现云端交互。该平台支持多种协议,包括 MQTT 和 CoAP,允许开发者轻松集成各种硬件设备到云端服务中[^1]。 #### ESP8266 设备接入流程概述 为了使 ESP8266 成功接入华为云 IoT 平台,通常需要以下几个步骤: 1. **注册设备** 需要在华为云控制台上创建产品模型,并注册具体的设备实例。这一步会生成设备的唯一身份标识和密钥,用于后续的安全认证过程。 2. **配置网络环境** 确保 ESP8266 能够稳定连接至家庭或企业 Wi-Fi 网络。这是基础通信的前提条件之一[^2]。 3. **固件烧录与初始化设置** 使用 Arduino IDE 或其他工具编译适合 ESP8266 的程序代码,并将其上传到模块中。此阶段需特别注意调整 WiFi 参数以及指定目标服务器地址指向华为云 IoT DA 地址。 4. **编写业务逻辑处理函数** 下面是一个简单的示例代码片段展示如何利用 SDK 实现基本的消息收发功能: ```c++ #include <WiFiClientSecure.h> #include "Huawei_IoT_Client.h" // 初始化客户端对象 WiFiClient client; HuaweiIotDevice device(client); void setup() { Serial.begin(115200); // 连接到Wi-Fi网络 while (WiFi.status() != WL_CONNECTED){ delay(1000); Serial.println("Connecting to WiFi..."); } } void loop(){ if(!device.isConnected()){ connectToCloud(); }else{ sendHeartbeatMessage(); // 定期向云端发送心跳包保持在线状态 } handleIncomingMessages(); // 处理来自云端的数据请求命令等操作 } ``` 上述代码展示了如何建立安全链接并通过循环不断尝试维持同华为云之间的持续通讯关系。 #### 参考文档资源推荐 对于更深入的学习和技术细节探索,建议查阅官方提供的以下几类重要参考资料: - [华为云 IoT Device Agent 用户指南](https://support.huaweicloud.com/usermanual-iothub/iot_ug_deviceagent.html) - [MQTT 接入方式说明](https://developer.huawei.com/consumer/cn/doc/development/IoT-Guides/mqtt-access-method-introduction) 这些文档不仅涵盖了理论知识介绍还包含了丰富的实践案例分析可以帮助快速掌握整个系统的运作机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值