Azure IoT Hub’da bir aşağı akış cihazının kimliğini doğrulama

Uygulama hedefi:  Evet simgesi IoT Edge 1,1  evet IoT Edge 1,2

Saydam bir ağ geçidi senaryosunda aşağı akış cihazlarının (bazen yaprak cihazlar veya alt cihazlar olarak da an), diğer cihazlar gibi IoT Hub kimliklere ihtiyacı vardır. Bu makalede, bir aşağı akış cihazı için kimlik doğrulama seçenekleri IoT Hub ve ardından ağ geçidi bağlantısının nasıl bildirldüğü açıklanmıştır.

Başarılı bir saydam ağ geçidi bağlantısı ayarlamak için üç genel adım vardır. Bu makale ikinci adımı kapsar:

  1. Aşağı akış cihazlarının güvenli bir şekilde bağlanacak şekilde ağ geçidini bir sunucu olarak yapılandırma. Aşağı akış cihazlarından iletileri almak ve bunları uygun hedefe yönlendiren ağ geçidini ayarlayın. Bu adımlar için bkz. Bir IoT Edge saydam ağ geçidi olarak davranacak şekilde yapılandırma.
  2. Aşağı akış cihazı için bir cihaz kimliği oluşturun, böylece cihaz kimliği IoT Hub. Aşağı akış aygıtını ağ geçidi cihazı üzerinden ileti gönderecek şekilde yapılandırma.
  3. Bağlan aşağı akış cihazına göndererek ileti göndermeye başlamayı deneyin. Bu adımlar için bkz. Bağlan bir aşağı akış cihazına Azure IoT Edge ağ geçidine.

Aşağı akış cihazları, IoT Hub üç yöntemden birini kullanarak IoT Hub kimlik doğrulamasına sahip olabilir: simetrik anahtarlar (bazen paylaşılan erişim anahtarları olarak adlandırılır), X.509 otomatik olarak imzalanan sertifikalar veya X.509 sertifika yetkilisi (CA) imzalı sertifikalar. Kimlik doğrulama adımları, ağ geçidi ilişkisini bildiren küçük farklılıklarla IoT-Edge olmayan herhangi bir cihazı IoT Hub ayarlamak için kullanılan adımlara benzer.

Azure IoT Hub Device Provisioning Service (DPS) ile aşağı akış cihazlarının otomatik olarak sağlanması desteklenmiyor.

Önkoşullar

Bir ağ geçidini saydam IoT Edge için yapılandırma adımlarını tamamlayın.

X.509 kimlik doğrulaması kullanıyorsanız aşağı akış cihazınız için sertifikalar oluşturabilirsiniz. Saydam ağ geçidi makalesi için kullanılan aynı kök CA sertifikasına ve sertifika oluşturma betiğine sahip olun.

Bu makale, çeşitli noktalarda ağ geçidi ana bilgisayar adını ifade eder. Ağ geçidi ana bilgisayar adı, ağ geçidi cihazında yapılandırma dosyasının konak adı IoT Edge belirtilir. Aşağı akış cihazı bağlantı dizesinde buna başvurur. Ağ geçidi ana bilgisayar adı, aşağı akış cihazında DNS veya konak dosyası girişi kullanılarak bir IP Adresine çözümlenebilir olması gerekir.

Cihazı IoT Hub

Aşağı akış cihazınızın IoT Hub ile kimlik doğrulamasını IoT Hub:

  • Simetrik anahtar kimlikdoğrulaması: IoT Hub aşağı akış cihazına koyarak bir anahtar oluşturur. Cihaz kimlik doğrulaması IoT Hub iki anahtarın eş olduğunu denetler. Simetrik anahtar kimlik doğrulamasını kullanmak için ek sertifikalar oluşturmanıza gerek yok.

    Bir geliştirme veya test senaryosunda ağ geçitlerini test ediyorsanız bu yöntem daha hızlı bir başlangıçtır.

  • X.509otomatik olarak imzalanan kimlik doğrulaması: Bazı durumlarda, cihazın X.509 sertifikasından parmak izini kimlik doğrulamasıyla paylaşarak parmak izi IoT Hub.

    Üretim senaryolarında cihazlar için sertifika kimlik doğrulaması önerilir.

  • X.509 CA imzalı kimlik doğrulaması:Upload ca sertifikasına IoT Hub. Cihazlar kimlik doğrulaması için X.509 sertifikalarını IoT Hub aynı kök CA sertifikası tarafından imzalanan bir güven zincirine ait olup olmadığını denetler.

    Üretim senaryolarında cihazlar için sertifika kimlik doğrulaması önerilir.

Simetrik anahtar kimlik doğrulaması

Simetrik anahtar kimlik doğrulaması veya paylaşılan erişim anahtarı kimlik doğrulaması, kimlik doğrulamasının en kolay yolu IoT Hub. Simetrik anahtar kimlik doğrulamasında base64 anahtarı, IoT cihaz kimliğiniz ile IoT Hub. Bu anahtarı IoT uygulamalarınıza dahil edin; böylece cihazınız IoT uygulamalarınıza bağlandığında IoT Hub.

Azure portal, Azure CLI veya IoT uzantısını kullanarak IoT hub'ınıza yeni bir IoT cihazı Visual Studio Code. Aşağı akış cihazlarının IoT Hub değil normal IoT cihazları olarak IoT Edge unutmayın.

Yeni cihaz kimliğini oluşturdukta aşağıdaki bilgileri sağlar:

  • Cihazınız için bir kimlik oluşturun.

  • Kimlik doğrulama türü olarak Simetrik anahtar'ı seçin.

  • Üst cihaz ayarla'IoT Edge aşağı akış cihazına bağlanacak ağ geçidini seçin. Üst öğeyi daha sonra her zaman değiştirebilirsiniz.

    Portalda simetrik anahtar kimlik doğrulaması ile cihaz kimliği oluşturma

    Not

    Simetrik anahtar kimlik doğrulaması kullanan aşağı akış cihazları için isteğe bağlı bir adım olarak kullanılan üst cihazı ayarlama. Bununla birlikte, IoT Edge 1.1.0 sürümünden başlayarak her aşağı akış cihazı bir üst cihaza atanabilir.

    AuthenticationMode ortam IoT Edge CloudAndScope değerine ayar olarak önceki davranışa geri dönmek için hub'ı yapılandırabilirsiniz.

Aynı işlemi tamamlamak için Azure CLI için IoT uzantısını da kullanabilirsiniz. Aşağıdaki örnekte, simetrik anahtar kimlik doğrulaması ile yeni bir IoT cihazı oluşturmak ve bir üst cihaz atamak için az iot hub device-identity komutu kullanılır:

az iot hub device-identity create -n {iothub name} -d {new device ID} --pd {existing gateway device ID}

Ardından, cihazınızın ağ geçidi üzerinden bağlanmayı bildiği şekilde bağlantı dizesini alın ve değiştirebilirsiniz.

X.509 otomatik olarak imzalanan kimlik doğrulaması

Bazen parmak izi kimlik doğrulaması olarak da adlandırılan X.509 otomatik olarak imzalanan kimlik doğrulaması için aşağı akış cihazınıza yer verilecek sertifikalar oluşturmanız gerekir. Bu sertifikaların, kimlik doğrulaması için bu sertifikalar ile IoT Hub parmak izi vardır.

  1. CA sertifikanızı kullanarak, aşağı akış cihazı için iki cihaz sertifikası (birincil ve ikincil) oluşturun.

    X.509 sertifikaları oluşturmak için bir sertifika yetkiliniz yoksa, aşağı akış cihaz sertifikaları oluşturmak için IoT Edge tanıtım sertifikası betiklerini kullanabilirsiniz. Otomatik olarak imzalanan sertifikalar oluşturma adımlarını izleyin. Ağ geçidi cihazınız için sertifikaları oluşturan kök CA sertifikasını kullanın.

    Kendi sertifikalarınızı oluştursanız, cihaz sertifikasının konu adının, IoT cihazı cihaz kimliğine kaydederek cihaz kimliğine ayar Azure IoT Hub. Kimlik doğrulaması için bu ayar gereklidir.

  2. 40 onaltılık karakter dizesi olan her sertifikadan SHA1 parmak izini (IoT Hub arabiriminde parmak izi olarak adlandırılan) alın. Sertifikayı görüntülemek ve parmak izini bulmak için aşağıdaki openssl komutunu kullanın:

    • Windows:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint
      
    • Linux:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
      

    Bu komutu iki kez, birincil sertifika için bir kez ve ikincil sertifika için bir kez çalıştırın. Otomatik olarak imzalanan X.509 sertifikalarını kullanarak yeni bir IoT cihazı kaydeden her iki sertifika için de parmak izi sağlar.

  3. Azure portal IoT hub'ınıza gidin ve aşağıdaki değerlerle yeni bir IoT cihaz kimliği oluşturun:

    • Cihaz sertifikalarının konu adıyla eşleşen Cihaz Kimliğini girin.
    • Kimlik doğrulaması türü olarak X.509 Otomatik olarak İmzalı'ı seçin.
    • Cihazınızın birincil ve ikincil sertifikalarından kopyalanan onaltılık dizeleri yapıştırın.
    • Üst cihaz ayarla'IoT Edge aşağı akış cihazına bağlanacak ağ geçidini seçin. Üst öğeyi daha sonra her zaman değiştirebilirsiniz.

    Portalda X.509 otomatik olarak imzalanan kimlik doğrulaması ile cihaz kimliği oluşturma

  4. Hem birincil hem de ikincil cihaz sertifikalarını ve anahtarlarını aşağı akış cihazında herhangi bir konuma kopyalayın. Ayrıca, hem ağ geçidi cihaz sertifikasını hem de aşağı akış cihaz sertifikalarını oluşturan paylaşılan kök CA sertifikasının bir kopyasını da taşıma.

    Bu sertifika dosyalarına, aşağı akış cihazına bağlı tüm uygulamalarda bu sertifika dosyalarına IoT Hub. Sertifika dosyalarını taşımak için Azure Key Vault protokolü gibi bir hizmet veya Güvenli kopyalama protokolü gibi bir işlev kullanabilirsiniz.

  5. Tercih ettiğiniz dile bağlı olarak X.509 sertifikalarının IoT uygulamalarında nasıl başvurulabilirsiniz? örneklerini gözden geçirin:

Aynı cihaz oluşturma işlemini tamamlamak için Azure CLI için IoT uzantısını da kullanabilirsiniz. Aşağıdaki örnekte, X.509 otomatik olarak imzalanan kimlik doğrulaması ile yeni bir IoT cihazı oluşturmak için az iot hub device-identity komutu kullanılır ve bir üst cihaz atar:

az iot hub device-identity create -n {iothub name} -d {device ID} --pd {gateway device ID} --am x509_thumbprint --ptp {primary thumbprint} --stp {secondary thumbprint}

Ardından, cihazınızın ağ geçidi üzerinden bağlanmayı bildiği şekilde bağlantı dizesini alın ve değiştirebilirsiniz.

X.509 CA imzalı kimlik doğrulaması

X.509 sertifika yetkilisi (CA) imzalı kimlik doğrulaması için, aşağı akış cihazınız için sertifikaları imzalamak üzere IoT Hub sertifika yetkilisinde kayıtlı bir kök CA sertifikasına ihtiyacınız vardır. Kök CA sertifikası veya ara sertifikalarının herhangi biri tarafından sorun olan bir sertifika kullanan tüm cihazın kimlik doğrulamasına izin verilir.

Bu bölüm, IoT Hub X.509 sertifika öğretici serisini temel almaktadır. Bu serinin tanıtımı için bkz. Ortak Anahtar Şifrelemesi ve X.509 Ortak Anahtar Altyapısını Anlama.

  1. CA sertifikanızı kullanarak, aşağı akış cihazı için iki cihaz sertifikası (birincil ve ikincil) oluşturun.

    X.509 sertifikaları oluşturmak için bir sertifika yetkiliniz yoksa, aşağı akış cihaz sertifikaları oluşturmak için IoT Edge tanıtım sertifikası betiklerini kullanabilirsiniz. CA imzalı sertifikalar oluşturmak için adımları izleyin. Ağ geçidi cihazınız için sertifikaları oluşturan kök CA sertifikasını kullanın.

  2. Azure IoT hub' ınıza X.509 güvenliğini ayarlama bölümündeki sahiplik kanıtını gösterme bölümündeki yönergeleri izleyin. Bu bölümde aşağıdaki adımları gerçekleştirebilirsiniz:

    1. Upload CA sertifikası seçin. Tanıtım sertifikalarını kullanıyorsanız kök CA <path> /certs/Azure-iot-test-only.root.ca.cert.pem olur.

    2. Bu kök CA sertifikasına sahip olduğunuzu doğrulayın.

  3. Azure IoT Hub 'ınızda X. 509.440 güvenliğini ayarlama konusunun IoT Hub cihaz oluşturma bölümündeki yönergeleri izleyin. Bu bölümde, aşağıdaki adımları gerçekleştirirsiniz:

    1. Yeni bir cihaz ekleyin. CIHAZ kimliği için küçük harfli bir ad girin ve X. 509.440 CA imzalı kimlik doğrulama türünü seçin.

    2. Bir üst cihaz ayarlayın. Bir üst cihaz ayarla ' yı seçin ve IoT Hub bağlantısını sağlayacak IoT Edge ağ geçidi cihazını seçin.

  4. Aşağı akış cihazınız için bir sertifika zinciri oluşturun. IoT Hub için karşıya yüklediğiniz aynı kök CA sertifikasını kullanın ve bu zinciri oluşturun. Portalda cihaz kimliğinize verdiğiniz küçük harfli cihaz KIMLIĞINI kullanın.

  5. Cihaz sertifikasını ve anahtarlarını aşağı akış cihazında herhangi bir konuma kopyalayın. Ayrıca, ağ geçidi cihaz sertifikasını ve aşağı akış cihaz sertifikalarını oluşturan paylaşılan kök CA sertifikasının bir kopyasını da taşıyın.

    IoT Hub bağlanan aşağı akış cihazında bulunan uygulamalarda bu dosyalara başvurabileceksiniz. Sertifika dosyalarını taşımak için Azure Key Vault veya Güvenli kopya Protokolü gibi bir işlev gibi bir hizmet kullanabilirsiniz.

  6. Tercih ettiğiniz dile bağlı olarak, X. 509.440 sertifikalarına IoT uygulamalarında nasıl başvurulabilen örnekleri gözden geçirin:

Aynı cihaz oluşturma işlemini gerçekleştirmek için Azure CLI Için IoT uzantısını da kullanabilirsiniz. Aşağıdaki örnek, X. 509.952 CA imzalı kimlik doğrulaması ile yeni bir IoT cihazı oluşturmak için az IoT Hub Device-Identity komutunu kullanır ve bir üst cihaz atar:

az iot hub device-identity create -n {iothub name} -d {device ID} --pd {gateway device ID} --am x509_ca

Sonra, cihazınızın ağ geçidi aracılığıyla bağlanmayı bilmesi için bağlantı dizesini alın ve değiştirin .

Bağlantı dizesini alma ve değiştirme

Portalda IoT cihaz kimliği oluşturduktan sonra, birincil veya ikincil anahtarlarını alabilirsiniz. Bu anahtarlardan birinin, uygulamaların IoT Hub iletişim kurmak için kullandığı bağlantı dizesine eklenmesi gerekir. Simetrik anahtar kimlik doğrulaması için IoT Hub, kolaylık sağlamak üzere cihaz ayrıntılarında tamamen biçimlendirilmiş bağlantı dizesi sağlar. Ağ geçidi cihazı hakkında bağlantı dizesine ek bilgi eklemeniz gerekir.

Aşağı akış cihazları için bağlantı dizeleri aşağıdaki bileşenlere gerek duyar:

  • Cihazın bağlandığı IoT Hub 'ı: Hostname={iothub name}.azure-devices.net
  • Hub 'a kayıtlı cihaz KIMLIĞI: DeviceID={device ID}
  • Kimlik doğrulama yöntemi, simetrik anahtar veya X. 509.440 sertifikamı
    • Simetrik anahtar kimlik doğrulaması kullanıyorsanız, birincil veya ikincil anahtar belirtin: SharedAccessKey={key}
    • X. 509.952 sertifikası kimlik doğrulamasını kullanıyorsanız, bir bayrak sağlayın: x509=true
  • Cihazın bağlandığı ağ geçidi cihazı. IoT Edge ağ geçidi cihazının yapılandırma dosyasından ana bilgisayar adı değerini girin: GatewayHostName={gateway hostname}

Hepsi birlikte, bir bağlantı dizesinin tamamı şöyle görünür:

HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz;GatewayHostName=myGatewayDevice

Veya

HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice

Üst/alt öğe ilişkisi sayesinde, ağ geçidini doğrudan bağlantı ana bilgisayarı olarak çağırarak bağlantı dizesini basitleştirebilirsiniz. Örnek:

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

Bu değiştirilmiş bağlantı dizesini, saydam ağ geçidi serisinin bir sonraki makalesinde kullanacaksınız.

Sonraki adımlar

Bu noktada, IoT Hub 'ınıza kayıtlı ve saydam bir ağ geçidi olarak yapılandırılmış bir IoT Edge cihazınız vardır. IoT Hub 'ınıza kayıtlı ve ağ geçidi cihazını işaret eden bir aşağı akış cihazınız da vardır.

Sonra, ağ geçidi cihazına güvenmek ve güvenli bir şekilde bağlanmak için aşağı akış cihazınızı yapılandırmanız gerekir. saydam ağ geçidi serisinde bir sonraki makaleye devam edin, bir aşağı akış cihazını bir Azure IoT Edge ağ geçidine Bağlan.