IoT Hub-stöd för hanterade identiteter
Hanterade identiteter ger Azure-tjänster en automatiskt hanterad identitet i Microsoft Entra ID på ett säkert sätt. Detta eliminerar behovet för utvecklare att hantera autentiseringsuppgifter genom att tillhandahålla en identitet. Det finns två typer av hanterade identiteter: systemtilldelade och användartilldelade. IoT Hub kan användas med båda.
I IoT Hub kan hanterade identiteter användas för att ansluta IoT Hub till andra Azure-tjänster för funktioner som meddelanderoutning, filuppladdning och massimport/export av enheter. I den här artikeln får du lära dig hur du använder systemtilldelade och användartilldelade hanterade identiteter i din IoT-hubb för olika funktioner.
Förutsättningar
Förstå skillnaderna mellan systemtilldelade och användartilldelade hanterade identiteter i Vad är hanterade identiteter för Azure-resurser?
En IoT-hubb i din Azure-prenumeration. Om du inte har någon hubb ännu kan du följa stegen i Skapa en IoT-hubb.
Systemtilldelad hanterad identitet
Du kan aktivera eller inaktivera systemtilldelad hanterad identitet i Azure-portalen
Logga in på Azure-portalen och gå till din IoT-hubb.
Välj Identitet i avsnittet Säkerhetsinställningar i navigeringsmenyn.
Välj fliken Systemtilldelad .
Ange den systemtilldelade hanterade identitetsstatusen till På eller Av och välj sedan Spara.
Kommentar
Du kan inte inaktivera systemtilldelad hanterad identitet när den används. Kontrollera att inga anpassade slutpunkter använder systemtilldelad hanterad identitetsautentisering innan du inaktiverar funktionen.
Användartilldelad hanterad identitet
I det här avsnittet får du lära dig hur du lägger till och tar bort en användartilldelad hanterad identitet från en IoT-hubb med hjälp av Azure-portalen.
Först måste du skapa en användartilldelad hanterad identitet som en fristående resurs. För att göra det kan du följa anvisningarna i Hantera användartilldelade hanterade identiteter.
Gå till din IoT-hubb och gå till identiteten i IoT Hub-portalen.
Under fliken Användartilldelad klickar du på Associera en användartilldelad hanterad identitet. Välj den användartilldelade hanterade identitet som du vill lägga till i hubben och klicka sedan på Välj.
Du kan ta bort en användartilldelad identitet från en IoT-hubb. Välj den användartilldelade identitet som du vill ta bort och klicka på knappen Ta bort . Observera att du bara tar bort den från IoT Hub, och den här borttagningen tar inte bort den användartilldelade identiteten som en resurs. Om du vill ta bort den användartilldelade identiteten som en resurs följer du anvisningarna i Hantera användartilldelade hanterade identiteter.
Utgående anslutning från IoT Hub till andra Azure-resurser
Hanterade identiteter kan användas för utgående anslutning från IoT Hub till andra Azure-tjänster. Du kan välja vilken hanterad identitet som ska användas för varje IoT Hub-utgående anslutning till kundägda slutpunkter, inklusive lagringskonton, händelsehubbar och Service Bus-slutpunkter.
Kommentar
Endast systemtilldelad hanterad identitet ger IoT Hub åtkomst till privata resurser. Om du vill använda användartilldelad hanterad identitet måste den offentliga åtkomsten för dessa privata resurser aktiveras för att tillåta anslutning.
Konfigurera meddelanderoutning med hanterade identiteter
I det här avsnittet använder vi meddelandedirigering till en anpassad händelsehubbslutpunkt som exempel. Exemplet gäller även för andra anpassade routningsslutpunkter.
Gå till din händelsehubb i Azure-portalen för att tilldela den hanterade identiteten rätt åtkomst.
Välj Åtkomstkontroll (IAM) .
Välj Lägg till lägg till > rolltilldelning.
På fliken Roll väljer du Azure Event Hubs Data Sender.
Kommentar
För ett lagringskonto väljer du Storage Blob Data Contributor (inte Deltagare eller Lagringskontodeltagare) som roll. För en servicebuss väljer du Azure Service Bus Data Sender.
Från fliken Medlemmar väljer du Hanterad identitet och välj sedan Välj medlemmar.
För användartilldelade hanterade identiteter väljer du din prenumeration, väljer Användartilldelad hanterad identitet och väljer sedan din användartilldelade hanterade identitet.
För systemtilldelade hanterade identiteter väljer du din prenumeration, väljer Alla systemtilldelade hanterade identiteter och väljer sedan resursnamnet för din IoT Hub.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Mer information om rolltilldelningar finns i Tilldela Azure-roller med hjälp av Azure-portalen.
Om du behöver begränsa anslutningen till din anpassade slutpunkt via ett virtuellt nätverk måste du aktivera det betrodda microsoft-undantaget från första part för att ge din IoT Hub-åtkomst till den specifika slutpunkten. Om du till exempel lägger till en anpassad slutpunkt för händelsehubben går du till fliken Brandväggar och virtuella nätverk i händelsehubben och aktiverar alternativet Tillåt åtkomst från valda nätverk . I listan Undantag markerar du kryssrutan Tillåt betrodda Microsoft usluge att komma åt händelsehubbar. Klicka på knappen Spara. Detta gäller även för lagringskonto och Service Bus. Läs mer om IoT Hub-stöd för virtuella nätverk.
Kommentar
Du måste slutföra stegen ovan för att tilldela den hanterade identiteten rätt åtkomst innan du lägger till händelsehubben som en anpassad slutpunkt i IoT Hub. Vänta några minuter tills rolltilldelningen har spridits.
Gå sedan till din IoT-hubb. I hubben navigerar du till Meddelanderoutning och väljer sedan Lägg till.
På fliken Slutpunkt skapar du en slutpunkt för händelsehubben genom att ange följande information:
Parameter Värde Slutpunktstyp Välj Event Hubs. Slutpunktsnamn Ange ett unikt namn för en ny slutpunkt eller välj Välj befintlig för att välja en befintlig Event Hubs-slutpunkt. Event Hubs-namnrymd Använd den nedrullningsbara menyn för att välja ett befintligt Event Hubs-namnområde i din prenumeration. Händelsehubbinstans Använd den nedrullningsbara menyn för att välja en befintlig händelsehubb i ditt namnområde. Autentiseringstyp Välj Användartilldelad och använd sedan den nedrullningsbara menyn för att välja den användartilldelade identitet som du skapade i händelsehubben. Välj Skapa + nästa. Du kan fortsätta genom guiden för att skapa en väg som pekar på den här slutpunkten, eller så kan du stänga guiden.
Du kan ändra autentiseringstypen för en befintlig anpassad slutpunkt. Använd följande steg för att ändra en slutpunkt:
I din IoT-hubb väljer du Meddelanderoutning i det vänstra navigeringsfönstret och sedan Anpassade slutpunkter.
Markera kryssrutan för den anpassade slutpunkt som du vill ändra och välj sedan Ändra autentiseringstyp.
Välj den nya autentiseringstypen för den här slutpunkten och välj sedan Spara.
Konfigurera filuppladdning med hanterade identiteter
Med IoT Hubs filuppladdningsfunktion kan enheter ladda upp filer till ett kundägt lagringskonto. För att filuppladdningen ska fungera måste IoT Hub ha anslutning till lagringskontot. På samma sätt som för meddelanderoutning kan du välja önskad autentiseringstyp och hanterad identitet för utgående IoT Hub-anslutning till ditt Azure Storage-konto.
Navigera till ditt lagringskonto på Azure-portalen.
Välj Åtkomstkontroll (IAM) .
Välj Lägg till lägg till > rolltilldelning.
På fliken Roll väljer du Lagringsblobdatadeltagare. (Välj inteDeltagare eller lagringskontodeltagare.)
Från fliken Medlemmar väljer du Hanterad identitet och välj sedan Välj medlemmar.
För användartilldelade hanterade identiteter väljer du din prenumeration, väljer Användartilldelad hanterad identitet och väljer sedan din användartilldelade hanterade identitet.
För systemtilldelade hanterade identiteter väljer du din prenumeration, väljer Alla systemtilldelade hanterade identiteter och väljer sedan resursnamnet för din IoT Hub.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Mer information om rolltilldelningar finns i Tilldela Azure-roller med hjälp av Azure-portalen.
Om du behöver begränsa anslutningen till ditt lagringskonto via ett virtuellt nätverk måste du aktivera det betrodda microsoft-undantaget från första part för att ge din IoT-hubb åtkomst till lagringskontot. På resurssidan för lagringskontot går du till fliken Brandväggar och virtuella nätverk och aktiverar alternativet Tillåt åtkomst från valda nätverk . I listan Undantag markerar du kryssrutan Tillåt betrodda Microsoft usluge att komma åt det här lagringskontot. Klicka på knappen Spara. Läs mer om IoT Hub-stöd för virtuella nätverk.
Kommentar
Du måste slutföra stegen ovan för att tilldela den hanterade identiteten rätt åtkomst innan du sparar lagringskontot i IoT Hub för filuppladdning med hjälp av den hanterade identiteten. Vänta några minuter tills rolltilldelningen har spridits.
Gå till fliken Filuppladdning på IoT-hubbens resurssida.
På sidan som visas väljer du den container som du tänker använda i bloblagringen , konfigurerar inställningarna för filmeddelanden, SAS TTL, standard-TTL och Maximalt antal leveranser efter behov. Välj önskad autentiseringstyp och klicka på Spara. Om du får ett fel i det här steget ställer du tillfälligt in lagringskontot för att tillåta åtkomst från Alla nätverk och försöker sedan igen. Du kan konfigurera brandväggen på lagringskontot när filuppladdningskonfigurationen är klar.
Kommentar
I scenariot för filuppladdning måste både hubben och enheten ansluta till ditt lagringskonto. Stegen ovan gäller för att ansluta din IoT-hubb till ditt lagringskonto med önskad autentiseringstyp. Du måste fortfarande ansluta enheten till lagringen med hjälp av SAS-URI:n. Idag genereras SAS-URI:n med hjälp av niska veze. Vi lägger till stöd för att generera SAS-URI med hanterad identitet snart. Följ stegen i filuppladdningen.
Konfigurera massimport/export av enheter med hanterade identiteter
IoT Hub stöder funktioner för att importera/exportera enhetsinformation i bulk från eller till en lagringsblob som tillhandahålls av kunden. Den här funktionen kräver anslutning från IoT Hub till lagringskontot.
Navigera till ditt lagringskonto på Azure-portalen.
Välj Åtkomstkontroll (IAM) .
Välj Lägg till lägg till > rolltilldelning.
På fliken Roll väljer du Lagringsblobdatadeltagare. (Välj inteDeltagare eller lagringskontodeltagare.)
Från fliken Medlemmar väljer du Hanterad identitet och välj sedan Välj medlemmar.
För användartilldelade hanterade identiteter väljer du din prenumeration, väljer Användartilldelad hanterad identitet och väljer sedan din användartilldelade hanterade identitet.
För systemtilldelade hanterade identiteter väljer du din prenumeration, väljer Alla systemtilldelade hanterade identiteter och väljer sedan resursnamnet för din IoT Hub.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Mer information om rolltilldelningar finns i Tilldela Azure-roller med hjälp av Azure-portalen
Använda REST API eller SDK för import- och exportjobb
Nu kan du använda Azure IoT REST API:er för att skapa import- och exportjobb. Du måste ange följande egenskaper i begärandetexten:
- storageAuthenticationType: Ange värdet till identityBased.
- inputBlobContainerUri: Ange endast den här egenskapen i importjobbet.
- outputBlobContainerUri: Ange den här egenskapen för både import- och exportjobben.
- identitet: Ange värdet till den hanterade identitet som ska användas.
Azure IoT Hub SDK:er stöder även den här funktionen i tjänstklientens registerhanterare. Följande kodfragment visar hur du initierar ett importjobb eller exporterar jobb med hjälp av C# SDK.
C#-kodfragment
// Create an export job
JobProperties jobProperties = JobProperties.CreateForExportJob(
outputBlobContainerUri: blobContainerUri,
excludeKeysInExport: false,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
// Create an import job
JobProperties jobProperties = JobProperties.CreateForImportJob(
inputBlobContainerUri: blobContainerUri,
outputBlobContainerUri: blobContainerUri,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
Python-kodfragment
# see note below
iothub_job_manager = IoTHubJobManager("<IoT Hub connection information>")
# Create an import job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="import",
input_blob_container_uri="<input container URI>",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
# Create an export job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="export",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
exclude_keys_in_export=True,
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
Kommentar
- Om storageAuthenticationType är inställt på egenskapen identityBased och userAssignedIdentity inte är null använder jobben den angivna användartilldelade hanterade identiteten.
- Om IoT-hubben inte har konfigurerats med den användartilldelade hanterade identiteten som anges i userAssignedIdentity misslyckas jobbet.
- Om storageAuthenticationType är inställt på identityBased är egenskapen userAssignedIdentity null, kommer jobben att använda systemtilldelad identitet.
- Om IoT-hubben inte har konfigurerats med den användartilldelade hanterade identiteten, misslyckas jobbet.
- Om storageAuthenticationType är inställt på identityBased och varken användartilldelade eller systemtilldelade hanterade identiteter har konfigurerats på hubben misslyckas jobbet.
SDK-exempel
Nästa steg
Använd länkarna nedan om du vill veta mer om IoT Hub-funktioner: