Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du skapar en ny IoT Hub med Azure Device Registry-integrering (ADR) och Microsoft-stödd X.509-certifikathantering.
Viktigt!
Azure IoT Hub med ADR-integrering och Microsoft-stödd X.509-certifikathantering är i offentlig förhandsversion och rekommenderas inte för produktionsarbetsbelastningar. Mer information finns i Vanliga frågor och svar: Vad är nytt i IoT Hub?.
Förutsättningar
En aktiv Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
Om du inte har Installerat Azure CLI följer du stegen för att installera Azure CLI.
Installera Azure IoT CLI-tillägget med förhandsversioner aktiverade för åtkomst till funktionerna för ADR-integrering och certifikathantering för IoT Hub:
Sök efter befintliga Installationer av Azure CLI-tillägg.
az extension listTa bort alla befintliga azure-iot-installationer.
az extension remove --name azure-iotInstallera azure-iot-tillägget från indexet med förhandsgranskningar aktiverade,
az extension add --name azure-iot --allow-previeweller ladda ned .whl-filen från GitHub-releaserna för att installera tillägget på egen hand.
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.whlEfter installationen verifierar du att din azure-iot-tilläggsversion är större än 0.30.0b1.
az extension list
Se till att du har behörighet att utföra rolltilldelningar inom målomfånget. Att utföra rolltilldelningar i Azure kräver en privilegierad roll, till exempel ägare eller administratör för användaråtkomst i lämpligt omfång.
Välj en distributionsmetod
Om du vill använda certifikathantering måste du också konfigurera IoT Hub, ADR och Device Provisioning Service (DPS). Om du vill kan du välja att inte aktivera certifikathantering och endast konfigurera IoT Hub med ADR.
Om du vill konfigurera din IoT Hub med ADR-integrering och certifikathantering kan du använda Azure CLI eller ett skript som automatiserar installationsprocessen.
| Distributionsmetod | Description |
|---|---|
| Välj Azure CLI överst på sidan | Använd Azure CLI för att skapa en ny IoT Hub-, DPS-instans och ADR-namnrymd och konfigurera alla nödvändiga inställningar. |
| Välj PowerShell-skript överst på sidan | Använd ett PowerShell-skript (endast Windows) för att automatisera skapandet av en ny IoT Hub, DPS-instans och ADR-namnrymd och konfigurera alla nödvändiga inställningar. |
Översikt
Använd Azure CLI-kommandona för att skapa en IoT Hub med ADR-integrering och certifikathantering.
Konfigurationsprocessen i den här artikeln innehåller följande steg:
- Skapa en resursgrupp
- Konfigurera nödvändiga appbehörigheter
- Skapa en användartilldelad hanterad identitet
- Skapa ett ADR-namnområde med systemtilldelad hanterad identitet
- Skapa ett behörighetsintyg (rot-CA) och en policy (utfärdande CA) begränsad till namnområdet
- Skapa en IoT Hub (förhandsversion) med länkat namnområde och hanterad identitet
- Skapa en DPS med länkad IoT Hub och namnrymd
- Synkronisera dina autentiseringsuppgifter och principer (CA-certifikat) till ADR-namnområdet
- Skapa en registreringsgrupp och länka till din policy för att aktivera certifikatutfärdande.
Viktigt!
Under förhandsgranskningsperioden är IoT Hub med ADR-integrerings- och certifikathanteringsfunktioner aktiverade ovanpå IoT Hub tillgängliga utan kostnad. Device Provisioning Service (DPS) faktureras separat och ingår inte i förhandsversionserbjudandet. Mer information om DPS-priser finns i Prissättning för Azure IoT Hub.
Förbered din miljö
Utför följande steg för att förbereda din miljö för att använda Azure Device Registry:
Öppna ett terminalfönster.
Om du vill logga in på ditt Azure-konto kör du
az login.Om du vill visa en lista över alla prenumerationer och hyresgäster som du har åtkomst till dem, kör
az account list.Om du har åtkomst till flera Azure-prenumerationer anger du din aktiva prenumeration där dina IoT-enheter skapas genom att köra följande kommando.
az account set --subscription "<your subscription name or ID>"Om du vill visa aktuell kontoinformation kör du
az account show. Kopiera båda följande värden från kommandots utdata och spara dem på en säker plats.- Den
idGUID. Du använder det här värdet för att ange ditt prenumerations-ID. - Den
tenantIdGUID. Du använder det här värdet för att uppdatera dina behörigheter med hjälp av klientorganisations-ID.
- Den
Konfigurera resursgruppen, behörigheterna och den hanterade identiteten
Utför följande steg för att skapa en resursgrupp, roll och behörigheter för din IoT-lösning:
Skapa en resursgrupp för din miljö.
az group create --name <RESOURCE_GROUP_NAME> --location <REGION>Tilldela en deltagarroll till IoT Hub på resursgruppsnivå. Värdet
AppId, som är huvud-ID för IoT Hub, är89d10474-74af-4874-99a7-c23c2f643083och är detsamma för alla Hub-appar.az role assignment create --assignee "89d10474-74af-4874-99a7-c23c2f643083" --role "Contributor" --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>"Skapa en ny användartilldelad hanterad identitet (UAMI).
az identity create --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --location <REGION>Hämta resurs-ID för den hanterade identiteten. Du behöver resurs-ID:t för att tilldela roller, konfigurera åtkomstprinciper eller länka identiteten till andra resurser.
UAMI_RESOURCE_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --query id -o tsv)
Skapa ett nytt ADR-namnområde
I det här avsnittet skapar du ett nytt ADR-namnområde med en systemtilldelad hanterad identitet. Den här processen genererar automatiskt ett rot-CA-certifikat och en utfärdande CA-policy för namnområdet. Mer information om hur autentiseringsuppgifter och principer används för att signera enhetscertifikat av bladtyp vid provisionering finns i Certifikathantering.
Anmärkning
Autentiseringsuppgifter är valfria. Du kan också skapa ett namnområde utan en hanterad identitet genom att utelämna flaggorna --enable-credential-policy och --policy-name .
Skapa ett nytt ADR-namnområde. Ditt namnområde
namefår bara innehålla gemener och bindestreck ('-') i mitten av namnet, men inte i början eller slutet. Till exempel är namnet "msft-namespace" giltigt.
Kommandot--enable-credential-policyskapar autentiseringsuppgifter (rot-CA) och standardprincip (utfärdande CA) för det här namnområdet. Du kan konfigurera namnet på den här principen med hjälp av--policy-namekommandot . Som standard kan en princip utfärda certifikat med en giltighet på 30 dagar.az iot adr ns create --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --location <REGION> --enable-credential-policy true --policy-name <POLICY_NAME>Tips/Råd
Du kan också skapa en anpassad princip genom att lägga till parametrarna
--cert-subjectoch--cert-validity-days. Mer information finns i Skapa en anpassad princip.Anmärkning
Det kan ta upp till 5 minuter att skapa ADR-namnområdet med systemtilldelad hanterad identitet.
Kontrollera att namnområdet med en systemtilldelad hanterad identitet, eller huvud-ID, har skapats.
az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>Kontrollera att en autentiseringsuppgift och en princip med ett visst namn har skapats.
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>Anmärkning
Om du inte tilldelar ett principnamn skapas principen med namnet "default".
Tilldela UAMI-rollen för åtkomst till ADR-namnområdet
I det här avsnittet tilldelar du rollen Azure Device Registry-deltagare till den hanterade identiteten och avgränsar den till namnområdet. Den här anpassade rollen ger fullständig åtkomst till IoT-enheter i ADR-namnområdet.
Hämta det huvudsakliga ID:t för den användartilldelade hanterade identiteten. Detta ID behövs för att tilldela roller till identiteten.
UAMI_PRINCIPAL_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP> --query principalId -o tsv)Hämta resurs-ID för ADR-namnområdet. Detta ID används som räckvidd för rolltilldelningen.
NAMESPACE_RESOURCE_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)Tilldela rollen Azure Device Registry Contributor till den hanterade identiteten. Den här rollen ger den hanterade identiteten nödvändiga behörigheter, begränsade till namnområdet.
az role assignment create --assignee $UAMI_PRINCIPAL_ID --role "a5c3590a-3a1a-4cd4-9648-ea0a32b15137" --scope $NAMESPACE_RESOURCE_ID
Skapa en IoT Hub med ADR-integrering
Skapa en ny IoT Hub som är länkad till ADR-namnområdet och med UAMI som skapades tidigare.
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_IDViktigt!
Eftersom IoT-hubben kan identifieras offentligt som en DNS-slutpunkt bör du undvika att ange känslig eller personligt identifierbar information när du namnger den.
Kontrollera att IoT Hub har rätt identitets- och ADR-egenskaper konfigurerade.
az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
Tilldela IoT Hub-roller för åtkomst till ADR-namnområdet
Hämta huvud-ID:t för ADR-namnområdets hanterade identitet. Den här identiteten behöver behörigheter för att interagera med IoT Hub.
ADR_PRINCIPAL_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query identity.principalId -o tsv)Hämta resurs-ID:t för IoT Hub. Det här ID:t används som omfång för rolltilldelningar.
HUB_RESOURCE_ID=$(az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)Tilldela rollen "Deltagare" till ADR-identiteten. Detta ger ADR-namnområdets hanterade identitetsbidragsgivare tillgång till IoT Hub. Den här rollen ger bred åtkomst, inklusive hantering av resurser, men inte tilldelning av roller.
az role assignment create --assignee $ADR_PRINCIPAL_ID --role "Contributor" --scope $HUB_RESOURCE_IDTilldela rollen "IoT Hub Registry Contributor" till ADR-identiteten. Detta ger mer specifika behörigheter för att hantera enhetsidentiteter i IoT Hub. Detta är viktigt för att ADR ska kunna registrera och hantera enheter i hubben.
az role assignment create --assignee $ADR_PRINCIPAL_ID --role "IoT Hub Registry Contributor" --scope $HUB_RESOURCE_ID
Skapa en enhetsetableringstjänstinstans med ADR-integrering
Skapa en ny DPS-instans som är länkad till ditt ADR-namnområde som skapades i föregående avsnitt. DPS-instansen måste finnas i samma region som adr-namnområdet.
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_IDKontrollera att DPS har rätt identitets- och ADR-egenskaper konfigurerade.
az iot dps show --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
Anslut din IoT Hub till Device Provisioning Service-instansen
Länka IoT Hub till din DPS.
az iot dps linked-hub create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --hub-name <HUB_NAME>Kontrollera att IoT Hub visas i listan över länkade hubbar för DPS.
az iot dps linked-hub list --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP>
Kör synkronisering av ADR-autentiseringsuppgifter
Synkronisera dina autentiseringsuppgifter och principer till IoT Hub. Det här steget säkerställer att IoT Hub registrerar CA-certifikaten och litar på enhetscertifikat som utfärdats enligt dina konfigurerade principer.
az iot adr ns credential sync --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP>
Verifiera hubbens certifikatutfärdarcertifikat
Kontrollera att din IoT Hub har registrerat sitt CA-certifikat.
az iot hub certificate list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP>
Skapa en registrering i DPS
Om du vill etablera enheter med lövcertifikat skapar du en registreringsgrupp i DPS och tilldelar den till lämplig princip för autentiseringsuppgifter med parametern --credential-policy .
Följande kommando skapar en registreringsgrupp med symmetrisk nyckelattestering som standard:
Anmärkning
Om du har skapat en princip med ett annat namn än "standard" kontrollerar du att du använder det principnamnet efter parametern --credential-policy .
az iot dps enrollment-group create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --enrollment-id <ENROLLMENT_ID> --credential-policy <POLICY_NAME>
Din IoT Hub med ADR-integrering och certifikathantering är nu konfigurerad och redo att användas.
Valfria kommandon
Följande kommandon hjälper dig att hantera dina ADR-namnområden, inaktivera enheter, skapa anpassade principer och ta bort resurser när de inte längre behövs.
Hantera dina namnområden
Visa en lista över alla namnområden i resursgruppen.
az iot adr ns list --resource-group <RESOURCE_GROUP_NAME>Visa information om ett specifikt namnområde.
az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>Visa en lista över alla principer i namnområdet.
az iot adr ns policy list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>Visa information om en specifik policy.
az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>Visa en lista över alla autentiseringsuppgifter i ditt namnområde.
az iot adr ns credential list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
Inaktivera enheter
Visa en lista över alla enheter i din IoT Hub.
az iot hub device-identity list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>Inaktivera en enhet genom att uppdatera dess status till
disabled. Ersätt<MY_DEVICE_ID>med det enhets-ID som du vill inaktivera.az iot hub device-identity update --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME> -d <MY_DEVICE_ID> --status disabledKör enheten igen och kontrollera att den inte kan ansluta till en IoT Hub.
Skapa en anpassad policy
Skapa en anpassad princip med kommandot az iot adr ns policy create . Ange namn, certifikatmottagare och giltighetsperiod för principen enligt följande regler:
- Principvärdet
namemåste vara unikt i namnområdet. Om du försöker skapa en princip med ett namn som redan finns får du ett felmeddelande. - Certifikatets ämnesvärde
cert-subjectmåste vara unikt för alla principer i namnområdet. Om du försöker skapa en princip med ett ämne som redan finns får du ett felmeddelande. - Värdet för giltighetsperioden
cert-validity-daysmåste vara mellan 1 och 30 dagar. Om du försöker skapa en princip med en giltighetsperiod utanför det här intervallet får du ett felmeddelande.
I följande exempel skapas en princip med namnet "custom-policy" med ämnet "CN=TestDevice" och en giltighetsperiod på 30 dagar.
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"
Ta bort resurser
Om du vill ta bort adr-namnområdet måste du först ta bort alla IoT Hubs- och DPS-instanser som är länkade till namnområdet.
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>
Översikt
Använd det angivna PowerShell-skriptet för att automatisera installationen av din IoT Hub med Azure Device Registry-integrering. Skriptet utför alla nödvändiga steg för att skapa nödvändiga resurser och länka ihop dem, inklusive:
- Skapa en resursgrupp
- Konfigurera nödvändiga appbehörigheter
- Skapa en användartilldelad hanterad identitet
- Skapa ett ADR-namnområde med systemtilldelad hanterad identitet
- Skapa ett behörighetsintyg (rot-CA) och en policy (utfärdande CA) begränsad till namnområdet
- Skapa en IoT Hub (förhandsversion) med länkat namnområde och hanterad identitet
- Skapa en DPS med länkad IoT Hub och namnrymd
- Synkronisera dina autentiseringsuppgifter och principer (CA-certifikat) till ADR-namnområdet
- Skapa en registreringsgrupp och länka till din policy för att aktivera certifikatutfärdande.
Viktigt!
Under förhandsgranskningsperioden är IoT Hub med ADR-integrerings- och certifikathanteringsfunktioner aktiverade ovanpå IoT Hub tillgängliga utan kostnad. Device Provisioning Service (DPS) faktureras separat och ingår inte i förhandsversionserbjudandet. Mer information om DPS-priser finns i Prissättning för Azure IoT Hub.
Förbered din miljö
- Ladda ned PowerShell 7 för Windows.
- Gå till GitHub-lagringsplatsen och ladda ned mappen Skript, som innehåller skriptfilen .
iothub-adr-certs-setup-preview.ps1
Anpassa skriptvariablerna
Öppna skriptfilen i en textredigerare och ändra följande variabler så att de matchar önskad konfiguration.
-
TenantId: Ditt klient-ID. Du hittar det här värdet genom att köraaz account showi terminalen. -
SubscriptionId: Ditt prenumerations-ID. Du hittar det här värdet genom att köraaz account showi terminalen. -
ResourceGroup: Namnet på resursgruppen. -
Location: Den Azure-region där du vill skapa dina resurser. Kolla in tillgängliga platser för förhandsversionsfunktioner i avsnittet Regioner som stöds . -
NamespaceName: Namnet på namnområdet får bara innehålla gemener och bindestreck (-) i mitten av namnet, men inte i början eller slutet. Till exempel är "msft-namespace" ett giltigt namn. -
HubName: Hubbens namn får bara innehålla små bokstäver från engelska alfabetet och siffror. -
DpsName: Namnet på din enhetsförsörjningstjänsts instans. -
UserIdentity: Den användartilldelade hanterade identiteten för dina resurser. -
WorkingFolder: Den lokala mappen där skriptet finns.
Viktigt!
Eftersom IoT-hubben kan identifieras offentligt som en DNS-slutpunkt bör du undvika att ange känslig eller personligt identifierbar information när du namnger den.
Kör skriptet interaktivt
Öppna skriptet och kör i PowerShell 7+ som administratör. Gå till mappen som innehåller skriptet och kör
.\iothub-adr-certs-setup-preview.ps1.Om du stöter på ett körningsprincipproblem kan du prova att köra
powershell -ExecutionPolicy Bypass -File .\iothub-adr-certs-setup-preview.ps1.Följ de guidade anvisningarna:
- Tryck
Enterför att fortsätta med ett steg - Tryck
sellerShoppa över ett steg - Tryck
Ctrl+Cför att avbryta
- Tryck
Anmärkning
Det kan ta upp till 5 minuter att skapa adr-namnrymden, IoT Hub, DPS och andra resurser.
Övervaka exekvering och verifiera resurserna
Skriptet fortsätter att köras när varningar påträffas och stoppas bara om ett kommando returnerar en slutkod som inte är noll. Övervaka konsolen för röda felmeddelanden , vilket indikerar problem som kräver uppmärksamhet.
När skriptet har slutförts verifierar du skapandet av dina resurser genom att besöka din nya resursgrupp på Azure-portalen. Du bör se följande resurser som skapats:
- IoT Hub-instans
- DPS-instans (Device Provisioning Service)
- Namnområde för Azure Device Registry (ADR)
- Användartilldelad hanterad identitet (UAMI)
Nästa steg
Nu är din IoT Hub med ADR-integrering och certifikathantering konfigurerad och redo att användas. Nu kan du börja registrera dina IoT-enheter till hubben med hjälp av DPS-instansen (Device Provisioning Service) och hantera dina IoT-enheter på ett säkert sätt med hjälp av de principer och registreringar som du har konfigurerat.
Ny: Certifikathantering stöds för utvalda DPS-enhets-SDK:er. Nu kan du registrera enheter med hjälp av Microsoft-stödd X.509-certifikathantering med följande SDK-exempel: