Aracılığıyla paylaş


MQTT istemcileri

Bu makalede, MQTT istemcilerini ve istemci gruplarını yapılandırmayı öğreneceksiniz.

Müşteriler

İstemciler, MQTT iletileri gönderen/alan cihazlar veya araçlar gibi cihazlar veya uygulamalar olabilir.

Örneğin yüzlerce kamyon ve diğer sevkiyat teslimat araçlarına sahip bir filo yönetim şirketi düşünün. Bir bulut hizmetine MQTT iletileri gönderip alarak yönlendirme, izleme, sürücü güvenliği ve öngörülebilir bakım özelliklerini geliştirebilirsiniz.

Bu senaryoda, araçlar hava durumu bilgileri, yol koşulları, coğrafi konum, motor performansı ve aracın diğer yıpranma ve yıpranma yönleri gibi çeşitli konuları yayımlayan/abone olan müşteriler olarak yapılandırılabilir. Ayrıca aracı müşteri olarak yapılandırırken araç türü, yıl, make & model, maksimum yük kapasitesi gibi bir dizi öznitelik de istemci meta verilerine dahil edilebilir.

Dekont

  • İstemci adı 1-128 karakter uzunluğunda olabilir.
  • İstemci adı alfasayısal, kısa çizgi(-), iki nokta(:), nokta(.) ve alt çizgi(_) içerebilir; boşluk içermez. Büyük/küçük harfe duyarlıdır ve ad alanı başına benzersiz olmalıdır.

İstemci meta verilerinin temel terimleri

İstemci Kimlik Doğrulama Adı: Azure Resource Manager adlandırma kısıtlamaları olmadan istemci için benzersiz bir tanımlayıcı sağlayabilirsiniz. Bu zorunlu bir alandır ve açıkça sağlanmadıysa, varsayılan olarak İstemci Adı olarak kabul edilir.

Ad Alanı içinde iki istemci aynı kimlik doğrulama adına sahip olamaz. bir istemcinin kimliğini doğrularken, İstemci kimlik doğrulama adını büyük/küçük harfe duyarsız olarak ele alıyoruz.

İstemcide yapılandırdığınız istemci kimlik doğrulama adının özgün durumunu koruruz. İstemci oluşturulduğunda sağlanan özgün istemci kimlik doğrulama adını (büyük/küçük harfe duyarlı) yönlendirme zenginleştirmelerinde, konu alanı eşleştirmesinde vb. kullanırız.

Dekont

  • İstemci kimlik doğrulaması adı 1-128 karakter uzunluğunda, UTf-8 dizeleri olabilir, kısıtlama yok
  • İstemci kimlik doğrulaması adı büyük/küçük harfe duyarlıdır ve ad alanı başına benzersiz olmalıdır (benzersizlik belirlenirken büyük/küçük harf yoksayılır)

İstemci Sertifikası Kimlik Doğrulaması Doğrulama Şeması: Kimlik doğrulaması için CA sertifikasını kullanmak için, istemci kimliğinin istemci sertifikasındaki konumunu belirtmek üzere aşağıdaki seçeneklerden birini seçebilirsiniz. İstemci hizmete bağlanmaya çalıştığında, hizmet bu sertifika alanından istemci kimliğini bulur ve istemcinin kimliğini doğrulamak için istemci kimlik doğrulaması adıyla eşleştirir.

Beş sertifika alanını destekliyoruz:

  • Konu Kimlik Doğrulama Adıyla Eşleşir
  • Dns, Kimlik Doğrulama Adıyla Eşleşir
  • Uri, Kimlik Doğrulama Adıyla Eşleşir
  • IP Kimlik Doğrulama Adıyla Eşleşir
  • E-posta Kimlik Doğrulama Adıyla Eşleşir

İstemcinin kimliğini doğrulamak için otomatik olarak imzalanan sertifikayı kullanırken "Parmak İzi Eşleştirme" seçeneğini kullanın.

Dekont

  • clientCertificateAuthentication her zaman geçerli bir validationScheme değeriyle gereklidir.
  • authenticationName gerekli değildir, ancak ilk oluşturma isteğinden sonra authenticatioName değeri varsayılan olarak ARM adı olarak ayarlanır ve ardından güncelleştirilemez.
  • authenticationName güncelleştirilemedi.
  • ValidationScheme, ThumbprintMatch dışında bir şeyse allowedThumbprints listesi sağlanamaz.
  • allowedThumbprints listesi yalnızca sağlanabilir ve validationScheme en az bir parmak izi olan ThumbprintMatch ise sağlanmalıdır.
  • allowedThumbprints yalnızca en fazla 2 parmak izi tutabilir.
  • İzin verilen validationScheme değerleri SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch'tir
  • Parmak izini kullanarak aynı sertifikanın birden çok istemcide yeniden kullanılmasına izin verin. Diğer doğrulama türleri için kimlik doğrulama adının istemci sertifikasının seçilen alanında olması gerekir.

İstemci öznitelikleri

İstemci öznitelikleri, istemci hakkında bilgi sağlayan kullanıcı tanımlı anahtar-değer çiftleri veya etiketler kümesidir.

Bu istemci öznitelikleri, istemci gruplarını oluşturmak için kullanılabilir. Örneğin, yarı kamyon türündeki tüm araçları bir grupta, kamyonet tipindeki tüm araçları da başka bir grupta gruplandırabilirsiniz.

Bu öznitelikler, istemci grubu sorgularında bir istemci kümesini filtrelemek için kullanılır. Öznitelikler, istemcinin fiziksel veya işlevsel özelliklerini açıklıyor olabilir. Tipik öznitelik, istemcinin "türü" olabilir.

Bir örnek aşağıda verilmiştir:

  • Tür: Değerler "sensör" veya "termostat" veya "araç" olabilir

Öznitelik tanımına sahip istemci için örnek bir şema aşağıda verilmişti:

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

İstemci özniteliklerini yapılandırırken, istemcilerin yayımlama (abone olma) konularını göz önünde bulundurun. Konu başlıklarından istemcilere doğru düşünmek, istemci rollerindeki yaygınlıkları belirlemeye ve istemci gruplandırma işlemini basit hale getirmek için istemci özniteliklerini tanımlamaya yardımcı olur.

Dekont

  • İstemci öznitelik anahtarları istemcide benzersiz olmalıdır. Anahtarlar yinelenemez.
  • İstemci öznitelik değerleri , integer veya array of strings türlerinde stringolabilir.
  • İstemcinin istemci özniteliklerinin toplam boyutu her zaman 4 KB'tan küçük olmalıdır.
  • İstemci öznitelik adı (anahtar) yalnızca alfasayısal karakterler ve alt çizgi(_) içerebilir.

Örnek anlaşmalar

Sertifika zinciri tabanlı istemci kimlik doğrulaması örneği

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

Otomatik olarak imzalanan sertifika parmak izi tabanlı istemci kimlik doğrulaması örneği

{
    "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 portal yapılandırması

İstemci oluşturmak için aşağıdaki adımları kullanın:

  1. Azure portalında ad alanınıza gidin

  2. İstemciler'in altında + İstemci'yi seçin.

    Screenshot of adding a client.

  3. İstemci sertifikası kimlik doğrulaması doğrulama düzenini seçin. İstemci kimlik doğrulaması yapılandırması hakkında daha fazla bilgi için istemci kimlik doğrulaması makalesine bakın.

  • İstemci öznitelikleri ekleyin.

    Screenshot of client configuration.

  1. Oluştur'u seçin

Azure CLI yapılandırması

İstemci oluşturmak/göstermek/silmek için aşağıdaki komutları kullanın

İstemci oluşturma

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

İstemci alma

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

İstemciyi silme

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

Sonraki adımlar