Sdílet prostřednictvím


Začínáme s integrací ADR a správou certifikátů X.509 založené na Microsoftu ve službě IoT Hub (Preview)

Tento článek vysvětluje, jak vytvořit novou službu IoT Hub s integrací služby Azure Device Registry (ADR) a správou certifikátů X.509 založených na Microsoftu.

Důležité

Azure IoT Hub s integrací ADR a správou certifikátů X.509 založené na Microsoftu je ve verzi Public Preview a nedoporučuje se pro produkční úlohy. Další informace najdete v nejčastějších dotazech: Co je nového ve službě IoT Hub?.

Požadavky

  • Aktivní předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.

  • Pokud nemáte nainstalované Rozhraní příkazového řádku Azure CLI, postupujte podle pokynů k instalaci Azure CLI.

  • Nainstalujte rozšíření Azure IoT CLI s povolenou funkcí Preview pro přístup k funkcím integrace ADR a správě certifikátů pro IoT Hub.

    1. Zkontrolujte existující instalace rozšíření Azure CLI.

      az extension list
      
    2. Odstraňte všechny existující instalace azure-iot.

      az extension remove --name azure-iot
      
    3. Nainstalujte rozšíření azure-iot z indexu s povolenými verzemi Preview.

      az extension add --name azure-iot --allow-preview
      

      nebo stáhněte soubor .whl ze stránky vydaných verzí GitHubu a nainstalujte rozšíření ručně.

      az extension add --upgrade --source https://github.com/Azure/azure-iot-cli-extension/releases/download/v0.30.0b1/azure_iot-0.30.0b1-py3-none-any.whl
      
    4. Po instalaci ověřte, že je vaše verze rozšíření azure-iot větší než 0.30.0b1.

      az extension list
      
  • Ujistěte se, že máte oprávnění k provádění přiřazení rolí v rámci cílového oboru. Provádění přiřazení rolí v Azure vyžaduje privilegovanou roli, například vlastníka nebo správce uživatelských přístupů v příslušném oboru.

Volba metody nasazení

Pokud chcete používat správu certifikátů, musíte také nastavit IoT Hub, ADR a službu Device Provisioning Service (DPS). Pokud chcete, můžete se rozhodnout, že nepovolíte správu certifikátů a nakonfigurujete pouze Službu IoT Hub s využitím ADR.

K nastavení služby IoT Hub s integrací ADR a správou certifikátů můžete použít Azure CLI nebo skript, který automatizuje proces nastavení.

Metoda nasazení Description
Výběr Azure CLI v horní části stránky Pomocí Azure CLI vytvořte novou službu IoT Hub, instanci DPS a obor názvů ADR a nakonfigurujte všechna potřebná nastavení.
Výběr powershellového skriptu v horní části stránky Pomocí skriptu PowerShellu (jenom Pro Windows) můžete automatizovat vytvoření nové služby IoT Hub, instance DPS a oboru názvů ADR a nakonfigurovat všechna potřebná nastavení.

Přehled

Pomocí příkazů Azure CLI vytvořte IoT Hub s integrací ADR a správou certifikátů.

Proces instalace v tomto článku zahrnuje následující kroky:

  1. Vytvoření skupiny zdrojů
  2. Konfigurace potřebných oprávnění aplikace
  3. Vytvořit uživatelsky přiřazenou spravovanou identitu
  4. Vytvořte obor názvů ADR se spravovanou identitou přiřazenou systémem
  5. Vytvořit důvěryhodnost (kořenová certifikační autorita) a politiku (vydávající certifikační autorita) v rámci tohoto oboru názvů.
  6. Vytvoření IoT Hubu (verze preview) s připojeným oborem názvů a spravovanou identitou
  7. Vytvoření DPS s propojeným IoT Hubem a oborem názvů
  8. Synchronizujte vaše přihlašovací údaje a správné postupy (certifikáty CA) do prostoru jmen ADR
  9. Vytvořte skupinu registrací a propojte ji s vaší zásadou pro povolení zřizování certifikátů

Důležité

Během období Preview je služba IoT Hub s integrací ADR a funkcemi správy certifikátů, které jsou zahrnuté ve službě IoT Hub k dispozici zdarma. Služba Device Provisioning Service (DPS) se účtuje samostatně a není součástí nabídky Preview. Podrobnosti o cenách DPS najdete v tématu Ceny služby Azure IoT Hub.

Příprava prostředí

Pokud chcete připravit prostředí na používání služby Azure Device Registry, proveďte následující kroky:

  1. Otevřete okno terminálu.

  2. Pokud se chcete přihlásit ke svému účtu Azure, spusťte az loginpříkaz .

  3. Pokud chcete zobrazit seznam všech předplatných a tenantů, ke kterým máte přístup, spusťte az account listpříkaz .

  4. Pokud máte přístup k několika předplatným Azure, nastavte aktivní předplatné, ve kterém se vaše zařízení IoT vytvářejí spuštěním následujícího příkazu.

    az account set --subscription "<your subscription name or ID>"
    
  5. Pokud chcete zobrazit podrobnosti o aktuálním účtu, spusťte az account showpříkaz . Zkopírujte obě následující hodnoty z výstupu příkazu a uložte je do bezpečného umístění.

    • Identifikátor id GUID. Tuto hodnotu použijete k zadání ID předplatného.
    • Identifikátor tenantId GUID. Tuto hodnotu použijete k aktualizaci oprávnění pomocí ID tenanta.

Nakonfigurujte svou skupinu prostředků, oprávnění a spravovanou identitu

Pokud chcete vytvořit skupinu prostředků, roli a oprávnění pro vaše řešení IoT, proveďte následující kroky:

  1. Vytvořte skupinu prostředků pro vaše prostředí.

    az group create --name <RESOURCE_GROUP_NAME> --location <REGION>
    
  2. Přiřaďte službě IoT Hub roli Přispěvatele na úrovni skupiny prostředků. Hodnota AppId, což je hlavní ID pro IoT Hub, je 89d10474-74af-4874-99a7-c23c2f643083 a je stejná pro všechny aplikace Hubu.

    az role assignment create --assignee "89d10474-74af-4874-99a7-c23c2f643083" --role "Contributor" --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>"
    
  3. Vytvořte novou spravovanou identitu přiřazenou uživatelem (UAMI).

    az identity create --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --location <REGION>
    
  4. Získejte ID prostředku spravované identity. K přiřazení rolí, konfiguraci zásad přístupu nebo propojení identity s jinými prostředky potřebujete ID prostředku.

    UAMI_RESOURCE_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --query id -o tsv)
    

Vytvořte nový obor názvů ADR

V této části vytvoříte nový obor názvů ADR se spravovanou identitou přiřazenou systémem. Tento proces automaticky vygeneruje pověření kořenové certifikační autority a politiku vydávající certifikační autority pro obor názvů. Další informace o tom, jak se přihlašovací údaje a zásady používají k podepisování koncových certifikátů zařízení během zřizování, najdete v tématu Správa certifikátů.

Poznámka:

Přihlašovací údaje jsou volitelné. Můžete také vytvořit obor názvů bez spravované identity tak, že vynecháte příznaky --enable-credential-policy a --policy-name.

  1. Vytvořte nový jmenný prostor ADR. Obor názvů name může obsahovat jenom malá písmena a pomlčky (-) uprostřed názvu, ale ne na začátku nebo na konci. Například název msft-namespace je platný.
    Příkaz --enable-credential-policy vytvoří přihlašovací údaje (kořenovou certifikační autoritu) a výchozí zásadu (vydávající certifikační autoritu) pro tento obor názvů. Název této zásady můžete nakonfigurovat pomocí --policy-name příkazu. Ve výchozím nastavení může zásada vydávat certifikáty s platností 30 dnů.

    az iot adr ns create --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --location <REGION> --enable-credential-policy true --policy-name <POLICY_NAME>
    

    Návod

    Volitelně můžete vytvořit vlastní zásadu přidáním parametrů --cert-subject a --cert-validity-days. Další informace najdete v tématu Vytvoření vlastní zásady.

    Poznámka:

    Vytvoření oboru názvů ADR se spravovanou identitou přiřazenou systémem může trvat až 5 minut.

  2. Ověřte, že je vytvořen obor názvů s identitou spravovanou systémem nebo s ID hlavního objektu.

    az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  3. Ověřte, že byla vytvořena pověření a zásady s uvedeným názvem.

    az iot adr ns credential show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>
    

    Poznámka:

    Pokud jste nepřiřadili název zásady, vytvoří se zásada s názvem "default".

Přiřaďte roli UAMI pro přístup k oboru názvů ADR

V této části přiřadíte roli Přispěvatele registru zařízení Azure ke spravované identitě a omezíte ji na obor názvů. Tato vlastní role umožňuje plný přístup k zařízením IoT v rámci oboru názvů ADR.

  1. Načtěte hlavní ID User-Assigned Managed Identity. Toto ID je potřeba k přiřazení rolí identitě.

    UAMI_PRINCIPAL_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP> --query principalId -o tsv)
    
  2. Získejte ID prostředku ADR oboru názvů. Tento identifikátor se používá jako rozsah přiřazení role.

    NAMESPACE_RESOURCE_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
    
  3. Přiřaďte spravované identitě roli Přispěvatel registru zařízení Azure . Tato role uděluje spravované identitě potřebná oprávnění vymezená oborem názvů.

    az role assignment create --assignee $UAMI_PRINCIPAL_ID --role "a5c3590a-3a1a-4cd4-9648-ea0a32b15137" --scope $NAMESPACE_RESOURCE_ID
    

Vytvoření ioT Hubu s integrací ADR

  1. Vytvořte novou službu IoT Hub, která je propojená s oborem názvů ADR a dříve vytvořenou službou UAMI.

    az iot hub create --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --location <HUB_LOCATION> --sku GEN2 --mi-user-assigned $UAMI_RESOURCE_ID --ns-resource-id $NAMESPACE_RESOURCE_ID --ns-identity-id $UAMI_RESOURCE_ID
    

    Důležité

    Vzhledem k tomu, že centrum IoT bude veřejně zjistitelné jako koncový bod DNS, nezapomeňte se vyhnout zadávání citlivých nebo identifikovatelných osobních údajů při jejich pojmenování.

  2. Ověřte, že je ve službě IoT Hub nakonfigurovaná správná identita a vlastnosti ADR.

    az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
    

Přiřazení rolí služby IoT Hub pro přístup k oboru názvů ADR

  1. Načtěte ID hlavního objektu spravované identity prostoru názvů ADR. Tato identita potřebuje oprávnění pro interakci se službou IoT Hub.

    ADR_PRINCIPAL_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query identity.principalId -o tsv)
    
  2. Načtěte ID prostředku IoT Hubu. Tento identifikátor se používá jako rozsah pro přiřazení rolí.

    HUB_RESOURCE_ID=$(az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
    
  3. Přiřaďte roli přispěvatel k identitě ADR. Tím se udělí přístup přispěvatele spravované identity oboru názvů ADR ke službě IoT Hub. Tato role umožňuje široký přístup, včetně správy prostředků, ale nepřiřazování rolí.

    az role assignment create --assignee $ADR_PRINCIPAL_ID --role "Contributor" --scope $HUB_RESOURCE_ID
    
  4. Přiřaďte k identitě ADR roli Přispěvatel registru služby IoT Hub. Tím udělíte konkrétnější oprávnění ke správě identit zařízení ve službě IoT Hub. To je nezbytné pro ADR pro registraci a správu zařízení v centru.

    az role assignment create --assignee $ADR_PRINCIPAL_ID --role "IoT Hub Registry Contributor" --scope $HUB_RESOURCE_ID
    

Vytvoření instance služby Device Provisioning s integrací ADR

  1. Vytvořte novou instanci DPS propojenou s namespace ADR vytvořeným v předchozích částech. Vaše instance DPS musí být umístěná ve stejné oblasti jako váš obor názvů ADR.

    az iot dps create --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --mi-user-assigned $UAMI_RESOURCE_ID --ns-resource-id $NAMESPACE_RESOURCE_ID --ns-identity-id $UAMI_RESOURCE_ID
    
  2. Ověřte, že je ve službě DPS nakonfigurovaná správná identita a vlastnosti ADR.

    az iot dps show --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
    
  1. Propojte IoT Hub s vaším DPS.

    az iot dps linked-hub create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --hub-name <HUB_NAME>
    
  2. Ověřte, že se IoT Hub zobrazí v seznamu propojených center pro DPS.

    az iot dps linked-hub list --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP>
    

Spuštění synchronizace přihlašovacích údajů ADR

Synchronizujte své přihlašovací údaje a zásady se službou IoT Hub. Tento krok zajistí, že IoT Hub zaregistruje certifikáty certifikační autority a důvěřuje všem koncovým certifikátům vystaveným nakonfigurovanými zásadami.

az iot adr ns credential sync --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP>

Ověřte certifikát certifikační autority uzlu

Ověřte, že vaše služba IoT Hub zaregistrovala certifikát certifikační autority.

az iot hub certificate list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP>

Vytvoření registrace v DPS

Pokud chcete zřídit zařízení pomocí listových certifikátů, vytvořte ve službě DPS skupinu registrací a přiřaďte ji k příslušné zásadě přihlašovacích údajů pomocí parametru --credential-policy .

Následující příkaz vytvoří skupinu registrací s použitím ověření symetrického klíče ve výchozím nastavení:

Poznámka:

Pokud jste vytvořili zásadu s jiným názvem než výchozí, ujistěte se, že tento název zásady použijete za parametrem --credential-policy .

az iot dps enrollment-group create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --enrollment-id <ENROLLMENT_ID> --credential-policy <POLICY_NAME>

Vaše služba IoT Hub s integrací ADR a správou certifikátů je teď nastavená a připravená k použití.

Volitelné příkazy

Následující příkazy vám pomůžou spravovat obory názvů ADR, zakázat zařízení, vytvářet vlastní zásady a odstraňovat prostředky, když už nejsou potřeba.

Správa oborů názvů

  1. Vypište všechny obory názvů ve vaší skupině prostředků.

    az iot adr ns list --resource-group <RESOURCE_GROUP_NAME>
    
  2. Zobrazí podrobnosti o konkrétním jmenném prostoru.

    az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  3. Vypište všechny zásady ve vašem jmenném prostoru.

    az iot adr ns policy list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  4. Zobrazení podrobností o konkrétní zásadě

    az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>
    
  5. Vypište všechny přihlašovací údaje ve vašem jmenném prostoru.

    az iot adr ns credential list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    

Zakázání zařízení

  1. Zobrazí seznam všech zařízení ve službě IoT Hub.

    az iot hub device-identity list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  2. Zakažte zařízení aktualizací jeho stavu na disabled. Nezapomeňte nahradit <MY_DEVICE_ID> ID zařízení, které chcete zakázat.

    az iot hub device-identity update --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME> -d <MY_DEVICE_ID> --status disabled
    
  3. Spusťte zařízení znovu a ověřte, že se nemůže připojit ke službě IoT Hub.

Vytvoření vlastní zásady

Pomocí příkazu az iot adr ns policy create vytvořte vlastní zásadu. Nastavte název, předmět certifikátu a dobu platnosti zásad následujícím postupem:

  • Hodnota zásady name musí být v rámci oboru názvů jedinečná. Pokud se pokusíte vytvořit zásadu s názvem, který již existuje, zobrazí se chybová zpráva.
  • Hodnota předmětu cert-subject certifikátu musí být jedinečná ve všech politikách v oboru názvů. Pokud se pokusíte vytvořit zásadu s předmětem, který již existuje, zobrazí se chybová zpráva.
  • Hodnota období cert-validity-days platnosti musí být mezi 1 a 30 dny. Pokud se pokusíte vytvořit zásadu s dobou platnosti mimo tento rozsah, zobrazí se chybová zpráva.

Následující příklad vytvoří zásadu s názvem custom-policy s předmětem CN=TestDevice a dobou platnosti 30 dnů.

az iot adr ns policy create --name "custom-policy" --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --cert-subject "CN=TestDevice" --cert-validity-days "30"

Smazat prostředky

Pokud chcete odstranit obor názvů ADR, musíte nejprve odstranit všechny instance IoT Hub a DPS napojené na obor názvů.

az iot hub delete --name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>
az iot adr ns delete --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
az iot dps delete --name <DPS_NAME> --resource-group <RESOURCE_GROUP_NAME> 
az identity delete --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME>

Přehled

Pomocí poskytnutého skriptu PowerShellu můžete automatizovat nastavení služby IoT Hub pomocí integrace služby Azure Device Registry. Skript provede všechny nezbytné kroky k vytvoření požadovaných prostředků a jejich propojení, včetně:

  1. Vytvoření skupiny zdrojů
  2. Konfigurace potřebných oprávnění aplikace
  3. Vytvořit uživatelsky přiřazenou spravovanou identitu
  4. Vytvořte obor názvů ADR se spravovanou identitou přiřazenou systémem
  5. Vytvořit důvěryhodnost (kořenová certifikační autorita) a politiku (vydávající certifikační autorita) v rámci tohoto oboru názvů.
  6. Vytvoření IoT Hubu (verze preview) s připojeným oborem názvů a spravovanou identitou
  7. Vytvoření DPS s propojeným IoT Hubem a oborem názvů
  8. Synchronizujte vaše přihlašovací údaje a správné postupy (certifikáty CA) do prostoru jmen ADR
  9. Vytvořte skupinu registrací a propojte ji s vaší zásadou pro povolení zřizování certifikátů

Důležité

Během období Preview je služba IoT Hub s integrací ADR a funkcemi správy certifikátů, které jsou zahrnuté ve službě IoT Hub k dispozici zdarma. Služba Device Provisioning Service (DPS) se účtuje samostatně a není součástí nabídky Preview. Podrobnosti o cenách DPS najdete v tématu Ceny služby Azure IoT Hub.

Příprava prostředí

  1. Stáhněte si PowerShell 7 pro Windows.
  2. Přejděte do úložiště GitHub a stáhněte složku Scripts, která obsahuje soubor skriptu. iothub-adr-certs-setup-preview.ps1

Přizpůsobení proměnných skriptu

Otevřete soubor skriptu v textovém editoru a upravte následující proměnné tak, aby odpovídaly požadované konfiguraci.

  • TenantId: VAŠE ID tenanta. Tuto hodnotu najdete spuštěním az account show v terminálu.
  • SubscriptionId: VAŠE ID předplatného. Tuto hodnotu najdete spuštěním az account show v terminálu.
  • ResourceGroup: Název vaší skupiny prostředků.
  • Location: Oblast Azure, ve které chcete prostředky vytvořit. Podívejte se na dostupná umístění funkcí preview v části Podporované oblasti .
  • NamespaceName: Název oboru názvů může obsahovat pouze malá písmena a pomlčky (-) uprostřed názvu, ale ne na začátku nebo na konci. Například msft-namespace je platný název.
  • HubName: Název centra může obsahovat jenom malá písmena a číslice.
  • DpsName: Název instance služby Device Provisioning.
  • UserIdentity: Spravovaná identita přidělená uživatelem pro vaše prostředky.
  • WorkingFolder: Místní složka, ve které se nachází váš skript.

Důležité

Vzhledem k tomu, že centrum IoT bude veřejně zjistitelné jako koncový bod DNS, nezapomeňte se vyhnout zadávání citlivých nebo identifikovatelných osobních údajů při jejich pojmenování.

Interaktivní spuštění skriptu

  1. Otevřete skript a spusťte ho v PowerShellu 7+ jako správce. Přejděte do složky obsahující váš skript a spusťte .\iothub-adr-certs-setup-preview.ps1.

  2. Pokud narazíte na problém se zásadami spuštění, zkuste spustit powershell -ExecutionPolicy Bypass -File .\iothub-adr-certs-setup-preview.ps1.

  3. Postupujte podle vedených pokynů:

    • Pokud chcete pokračovat krokem, stiskněte Enter klávesu
    • Stiskněte s nebo S přeskočte krok.
    • Stisknutím Ctrl + C přerušíte

Poznámka:

Vytvoření oboru názvů ADR, IoT Hubu, DPS a dalších prostředků může trvat až 5 minut.

Monitorování provádění a ověření prostředků

  1. Skript pokračuje v provádění, když se zobrazí upozornění a zastaví pouze v případě, že příkaz vrátí nenulový ukončovací kód. Monitorujte konzolu s červenými zprávami ERROR , které indikují problémy, které vyžadují pozornost.

  2. Po dokončení skriptu ověřte vytvoření prostředků tak, že navštívíte novou skupinu prostředků na webu Azure Portal. Měli byste vidět následující vytvořené zdroje:

    • Instance IoT Hub
    • Instance služby nasazování zařízení (DPS)
    • Obor názvů služby Azure Device Registry (ADR)
    • spravovaná identita přiřazená uživatelem (UAMI)

Další kroky

V tuto chvíli je vaše služba IoT Hub s integrací ADR a správou certifikátů nastavená a připravená k použití. Teď můžete začít připojovat zařízení IoT do centra pomocí instance služby Device Provisioning Service (DPS) a bezpečně spravovat zařízení IoT pomocí zásad a registrací, které jste nastavili.

Nové: Správa certifikátů se podporuje napříč vybranými sadami SDK pro zařízení DPS. Teď můžete připojit zařízení pomocí správy certifikátů X.509 založené na Microsoftu s následujícími ukázkami sady SDK: