Azure IoT DPS - 注册组 - 创建或更新 - Rest API

问题描述 投票:0回答:1

Rest API 调用似乎不适用于 Azure - DPS 注册组。邮递员中的 API 调用没有响应。

关注以下网址

https://learn.microsoft.com/en-us/rest/api/iot-dps/service/enrollment-group/create-or-update?view=rest-iot-dps-service-2021-06- 01

如果您能够执行 REST API 调用,请告诉我。

azure-iot-hub azure-iot-edge azure-iot-sdk azure-rest-api azure-iot-dps
1个回答
0
投票

您需要生成用于服务 API 身份验证的安全令牌。您可以从文章服务API身份验证中找到生成令牌所需的示例。这是我为代币生成测试过的示例。

from base64 import b64encode, b64decode
from hashlib import sha256
from time import time
from urllib.parse import quote_plus, urlencode
from hmac import HMAC
import requests
import json


def main():
    ttl = time() + 3600
    uri = '{yourdpsservicename}.azure-devices-provisioning.net/enrollmentGroups'
    sign_key = ("%s\n%d" % ((quote_plus(uri)), int(ttl))).encode('utf-8')
    #sign_key = "%s\n%d" % ((quote_plus(uri)), int(ttl))
    print(sign_key)
    signature = b64encode(HMAC(b64decode('key'), sign_key, sha256).digest())

    rawtoken = {
        'sr' :  uri,
        'sig': signature,
        'se' : str(int(ttl)),
        'skn' : 'provisioningserviceowner'
    }

    print('SharedAccessSignature ' + urlencode(rawtoken))




if __name__ == "__main__":
    main()

请确保替换 URI 中的 DPS 服务名称和签名中的密钥值

您应该获得类似于以下值的签名。

将此令牌添加到邮递员

Authorization
标头中。找到下面的图片作为参考。

API 还要求您通过认证机制进行注册。我已经使用对称密钥证明测试了 API 调用,方法是在请求正文中传递如下密钥

如您所见,API 返回

200 OK
响应并提供有关注册组的详细信息。可以从 Azure 门户 DPS 管理注册选项卡验证创建的注册组。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.