产品定价 立即试用
云平台
欧洲地区
文档 > 安全 > CoAP传输 > 基于访问令牌的认证
入门
指南 API 常见问题
目录

CoAP的Access Token认证

Access Token认证是默认的设备认证方式。 设备在ThingsBoard中创建后会生成唯一access token,之后可修改。 客户端必须在CoAP请求URL中指定access token。

Plain CoAP(无TLS)

以下是一条使用Access Token YOUR_ACCESS_TOKEN 向 ThingsBoard Cloud EU 上传温度读数的简单命令。 详见 CoAP API。该命令使用不带TLS的Plain CoAP:

1
coap-client -v 6 -m POST coap://coap.eu.thingsboard.cloud/api/v1/YOUR_ACCESS_TOKEN/telemetry -t json -e "{temperature:25}"

上述命令需要coap-client库,可通过以下命令安装:

  • Ubuntu 20.04: sudo apt install libcoap2-bin
  • Ubuntu 18.04: sudo apt install libcoap1-bin

请将 YOUR_ACCESS_TOKEN 替换为设备的access token。

DTLS支持(单向TLS)

CoAP在DTLS上的access token认证是标准模式,客户端通过服务器证书验证服务器身份。

注意:“单向TLS”表示客户端验证服务器,但服务器不验证客户端。

CoAP客户端连接服务器时,通过校验证书是否过期、是否受客户端信任来确认服务器身份。 证书在以下情况下被视为受信任:

  • 由知名证书颁发机构(CA)签发,如 Let’s Encrypt
  • 存在于客户端trust store中。

要建立信任,CoAP客户端必须提供用于签署服务器证书的CA证书。与依赖系统trust store的HTTPS不同,使用DTLS的CoAP客户端需要显式配置CA证书。

使用示例前,需安装支持DTLS的CoAP客户端。

安装支持DTLS的CoAP客户端

按以下步骤在Linux上安装支持DTLS的CoAP客户端:

  • 步骤 1:克隆libcoap的git仓库:
1
git clone https://github.com/obgm/libcoap --recursive --depth 1
  • 步骤 2:进入libcoap目录:
1
cd libcoap
  • 步骤 3:执行以下命令,然后运行 ./autogen.sh 脚本:
1
sudo apt-get update
1
sudo apt-get install autoconf libtool libssl-dev
1
./autogen.sh
  • 步骤 4:使用以下选项运行 ./configure 脚本:
1
./configure --with-openssl --disable-doxygen --disable-manpages --disable-shared
  • 步骤 5:执行以下命令:
1
make
  • 步骤 6:执行以下命令:
1
sudo make install

示例:

CoAP客户端必须提供CA证书以进行验证,请使用 -R 标志并指定包含受信任根CA证书的PEM文件路径。 ThingsBoard团队已为 ThingsBoard Cloud EU 配置有效证书。

请通过此 链接 下载CA根证书,并保存到工作目录,命名为”ca-root.pem“。

1
wget https://thingsboard.io/docs/paas/eu/user-guide/resources/coap-over-dtls/ca-root.pem

现在可使用 ca-root.pem 与 ThingsBoard Cloud EU 建立安全连接,并用Access Token YOUR_ACCESS_TOKEN 认证设备以上传遥测:

1
coap-client-openssl -v 6 -m POST  -R ca-root.pem -t "application/json" -e '{"temperature":42}' coaps://coap.eu.thingsboard.cloud/api/v1/YOUR_ACCESS_TOKEN/telemetry

请将 YOUR_ACCESS_TOKEN 替换为设备的access token。