Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Elke IoT-hub heeft een identiteitsregister waarin informatie wordt opgeslagen over de apparaten en modules die zijn toegestaan om verbinding te maken met die IoT-hub. Voordat een apparaat of module verbinding kan maken met een IoT-hub, moet er een vermelding zijn voor dat apparaat of die module in het identiteitsregister van de IoT-hub. Een apparaat of module wordt geverifieerd met de IoT-hub op basis van referenties die zijn opgeslagen in het identiteitsregister.
De apparaat-id of module-id die in het identiteitsregister is opgeslagen, is hoofdlettergevoelig.
Het identiteitsregister is een REST-capabele collectie van identiteitsbronnen. Wanneer u een vermelding toevoegt in het identiteitsregister, maakt IoT Hub een set resources per apparaat, zoals de wachtrij die in-flight cloud-naar-apparaat-berichten bevat.
Gebruik het identiteitsregister om het volgende te doen:
- Apparaten of modules inrichten die verbinding maken met uw IoT-hub.
- Beheer de toegang per apparaat/per module tot de eindpunten van uw hub.
Registerbewerkingen voor identiteit
In het IoT Hub-identiteitsregister worden de volgende bewerkingen weergegeven:
- Identiteit maken
- Identiteit bijwerken
- Identiteit ophalen met ID
- Identiteit verwijderen
- Maximaal 1000 identiteiten weergeven
- Identiteiten exporteren naar Azure Blob Storage
- Identiteiten importeren uit Azure Blob Storage
Al deze bewerkingen kunnen optimistische gelijktijdigheid gebruiken, zoals opgegeven in RFC 7232.
Een IoT Hub-identiteitsregister bevat geen metagegevens van toepassingen.
Belangrijk
Gebruik alleen het identiteitsregister voor apparaatbeheer- en inrichtingsbewerkingen. Bewerkingen met hoge doorvoer tijdens runtime moeten niet afhankelijk zijn van het uitvoeren van bewerkingen in het identiteitsregister. Als u bijvoorbeeld de verbindingsstatus van een apparaat controleert voordat een opdracht wordt verzonden, is dit geen ondersteund patroon. Controleer de beperkingsfrequenties voor het identiteitsregister.
Notitie
Het kan enkele seconden duren voordat een apparaat- of module-id beschikbaar is voor het ophalen na het maken. Als er fouten optreden, kunt u de get
bewerking van apparaat- of module-id's opnieuw uitvoeren.
Apparaten uitschakelen
U kunt apparaten uitschakelen door de statuseigenschap van een identiteit in het identiteitsregister bij te werken. Normaal gesproken gebruikt u deze eigenschap in twee scenario's:
Tijdens een voorzienings- en orkestratieproces. Zie Device Provisioning voor meer informatie.
Als u denkt dat een apparaat om welke reden dan ook is aangetast of niet gemachtigd is.
Belangrijk
IoT Hub controleert geen certificaatintrekkingslijsten bij het verifiëren van apparaten met verificatie op basis van certificaten. Als u een apparaat hebt dat moet worden geblokkeerd om verbinding te maken met IoT Hub vanwege een mogelijk aangetast certificaat, moet u het apparaat uitschakelen in het identiteitsregister.
Deze functie is niet beschikbaar voor modules.
Zie de sectie Een apparaat uitschakelen of verwijderen van apparaatidentiteiten maken en beheren voor meer informatie.
Apparaat-id's importeren en exporteren
De enige manier om alle identiteiten in het identiteitsregister van een IoT-hub op te halen, is door de exportfunctionaliteit te gebruiken.
Gebruik asynchrone bewerkingen op het eindpunt van de IoT Hub-resourceprovider om apparaatidentiteiten bulksgewijs te importeren of te exporteren vanuit het identiteitsregister van een IoT-hub. Import- en exporttaken zijn langlopende taken die gebruikmaken van een door de klant geleverde blobcontainer.
Zie IoT Hub-resource voor meer informatie over de API's voor importeren en exporteren. Zie IoT Hub-apparaatidentiteiten bulksgewijs importeren en exporteren voor meer informatie over het uitvoeren van import- en exporttaken.
Apparaat-id's kunnen ook worden geëxporteerd en geïmporteerd uit een IoT-hub met behulp van de service-API via de REST API of een van de IoT Hub-service-SDK's.
Apparatenvoorziening
De apparaatgegevens die door een bepaalde IoT-oplossing worden opgeslagen, zijn afhankelijk van de specifieke vereisten van die oplossing. Maar in een oplossing moeten apparaat-id's en verificatiesleutels worden opgeslagen. Het IoT Hub-identiteitsregister kan waarden opslaan voor elk apparaat, zoals id's, verificatiesleutels en statuscodes. Een oplossing kan andere Azure-services, zoals Table Storage, Blob Storage of Azure Cosmos DB, gebruiken om andere apparaatgegevens op te slaan.
Apparaatprovisioning is het proces waarbij de initiële apparaatgegevens aan de opslaglocaties in uw oplossing worden toegevoegd. Als u een nieuw apparaat wilt inschakelen om verbinding te maken met uw hub, voegt u een apparaat-id en sleutels toe aan het IoT Hub-identiteitsregister. Als onderdeel van het inrichtingsproces moet u mogelijk apparaatspecifieke gegevens initialiseren in andere oplossingsarchieven. U kunt de Azure IoT Hub Device Provisioning Service ook gebruiken om zero-touch, just-in-time inrichting mogelijk te maken voor een of meer IoT-hubs. Zie de documentatie voor Azure IoT Hub Device Provisioning Service voor meer informatie.
Meldingen over de levenscyclus van apparaten en modules
IoT Hub kan uw IoT-oplossing waarschuwen wanneer een apparaat-id wordt gemaakt of verwijderd door meldingen over de levenscyclus te verzenden. Hiervoor moet uw IoT-oplossing een route maken en de gegevensbron instellen die gelijk is aan DeviceLifecycleEvents. Standaard worden er geen meldingen over de levenscyclus verzonden, dat wil gezegd, dergelijke routes bestaan niet. Wanneer u een route maakt met een gegevensbron die gelijk is aan DeviceLifecycleEvents, worden levenscyclus-gebeurtenissen verzonden voor zowel apparaat-id's als module-id's. De inhoud van het bericht verschilt, afhankelijk van of de gebeurtenissen worden gegenereerd voor module-id's of apparaat-id's. Voor meer informatie over de eigenschappen en hoofdtekst die worden geretourneerd in het meldingsbericht, zie Azure IoT Hub niet-telemetriegebeurtenisschema's.
Meldingen voor het maken van module-identiteiten verschillen voor IoT Edge-modules dan voor andere modules. Voor IoT Edge-modules wordt de creatiemelding alleen verzonden als het bijbehorende IoT Edge-apparaat draait. Voor alle andere modules worden levenscyclusmeldingen verzonden wanneer de module-identiteit wordt bijgewerkt aan de zijde van IoT Hub.
Eigenschappen van apparaat-id's
Apparaatidentiteiten worden weergegeven als JSON-documenten met de volgende eigenschappen:
Eigenschap | Opties | Beschrijving |
---|---|---|
apparaat-ID | vereist, alleen-lezen voor updates | Een hoofdlettergevoelige tekenreeks (maximaal 128 tekens lang) van ASCII 7-bits alfanumerieke tekens plus bepaalde speciale tekens: - . % _ * ? ! ( ) , : = @ $ ' . De speciale tekens + # worden niet ondersteund. |
generatie-ID | vereist, alleen-lezen | Een door IoT Hub gegenereerde, hoofdlettergevoelige tekenreeks van maximaal 128 tekens. Deze waarde wordt gebruikt om apparaten te onderscheiden met dezelfde deviceId wanneer ze worden verwijderd en opnieuw worden gemaakt. |
etag | vereist, alleen lezen | Een tekenreeks die een zwakke ETag vertegenwoordigt voor de apparaat-id, volgens RFC 7232. |
verificatie | optioneel | Een samengesteld object met verificatiegegevens en beveiligingsmaterialen. Zie AuthenticationMechanism in de REST API-documentatie voor meer informatie. |
mogelijkheden | optioneel | De set mogelijkheden van het apparaat. Bijvoorbeeld of het apparaat een edge-apparaat is of niet. Zie DeviceCapabilities in de REST API-documentatie voor meer informatie. |
apparaatbereik | optioneel | Het bereik van het apparaat. In edge-apparaten, automatisch gegenereerd en onveranderbaar. Verouderd in niet-edge apparaten. Stel in onderliggende (leaf)-apparaten deze eigenschap echter in op dezelfde waarde als de eigenschap parentScopes (de deviceScope van het bovenliggende apparaat) voor achterwaartse compatibiliteit met eerdere versies van de API. Zie de sectie Bovenliggende en onderliggende relaties van hoe een IoT Edge-apparaat kan worden gebruikt als gateway voor meer informatie. |
parentScopes | optioneel | Het bereik van het directe ouderapparaat van een kindapparaat (de waarde van de eigenschap deviceScope van het ouderapparaat). In edge-apparaten is de waarde leeg als het apparaat geen bovenliggend item heeft. In niet-geïmplementeerde apparaten is de eigenschap niet aanwezig als het apparaat geen bovenliggende eigenschap heeft. Zie de sectie Bovenliggende en onderliggende relaties van hoe een IoT Edge-apparaat kan worden gebruikt als gateway voor meer informatie. |
status | vereist | Een toegangsindicator. Deze waarde kan Enabled of Disabled zijn. Als Enabled het apparaat verbinding mag maken. Als Disabled , kan het apparaat geen toegang krijgen tot een apparaatgericht eindpunt. |
statusreden | optioneel | Een tekenreeks van 128 tekens die de reden voor de status van de apparaat-id opslaat. Alle UTF-8 tekens zijn toegestaan. |
statusUpdateTijd | alleen-lezen | Een tijdelijke indicator, met de datum en tijd van de laatste statusupdate. |
verbindingsstatus | alleen-lezen | Een veld dat de verbindingsstatus aangeeft: of Connected Disconnected . Dit veld vertegenwoordigt de IoT Hub-weergave van de verbindingsstatus van het apparaat.
Belangrijk: Dit veld mag alleen worden gebruikt voor ontwikkelings-/foutopsporingsdoeleinden. De verbindingsstatus wordt alleen bijgewerkt voor apparaten die MQTT of AMQP gebruiken. Het is ook gebaseerd op pings op protocolniveau (MQTT-pings of AMQP-pings) en kan een maximale vertraging van slechts 5 minuten hebben. Om deze redenen kunnen er vals positieven zijn, zoals niet-verbonden apparaten die als verbonden worden gerapporteerd. |
tijd van bijgewerkte verbindingsstatus | alleen lezen | Een tijdelijke indicator, met de datum en laatste keer dat de verbindingsstatus is bijgewerkt. |
laatste activiteitstijd | alleen lezen | Een tijdelijke indicator, met de datum en laatste keer dat het apparaat is verbonden, ontvangen of een bericht heeft verzonden. Deze eigenschap is uiteindelijk consistent, maar kan tot 5 tot 10 minuten worden uitgesteld. Daarom mag deze niet worden gebruikt in productiescenario's. |
Notitie
De verbindingsstatus kan alleen de IoT Hub-weergave van de status van de verbinding vertegenwoordigen. Updates voor deze status kunnen worden vertraagd, afhankelijk van netwerkvoorwaarden en configuraties.
Eigenschappen van module-identiteit
Module-identiteiten worden weergegeven als JSON-documenten met de volgende eigenschappen:
Eigendom | Opties | Beschrijving |
---|---|---|
apparaat-ID | vereist; bij updates alleen-lezen | Een hoofdlettergevoelige tekenreeks (maximaal 128 tekens lang) van ASCII 7-bits alfanumerieke tekens plus bepaalde speciale tekens: - . % _ * ? ! ( ) , : = @ $ ' . |
moduleId | vereist, alleen-lezen voor updates | Een hoofdlettergevoelige tekenreeks (maximaal 128 tekens lang) van ASCII 7-bits alfanumerieke tekens plus bepaalde speciale tekens: - . % _ * ? ! ( ) , : = @ $ ' . De speciale tekens + # worden niet ondersteund. |
generationId | vereist, alleen-lezen | Een door IoT Hub gegenereerde, hoofdlettergevoelige tekenreeks van maximaal 128 tekens. Deze waarde wordt gebruikt om apparaten te onderscheiden met dezelfde deviceId wanneer ze worden verwijderd en opnieuw worden gemaakt. |
etag | vereist, alleen-lezen | Een tekenreeks die een zwakke ETag vertegenwoordigt voor de apparaat-id, volgens RFC 7232. |
verificatie | optioneel | Een samengesteld object met verificatiegegevens en beveiligingsmaterialen. Zie AuthenticationMechanism in de REST API-documentatie voor meer informatie. |
managedBy | optioneel | Identificeert wie deze module beheert. Als de edge-runtime bijvoorbeeld eigenaar is van module IoT Edge , is deze waarde dat. |
aantalBerichtenVanCloudNaarApparaat | alleen lezen | Het aantal cloud-naar-module-berichten dat momenteel in de wachtrij is geplaatst om naar de module te worden verzonden. |
verbindingsstatus | alleen-lezen | Een veld dat de verbindingsstatus aangeeft: of Connected Disconnected . Dit veld vertegenwoordigt de IoT Hub-weergave van de verbindingsstatus van het apparaat.
Belangrijk: Dit veld mag alleen worden gebruikt voor ontwikkelings-/foutopsporingsdoeleinden. De verbindingsstatus wordt alleen bijgewerkt voor apparaten die MQTT of AMQP gebruiken. Het is ook gebaseerd op pings op protocolniveau (MQTT-pings of AMQP-pings) en kan een maximale vertraging van slechts 5 minuten hebben. Om deze redenen kunnen er fout-positieven zijn, zoals niet-verbonden apparaten. |
verbindingsStatusBijgewerktTijd | alleen lezen | Een tijdelijke indicator, met de datum en laatste keer dat de verbindingsstatus is bijgewerkt. |
lastActivityTime | alleen-lezen | Een tijdelijke indicator, met de datum en laatste keer dat het apparaat is verbonden, ontvangen of een bericht heeft verzonden. |
Gerelateerde inhoud
IoT Hub-eindpunten beschrijven de verschillende eindpunten die elke IoT-hub beschikbaar maakt voor runtime- en beheerbewerkingen.
Azure IoT Hub SDK's vermeldt de verschillende taal-SDK's die u kunt gebruiken wanneer u zowel apparaat- als service-apps ontwikkelt die communiceren met IoT Hub.
IoT Hub-querytaal voor apparaat- en moduledubbels, taken en berichtroutering beschrijft de querytaal die u kunt gebruiken om informatie op te halen uit IoT Hub over uw apparaatdubbels en -taken.
Als u de IoT Hub Device Provisioning Service wilt gebruiken om zero-touch, just-in-time provisioning in te schakelen, raadpleegt u de instructies: