Kontrollera åtkomsten till Azure IoT Hub Device Provisioning Service (DPS) med hjälp av Microsoft Entra ID (förhandsversion)
Du kan använda Microsoft Entra-ID för att autentisera begäranden till API:er för Azure IoT Hub Device Provisioning Service (DPS), till exempel skapa enhetsidentitet och anropa direktmetod. Du kan också använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att auktorisera samma tjänst-API:er. Genom att använda dessa tekniker tillsammans kan du bevilja behörigheter för åtkomst till API:er för Azure IoT Hub Device Provisioning Service (DPS) till ett Microsoft Entra-säkerhetsobjekt. Det här säkerhetsobjektet kan vara en användare, en grupp eller ett huvudnamn för programtjänsten.
Att autentisera åtkomst med hjälp av Microsoft Entra-ID och kontrollera behörigheter med hjälp av Azure RBAC ger bättre säkerhet och användarvänlighet över säkerhetstoken. För att minimera potentiella säkerhetsproblem i säkerhetstoken rekommenderar vi att du använder Microsoft Entra-ID med din Azure IoT Hub Device Provisioning Service (DPS) när det är möjligt.
Kommentar
Autentisering med Microsoft Entra-ID stöds inte för ENHETS-API:er för Azure IoT Hub Device Provisioning Service (DPS) (t.ex. registrering av enhet eller statussökning för enhetsregistrering). Använd symmetriska nycklar, X.509 eller TPM för att autentisera enheter till Azure IoT Hub Device Provisioning Service (DPS).
Autentisering och auktorisering
När ett Microsoft Entra-säkerhetsobjekt begär åtkomst till ett API för Azure IoT Hub Device Provisioning Service (DPS) autentiseras huvudkontots identitet först. För autentisering måste begäran innehålla en OAuth 2.0-åtkomsttoken vid körning. Resursnamnet för att begära token är https://azure-devices-provisioning.net
. Om programmet körs i en Azure-resurs som en virtuell Azure-dator, Azure Functions-app eller Azure App Service-app kan det representeras som en hanterad identitet.
När Microsoft Entra-huvudkontot har autentiserats är nästa steg auktorisering. I det här steget använder Azure IoT Hub Device Provisioning Service (DPS) rolltilldelningstjänsten Microsoft Entra för att avgöra vilka behörigheter huvudnamnet har. Om huvudkontots behörigheter matchar den begärda resursen eller API:et godkänner Azure IoT Hub Device Provisioning Service (DPS) begäran. Det här steget kräver därför att en eller flera Azure-roller tilldelas till säkerhetsobjektet. Azure IoT Hub Device Provisioning Service (DPS) innehåller några inbyggda roller som har vanliga behörighetsgrupper.
Hantera åtkomst till Azure IoT Hub Device Provisioning Service (DPS) med hjälp av Rolltilldelning i Azure RBAC
Med Microsoft Entra ID och RBAC kräver Azure IoT Hub Device Provisioning Service (DPS) att huvudnamnet begär att API:et ska ha rätt behörighetsnivå för auktorisering. Ge huvudkontot behörighet genom att ge det en rolltilldelning.
- Om huvudnamnet är en användare, grupp eller programtjänsthuvudnamn följer du riktlinjerna i Tilldela Azure-roller med hjälp av Azure Portal.
- Om huvudkontot är en hanterad identitet följer du anvisningarna i Tilldela en hanterad identitet åtkomst till en resurs med hjälp av Azure Portal.
För att säkerställa minsta möjliga behörighet tilldelar du alltid lämplig roll till lägsta möjliga resursomfång, vilket förmodligen är DPS-omfånget (Azure IoT Hub Device Provisioning Service).
Azure IoT Hub Device Provisioning Service (DPS) tillhandahåller följande inbyggda Azure-roller för att auktorisera åtkomst till DPS-API:er med hjälp av Microsoft Entra ID och RBAC:
Roll | beskrivning |
---|---|
Datadeltagare för enhetsetableringstjänsten | Ger fullständig åtkomst till dataplansåtgärder för Device Provisioning Service. |
Dataläsare för enhetsetableringstjänst | Tillåter fullständig läsåtkomst till dataplansegenskaper för Device Provisioning Service. |
Du kan också definiera anpassade roller som ska användas med Azure IoT Hub Device Provisioning Service (DPS) genom att kombinera de behörigheter du behöver. Mer information finns i Skapa anpassade roller för rollbaserad åtkomstkontroll i Azure.
Resursomfång
Innan du tilldelar en Azure RBAC-roll till ett säkerhetsobjekt ska du bestämma vilken omfattning av åtkomst som säkerhetsobjektet ska ha. Det är alltid bäst att endast bevilja minsta möjliga omfång. Azure RBAC-roller som definierats i ett bredare omfång ärvs av resurserna under dem.
I den här listan beskrivs de nivåer där du kan begränsa åtkomsten till IoT Hub, med början med det smalaste omfånget:
- Azure IoT Hub Device Provisioning Service (DPS). I det här omfånget gäller en rolltilldelning för Azure IoT Hub Device Provisioning Service (DPS). Rolltilldelning i mindre omfång, till exempel registreringsgrupp eller enskild registrering, stöds inte.
- Resursgruppen. I det här omfånget gäller en rolltilldelning för alla IoT-hubbar i resursgruppen.
- Prenumerationen. I det här omfånget gäller en rolltilldelning för alla IoT-hubbar i alla resursgrupper i prenumerationen.
- En hanteringsgrupp. I det här omfånget gäller en rolltilldelning för alla IoT-hubbar i alla resursgrupper i alla prenumerationer i hanteringsgruppen.
Behörigheter för API:er för Azure IoT Hub Device Provisioning Service (DPS)
I följande tabell beskrivs de behörigheter som är tillgängliga för API-åtgärder för Azure IoT Hub Device Provisioning Service (DPS). Om du vill göra det möjligt för en klient att anropa en viss åtgärd kontrollerar du att klientens tilldelade RBAC-roll ger tillräcklig behörighet för åtgärden.
RBAC-åtgärd | beskrivning |
---|---|
Microsoft.Devices/provisioningServices/attestationmechanism/details/action |
Hämta information om attesteringsmekanismen |
Microsoft.Devices/provisioningServices/enrollmentGroups/read |
Läsa registreringsgrupper |
Microsoft.Devices/provisioningServices/enrollmentGroups/write |
Skriva registreringsgrupper |
Microsoft.Devices/provisioningServices/enrollmentGroups/delete |
Ta bort registreringsgrupper |
Microsoft.Devices/provisioningServices/enrollments/read |
Läsa registreringar |
Microsoft.Devices/provisioningServices/enrollments/write |
Skriva registreringar |
Microsoft.Devices/provisioningServices/enrollments/delete |
Ta bort registreringar |
Microsoft.Devices/provisioningServices/registrationStates/read |
Läs registreringstillstånd |
Microsoft.Devices/provisioningServices/registrationStates/delete |
Ta bort registreringstillstånd |
Azure IoT-tillägg för Azure CLI
De flesta kommandon mot Azure IoT Hub Device Provisioning Service (DPS) stöder Microsoft Entra-autentisering. Du kan styra vilken typ av autentisering som används för att köra kommandon med hjälp av parametern --auth-type
som accepterar key
eller login
värden. Värdet key
är standardvärdet.
När
--auth-type
harkey
värdet identifierar CLI automatiskt en lämplig princip när den interagerar med Azure IoT Hub Device Provisioning Service (DPS).När
--auth-type
har värdetlogin
används en åtkomsttoken från Azure CLI som loggats i huvudkontot för åtgärden.Följande kommandon stöder
--auth-type
för närvarande :az iot dps enrollment
az iot dps enrollment-group
az iot dps registration
Mer information finns på versionssidan för Azure IoT-tillägget för Azure CLI.
SDK:er och exempel
- Azure IoT SDK:er för Node.js Provisioning Service
- Förhandsversion av Azure IoT SDK för Java
- • Microsoft Azure IoT SDK:er för förhandsversionen av .NET
Microsoft Entra ID-åtkomst från Azure Portal
Kommentar
Microsoft Entra ID-åtkomst från Azure Portal är för närvarande inte tillgänglig under förhandsversionen.
Nästa steg
- Mer information om fördelarna med att använda Microsoft Entra-ID i ditt program finns i Integrera med Microsoft Entra-ID.
- Mer information om hur du begär åtkomsttoken från Microsoft Entra-ID för användare och tjänstens huvudnamn finns i Autentiseringsscenarier för Microsoft Entra-ID.