Tous les produits
Search
Centre de documentation

IoT Platform:Connexion d'appareils à IoT Platform via CoAP

Dernière mise à jour :Aug 09, 2026

Vous pouvez connecter des appareils à IoT Platform via le protocole Constrained Application Protocol (CoAP). CoAP convient aux appareils à faible consommation et aux ressources limitées, tels que les appareils NB-IoT. Cette rubrique explique comment connecter un appareil à IoT Platform via CoAP. Elle décrit également comment vérifier l'appareil en utilisant Datagram Transport Layer Security (DTLS) ou le chiffrement symétrique.

Procédure

L'illustration suivante montre comment connecter un appareil NB-IoT à IoT Platform.

coap

Description
Intégrez un SDK IoT Platform dans le module NB-IoT de l'appareil. Le fournisseur de l'appareil demande le certificat de l'appareil dans la console IoT Platform et l'inscrit sur l'appareil.
Connectez l'appareil NB-IoT à IoT Platform via le réseau mobile d'un opérateur. Contactez votre opérateur local pour vous assurer que le réseau NB-IoT est disponible dans la région où se trouve votre appareil.
Utilisez la plateforme machine-to-machine (M2M) de l'opérateur pour gérer le trafic de données et les frais. Les fonctionnalités de la plateforme M2M sont fournies par l'opérateur.
Collectez les données en temps réel et soumettez-les à IoT Platform via CoAP ou UDP. IoT Platform vous permet d'établir des connexions sécurisées avec des centaines de millions d'appareils et de gérer une grande quantité de données d'appareils. IoT Platform vous permet également de transférer des données vers plusieurs services Alibaba Cloud pour un traitement ultérieur. Ces services incluent les services de big data, les services de base de données et Tablestore.
Utilisez les opérations API liées à l'accès aux données et les services de push de messages fournis par IoT Platform pour transférer les données vers les serveurs métier et intégrer les appareils et les applications.

Connexion d'appareils à l'aide du chiffrement symétrique

  1. Connectez-vous au serveur CoAP.

    Endpoints :

    Pour savoir comment connecter un appareil à l'endpoint d'une instance publique ou d'une instance Enterprise Edition via CoAP, consultez

    Gestion des endpoints d'instance

    .

  2. Vérifiez l'appareil.

    Exemple de requête :

    POST /auth
    Host: ${YourEndpoint}
    Port: 5682
    Accept: application/json or application/cbor
    Content-Format: application/json or application/cbor
    payload: {"productKey":"a1NUjcV****","deviceName":"ff1a11e7c08d4b3db2b1500d8e0e55","clientId":"a1NUjcV****&ff1a11e7c08d4b3db2b1500d8e0e55","sign":"F9FD53EE0CD010FCA40D14A9FE******", "seq":"10"}
    Tableau 1. Paramètres
    Paramètre Description
    Method La méthode de requête. Valeur valide : POST.
    URL L'URL. Valeur valide : /auth.
    Host L'endpoint.
    Port Le numéro de port. Valeur valide : 5682.
    Accept Le type MIME (Multipurpose Internet Mail Extensions) des données reçues par l'appareil. Valeurs valides : application/json et application/cbor.
    Content-Format Le type MIME des données soumises par l'appareil à IoT Platform. Valeurs valides : application/json et application/cbor.
    payload Les informations de l'appareil au format JSON pour la vérification. Pour plus d'informations, consultez le tableau suivant.
    Tableau 2. Champs du paramètre payload
    ChampObligatoireDescription
    productKeyOuiLe ProductKey figurant dans le certificat de l'appareil. Le ProductKey est un identifiant global unique (GUID) attribué par IoT Platform au produit. Connectez-vous à la console IoT Platform et affichez le ProductKey sur la page Device Details.
    deviceNameOuiLe DeviceName figurant dans le certificat de l'appareil. Le DeviceName est le nom de l'appareil défini par le système ou personnalisé lors de l'enregistrement de l'appareil. Connectez-vous à la console IoT Platform et affichez le DeviceName sur la page Device Details.
    ackModeNonLe mode de communication. Valeurs valides :
    • 0 : IoT Platform renvoie les données de réponse et un message ACK simultanément.
    • 1 : IoT Platform renvoie un message ACK, puis renvoie les données de réponse.

    Valeur par défaut : 0.

    signOuiCalculez la signature.

    Utilisez la fonction signmethod(DeviceSecret,content) pour calculer une signature. Ensuite, spécifiez la signature pour le paramètre sign. Les algorithmes de signature hmacmd5 et hmacsha1 sont pris en charge.

    Paramètres requis :

    • signmethod : l'algorithme de signature. La valeur doit être identique à celle spécifiée pour le paramètre signmethod.
    • DeviceSecret : le DeviceSecret de l'appareil. Connectez-vous à la console IoT Platform et affichez le DeviceSecret sur la page Device Details.
    • content : tous les paramètres soumis à IoT Platform, à l'exception des paramètres version, sign, resources et signmethod. Concaténez les valeurs séquentiellement selon l'ordre alphabétique des paramètres, sans symbole de séparation.
      Remarque Les valeurs des paramètres utilisées pour calculer la signature doivent être identiques aux valeurs des paramètres spécifiés dans la requête de vérification de l'appareil.

    Exemple :

    hmac_md5(mRPVdzSMu2nVBxzK77ERPIMxSYIv****, clientIda1NUjcV****&ff1a11e7c08d4b3db2b1500d8e0e55deviceNameff1a11e7c08d4b3db2b1500d8e0e55productKeya1NUjcV****seq10timestamp1524448722000)
    signmethodNonL'algorithme de signature. Valeurs valides : hmacmd5 et hmacsha1. Valeur par défaut : hmacmd5.
    clientIdOuiL'ID du client. L'ID client doit comporter entre 1 et 64 caractères. Nous vous recommandons de spécifier l'adresse MAC ou le numéro de série (SN) de l'appareil comme valeur du paramètre clientId.
    timestampNonL'horodatage. IoT Platform ne vérifie pas l'horodatage.
    seqOuiLe numéro de série contenu dans la requête de vérification. La valeur est un nombre aléatoire généré par l'appareil.

    Exemple de réponse :

    {"random":"ad2b3a5eb51d6****","seqOffset":1,"token":"MZ8m37hp01w1SSqoDFzo001050****.ad2b"}
    Tableau 3. Paramètres de réponse
    Paramètre Description
    random La clé utilisée pour chiffrer les données ascendantes et descendantes.
    seqOffset Le décalage initial du paramètre seq.
    token Le jeton renvoyé si l'appareil est vérifié.
  3. Soumettez les données.

    Exemple de requête :

    POST /topic/${topic}
    Host: ${YourEndpoint}
    Port: 5682
    Accept: application/json or application/cbor
    Content-Format: application/json or application/cbor
    payload: ${your_data}
    CustomOptions: number:2088, 2089
    Tableau 4. Paramètres
    ParamètreObligatoireDescription
    MethodOuiLa méthode de requête. Valeur valide : POST.
    URLOuiL'URL du topic. Format : /topic/${topic}. Remplacez la variable ${topic} par le topic auquel les données sont envoyées.
    HostOuiL'endpoint.
    PortOuiLe numéro de port. Valeur valide : 5682.
    AcceptOuiLe type MIME des données reçues par l'appareil. Valeurs valides : application/json et application/cbor.
    Content-FormatOuiLe type MIME des données ascendantes. IoT Platform ne vérifie pas les données. Valeurs valides : application/json et application/cbor.
    payloadOuiLes données ascendantes chiffrées à l'aide de l'algorithme Advanced Encryption Standard (AES).
    Remarque Si vous utilisez AES pour chiffrer les données, définissez le paramètre Transform sur AES/CBC/PKCS5Padding et le paramètre IV sur 543yhjy97ae7fyfg. Une clé est générée à l'aide de l'algorithme SHA-256.

    Exemple :

    Si la requête est deviceSecret=zPwChiLh0EaifR809D5Rc6LDIC6A****, la réponse est random=8fe3c8d50e10****.
    1. Combinez les valeurs des paramètres deviceSecret et random pour former une chaîne au format ${deviceSecret},${random}.
      zPwChiLh0EaifR809D5Rc6LDIC6A****,8fe3c8d50e10****
    2. IoT Platform encode la chaîne précédente au format UTF-8, chiffre la chaîne encodée à l'aide de l'algorithme SHA-256, puis convertit la chaîne en chaîne hexadécimale.
      59ea5ac1cb092e5910c405821119959e5297516d185b71e344735cf3f268****
    3. IoT Platform utilise la fonction subString(16,48) pour extraire une sous-chaîne de 32 caractères de la chaîne précédente afin de former une clé. L'extraction commence à partir du 17e caractère de la chaîne.
      10c405821119959e5297516d185b71e3
    CustomOptionsOuiL'option personnalisée. Valeurs valides :
    • 2088 : le paramètre token. Utilisez la valeur du paramètre token renvoyée après la vérification de l'appareil.
      Remarque Le paramètre token est requis lorsque l'appareil soumet des données. Si le token a expiré, vous devez revérifier l'appareil et obtenir un autre token.
    • 2089 : le paramètre seq. La valeur doit être supérieure à la valeur du paramètre seqOffset. La valeur doit être un nombre aléatoire unique pendant la période de validité de la vérification. Nous vous recommandons d'utiliser une valeur incrémentée basée sur le paramètre seq dans chaque requête et de chiffrer la valeur à l'aide d'AES.

    Exemple de réponse :

    number:2090

    2090 : l'ID du message dans IoT Platform.

    Vous pouvez spécifier les paramètres token et seq dans le paramètre CustomOptions. Vous pouvez également spécifier les paramètres token et seq dans le paramètre URL. Exemple : /topic/${topic}?token=xxxx&seq=xxxxx. Si vous spécifiez les paramètres token et seq pour les paramètres CustomOptions et URL simultanément, le paramètre CustomOptions est utilisé.

    Après l'envoi d'un message à IoT Platform, un code d'état indiquant le succès de la requête et un ID de message généré par IoT Platform sont renvoyés.

Connexion d'appareils à IoT Platform via DTLS

  1. Connectez-vous au serveur CoAP.

    Endpoints :

    Pour savoir comment connecter un appareil à l'endpoint d'une instance publique ou d'une instance Enterprise Edition via CoAP, consultez

    Gestion des endpoints d'instance

    .

  2. Téléchargez le certificat racine pour les canaux sécurisés DTLS. Ensuite, utilisez les bibliothèques DTLS pour connecter l'appareil à IoT Platform.

    psk_id: "${authType}" + "|" + "${signMethod}" + "|" + "${productKey}" + "&" + "${deviceName}" + "timestamp"
    psk: signMethod(DeviceSecret, "${productKey}" + "&" + "${deviceName}" + "${timestamp}")
    Tableau 5. Paramètres
    Paramètre Obligatoire Description
    authType Oui Le type de vérification. Valeur valide : devicename.
    signMethod Oui L'algorithme de signature. Valeurs valides : hmacmd5, hmacsha1 et hmacsha256.
    productKey Oui Le ProductKey du produit auquel l'appareil appartient.
    deviceName Oui Le DeviceName de l'appareil.
    DeviceSecret Oui Le DeviceSecret de l'appareil.
    timestamp Oui L'horodatage.
  3. Vérifiez l'appareil. Utilisez l'opération auth pour vérifier l'appareil et obtenir un jeton. Le paramètre token est requis lorsque l'appareil soumet des données.

    Exemple de requête :

    POST /auth
    Host: ${YourEndpoint}
    Port: 5684
    Accept: application/json or application/cbor
    Content-Format: application/json or application/cbor
    payload: {"productKey":"ZG1EvTE****","deviceName":"NlwaSPXsCpTQuh8FxBGH","clientId":"mylight1000002","sign":"bccb3d2618afe74b3eab12b94042****"}

    Pour plus d'informations sur les paramètres requis et les paramètres payload, à l'exception du paramètre Port, consultez la section Connexion d'appareils à l'aide du chiffrement symétrique.

    Exemple de réponse :

    response: {"token":"f13102810756432e85dfd351eeb4****"}
    Tableau 7. Codes de réponse
    Code Message Payload Description
    2,05 Content Un jeton si l'appareil passe la vérification. La requête est valide.
    4,00 Bad Request aucun payload Le payload de la requête n'est pas valide.
    4,01 Unauthorized aucun payload La requête n'est pas autorisée.
    4,03 Forbidden aucun payload La requête est interdite.
    4,04 Not Found aucun payload L'URL demandée n'existe pas.
    4,05 Method Not Allowed aucun payload La méthode de requête n'est pas autorisée.
    4,06 Not Acceptable aucun payload Le paramètre Accept n'est pas valide.
    4,15 Unsupported Content-Format aucun payload Le contenu demandé n'est pas valide.
    5,00 Internal Server Error aucun payload La requête a échoué en raison d'un problème de délai d'expiration ou d'une erreur sur le serveur de vérification.
  4. Soumettez les données.

    L'appareil soumet des données à IoT Platform en utilisant un topic personnalisé.

    Créez un topic personnalisé dans la console IoT Platform. Accédez à la page Product Details du produit auquel l'appareil appartient, puis cliquez sur l'onglet Topic Categories. Seuls les topics disposant de l'autorisation Publish peuvent être utilisés pour soumettre des données.

    Par exemple, un topic est au format /${YourProductKey}/${YourDeviceName}/pub. Si le DeviceName est device et le ProductKey est a1GFjLP ****, vous pouvez utiliser le topic a1GFjLP****.coap.cn-shanghai.link.aliyuncs.com:5684/topic/a1GFjLP****/device/pub pour soumettre des données.

    Exemple de requête :

    POST /topic/${topic}
    Host: ${YourEndpoint}
    Port: 5684
    Accept: application/json or application/cbor
    Content-Format: application/json or application/cbor
    payload: ${your_data}
    CustomOptions: number:2088
    Tableau 8. Paramètres
    ParamètreObligatoireDescription
    MethodOuiLa méthode de requête. Valeur valide : POST.
    URLOui/topic/${topic}. Remplacez la variable ${topic} par le topic auquel les données sont envoyées.
    HostOuiL'endpoint.
    PortOuiLe numéro de port. Valeur valide : 5684.
    AcceptOuiLe type MIME des données reçues par l'appareil. Valeurs valides : application/json et application/cbor.
    Content-FormatOuiLe type MIME des données ascendantes. IoT Platform ne vérifie pas les données. Valeurs valides : application/json et application/cbor.
    CustomOptionsOui
    • number : Définissez la valeur sur 2088.
    • token : le token renvoyé par le service de vérification.
    Remarque Le paramètre token est requis lorsque l'appareil soumet des données. Si le token a expiré, vous devez revérifier l'appareil et obtenir un autre token.

Exemple

Pour obtenir un exemple sur la connexion d'appareils à IoT Platform via CoAP, consultez la section Exemple : Connexion d'un client CoAP à l'aide du chiffrement symétrique.