عملاء MQTT

في هذه المقالة، ستتعرف على تكوين عملاء MQTT ومجموعات العملاء.

العملاء

يمكن أن يكون العملاء أجهزة أو تطبيقات، مثل الأجهزة أو المركبات التي ترسل/تستقبل رسائل MQTT.

على سبيل المثال، ضع في اعتبارك شركة لإدارة الأسطول مع مئات الشاحنات ومركبات تسليم الشحنات الأخرى. يمكنك تحسين التوجيه والتعقب وسلامة السائق وقدرات الصيانة التي يمكن التنبؤ بها عن طريق إرسال رسائل MQTT وتلقيها من/إلى خدمة سحابية.

في هذا السيناريو، يمكن تكوين المركبات كعملاء ينشرون / يشتركون في مواضيع مختلفة مثل معلومات الطقس، وظروف الطريق، والموقع الجغرافي، وأداء المحرك وغيرها من جوانب ارتداء وتمزق السيارة. وأثناء تكوين المركبة كجهاز عميل، يمكن أيضا تضمين مجموعة من السمات مثل نوع السيارة والسنة والنموذج والحد الأقصى لسعة التحميل وما إلى ذلك في بيانات تعريف العميل.

إشعار

  • يمكن أن يتراوح طول اسم العميل من 1 إلى 128 حرفا.
  • يمكن أن يتضمن اسم العميل الأبجدية الرقمية والواصلة (-) والنقطتين (:) والنقطة(.) والتسطير السفلي (_) بدون مسافات. وهو حساس لحالة الأحرف ويجب أن يكون فريدا لكل مساحة اسم.

الشروط الرئيسية لبيانات تعريف العميل

اسم مصادقة العميل: يمكنك توفير معرف فريد للعميل دون قيود تسمية Azure Resource Manager. إنه حقل إلزامي وإذا لم يتم توفيره بشكل صريح، فسيتم تعيينه افتراضيا على اسم العميل.

لا يمكن أن يكون لدى عميلين نفس اسم المصادقة داخل مساحة الاسم. أثناء مصادقة عميل، نتعامل مع اسم مصادقة العميل على أنه غير حساس لحالة الأحرف.

نحافظ على الحالة الأصلية لاسم مصادقة العميل الذي تقوم بتكوينه في العميل. نستخدم اسم مصادقة العميل الأصلي (حساس لحالة الأحرف) الذي تم توفيره عند إنشاء العميل، في إثراء التوجيه، ومطابقة مساحة الموضوع، وما إلى ذلك.

إشعار

  • يمكن أن يكون اسم مصادقة العميل من 1 إلى 128 حرفا، وسلاسل UTf-8، ولا توجد قيود
  • اسم مصادقة العميل حساس لحالة الأحرف ويجب أن يكون فريدا لكل مساحة اسم (يتم تجاهل الحالة أثناء تحديد التفرد)

نظام التحقق من صحة مصادقة شهادة العميل: لاستخدام شهادة المرجع المصدق للمصادقة، يمكنك الاختيار من بين أحد الخيارات التالية لتحديد موقع هوية العميل في شهادة العميل. عندما يحاول العميل الاتصال بالخدمة، تعثر الخدمة على تعريف العميل من حقل الشهادة هذا وتطابقه مع اسم مصادقة العميل لمصادقة العميل.

نحن ندعم خمسة حقول شهادات:

  • اسم المصادقة المطابق للموضوع
  • Dns يطابق اسم المصادقة
  • Uri يطابق اسم المصادقة
  • IP يطابق اسم المصادقة
  • البريد الإلكتروني يطابق اسم المصادقة

استخدم الخيار "Thumbprint Match" أثناء استخدام شهادة موقعة ذاتيا لمصادقة العميل.

إشعار

  • clientCertificateAuthentication مطلوب دائما بقيمة صالحة من validationScheme.
  • authenticationName غير مطلوب، ولكن بعد طلب الإنشاء الأول، يتم تعيين قيمة authenticatioName افتراضيا إلى اسم ARM، ومن ثم لا يمكن تحديثها.
  • لا يمكن تحديث authenticationName.
  • إذا كان validationScheme هو أي شيء آخر غير ThumbprintMatch، فلا يمكن توفير قائمةprints المسموح بها.
  • يمكن توفير قائمة allowedThumbprints فقط ويجب توفيرها إذا كانت validationScheme هي ThumbprintMatch مع بصمة إبهام واحدة atleast.
  • يمكن أن تحتوي بصمات الإبهام المسموح بها على بصمتين إبهام كحد أقصى فقط.
  • قيم validationScheme المسموح بها هي SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
  • استخدام بصمة الإبهام مع السماح بإعادة استخدام نفس الشهادة عبر عملاء متعددين. بالنسبة لأنواع أخرى من التحقق من الصحة، يجب أن يكون اسم المصادقة في الحقل المختار لشهادة العميل.

سمات العميل

سمات العميل هي مجموعة من أزواج قيم المفاتيح المعرفة من قبل المستخدم أو العلامات التي توفر معلومات حول العميل.

يمكن استخدام سمات العميل هذه لإنشاء مجموعات العملاء. على سبيل المثال، يمكنك تجميع جميع المركبات من نوع شبه شاحنات في مجموعة واحدة وجميع المركبات من نوع شاحنات الاستلام في أخرى.

يتم استخدام هذه السمات في استعلامات مجموعة العملاء لتصفية مجموعة من العملاء. يمكن أن تصف السمات الخصائص المادية أو الوظيفية للعميل. يمكن أن تكون السمة النموذجية "نوع" العميل.

إليك مثال:

  • النوع: يمكن أن تكون القيم "أداة استشعار" أو "منظم حرارة" أو "مركبة"

فيما يلي نموذج مخطط للعميل مع تعريف السمة:

{  
    "id": "device123",  
    "attributes": {  
        "type": "home-sensors",
        "sensors": ["motion", "noise", "light"]
     }
}

أثناء تكوين سمات العميل، ضع في اعتبارك الموضوعات التي ينشرها العملاء (الاشتراك). يساعد التفكير في الإصدارات السابقة من الموضوعات للعملاء في تحديد القواسم المشتركة عبر أدوار العميل بشكل أسهل وتحديد سمات العميل لجعل تجميع العميل أكثر بساطة.

إشعار

  • يجب أن تكون مفاتيح سمة العميل فريدة في العميل. لا يمكن تكرار المفاتيح.
  • يمكن أن تكون قيم سمة العميل من string، integer أو array of strings أنواع.
  • يجب أن يكون الحجم الإجمالي لسمات العميل للعميل دائما أقل من 4 كيلوبايت.
  • يمكن أن يحتوي اسم سمة العميل (المفتاح) فقط على أحرف أبجدية رقمية وتسطير سفلي (_).

عقود نموذجية

مثال لمصادقة العميل المستندة إلى سلسلة الشهادات

{
    "properties": {
        "authenticationName": "127.0.0.1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "IpMatchesAuthenticationName"
        },
        "attributes": {
            "room": "345",
            "floor": 3,
            "bldg": "17"
        },
        "description": "Description of the client"
    }
}

مثال لمصادقة العميل المستندة إلى بصمة إبهام الشهادة الموقعة ذاتيا

{
    "properties": {
        "authenticationName": "abcd@domain.com-1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "ThumbprintMatch",
            "allowedThumbprints": ["primary", "secondary"]
        },
        "attributes": {
            "room": "345",
            "floor": "3",
            "bldg": 17
        },
        "description": "Description of the client"
    }
}

تكوين مدخل Azure

استخدم الخطوات التالية لإنشاء عميل:

  1. انتقل إلى مساحة الاسم في مدخل Microsoft Azure

  2. ضمن العملاء، حدد + Client.

    Screenshot of adding a client.

  3. اختر نظام التحقق من صحة شهادة العميل. لمزيد من المعلومات حول تكوين مصادقة العميل، راجع مقالة مصادقة العميل.

  • إضافة سمات العميل.

    Screenshot of client configuration.

  1. حدد إنشاء.

تكوين Azure CLI

استخدم الأوامر التالية لإنشاء/إظهار/حذف عميل

إنشاء عميل

az eventgrid namespace client create -g myRG --namespace-name myNS -n myClient

الحصول على العميل

az eventgrid namespace client show -g myRG --namespace-name myNS -n myClient

حذف العميل

az eventgrid namespace client delete -g myRG --namespace-name myNS -n myClient

الخطوات التالية