Controle o acesso ao Serviço de Aprovisionamento de Dispositivos (DPS) do Hub IoT do Azure com o Microsoft Entra ID (pré-visualização)

Você pode usar a ID do Microsoft Entra para autenticar solicitações para APIs do DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT do Azure, como criar identidade de dispositivo e invocar método direto. Você também pode usar o controle de acesso baseado em função do Azure (Azure RBAC) para autorizar essas mesmas APIs de serviço. Ao utilizar estas tecnologias em conjunto, pode conceder permissões de acesso às APIs do Serviço de Provisionamento de Dispositivos (DPS) do Hub IoT do Azure a um principal de segurança do Microsoft Entra. Essa entidade de segurança pode ser um usuário, grupo ou entidade de serviço de aplicativo.

Autenticar o acesso com o Microsoft Entra ID e controlar as permissões com o RBAC do Azure oferecem maior segurança e facilidade de utilização em relação aos tokens de segurança. Para minimizar possíveis problemas de segurança inerentes aos tokens de segurança, recomendamos que você use a ID do Microsoft Entra com seu DPS (Serviço de Provisionamento de Dispositivo) do Hub IoT do Azure sempre que possível.

Nota

A autenticação com o Microsoft Entra ID não é suportada para as APIs de dispositivo do Serviço de Aprovisionamento de Dispositivos (DPS) do Hub IoT do Azure (como registar dispositivo ou pesquisar o estado de registo do dispositivo). Use chaves simétricas, X.509 ou TPM para autenticar dispositivos no DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT do Azure.

Autenticação e autorização

Quando uma entidade de segurança do Microsoft Entra solicita acesso a uma API do Serviço de Provisionamento de Dispositivos (DPS) do Hub IoT do Azure, a identidade da entidade é primeiro autenticada. Para autenticação, a solicitação precisa conter um token de acesso OAuth 2.0 em tempo de execução. O nome do recurso para solicitar o token é https://azure-devices-provisioning.net. Se o aplicativo for executado em um recurso do Azure, como uma VM do Azure, aplicativo do Funções do Azure ou aplicativo do Serviço de Aplicativo do Azure, ele poderá ser representado como uma identidade gerenciada.

Depois de a identidade do Microsoft Entra ser autenticada, o passo seguinte é autorização. Nesta etapa, o Hub IoT do Azure Device Provisioning Service (DPS) utiliza o serviço de atribuição de funções do Microsoft Entra para determinar que permissões o principal tem. Se as permissões do principal corresponderem ao recurso ou à API solicitados, o DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT do Azure autoriza o pedido. Portanto, esta etapa requer que uma ou mais funções do Azure sejam atribuídas à entidade de segurança. O Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure fornece algumas funções internas que têm grupos comuns de permissões.

Gerenciar o acesso ao Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure usando a atribuição de função RBAC do Azure

Com o Microsoft Entra ID e o RBAC, o DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT do Azure exige que a entidade que solicita a API tenha o nível apropriado de permissão para autorização. Para dar permissão ao principal, atribua-lhe uma atribuição de função.

Para garantir o menor privilégio, atribua sempre a função apropriada no menor escopo de recurso possível, que provavelmente é o escopo do DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT do Azure.

O Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure fornece as seguintes funções internas do Azure para autorizar o acesso às APIs do DPS usando a ID do Microsoft Entra e o RBAC:

Função Descrição
Contribuidor de dados do serviço de provisionamento de dispositivos Permite acesso total às operações do plano de dados do Serviço de Provisionamento de Dispositivos.
Leitor de dados do serviço de provisionamento de dispositivos Permite acesso total de leitura às propriedades do plano de dados do Serviço de Provisionamento de Dispositivos.

Você também pode definir funções personalizadas para usar com o Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure combinando as permissões necessárias. Para obter mais informações, consulte Criar funções personalizadas para o controlo de acesso baseado em funções do Azure.

Chaves de escrita no plano de controlo e de política de acesso partilhado

A Microsoft.Devices/provisioningServices/write ação permite que um principal crie ou atualize qualquer propriedade do recurso DPS, incluindo a authorizationPolicies coleção. Como o contrato do Azure Resource Manager (ARM) para CreateOrUpdate aceita, em cada política, valores primaryKey e secondaryKey fornecidos pelo chamador, uma entidade principal que detenha write num recurso do DPS pode:

  • Defina a chave primária ou secundária de qualquer política de acesso partilhado (incluindo a política raiz) provisioningserviceowner para um valor que eles escolham, e depois autentique como essa política.
  • Renovar as chaves de qualquer política de acesso partilhado, o que invalida os clientes existentes.
  • Adicione uma nova política de acesso partilhado nomeada com um valor de chave escolhido.

Por esta razão, Microsoft.Devices/provisioningServices/write é funcionalmente equivalente à administração total das credenciais da política de acesso partilhada do recurso, independentemente de o principal também deter Microsoft.Devices/provisioningServices/listkeys/action ou Microsoft.Devices/provisioningServices/listkey/action.

Importante

Uma função personalizada que concede Microsoft.Devices/provisioningServices/write num recurso DPS sem conceder listkeys/actionnão isola a administração de credenciais da configuração do recurso. O principal continua a ter controlo total sobre o material de chave da política de acesso partilhado através da via de escrita. Não confie neste padrão para configurações de privilégio mínimo.

Se precisar de separar a configuração de recursos da administração de credenciais de políticas de acesso partilhadas, use um dos seguintes padrões:

  • Prefira a autenticação do Microsoft Entra ID para o plano de dados. Atribuir os papéis incorporados Contribuidor de Dados do Serviço de Provisionamento de Dispositivos ou Leitor de Dados do Serviço de Provisionamento de Dispositivos para a gestão de inscrições e desativar, sempre que possível, o acesso com assinatura de acesso partilhado no recurso.
  • Restringir write ao nível do recurso. Como write implica controlo de chaves, conceda-o apenas a entidades de confiança com credenciais de política de acesso partilhadas.
  • Auditar a atividade do plano de controlo. As alterações a authorizationPolicies efetuadas através do PUT do plano de controlo são registadas no Registo de Atividade do Azure no âmbito da operação Microsoft.Devices/provisioningServices/write. Analise estes eventos juntamente com os eventos listkeys/action durante a auditoria do acesso às credenciais.

As mesmas considerações aplicam-se ao Hub IoT do Azure. Para mais detalhes, consulte Controlar o acesso ao Hub IoT utilizando o Microsoft Entra ID.

Âmbito do recurso

Antes de atribuir uma função RBAC do Azure a uma entidade de segurança, determine o escopo de acesso que a entidade de segurança deve ter. É sempre melhor conceder apenas o âmbito mais restrito possível. As funções do Azure RBAC definidas num âmbito mais alargado são herdadas pelos recursos subordinados.

Esta lista descreve os níveis nos quais você pode definir o escopo de acesso ao Hub IoT, começando com o escopo mais estreito:

  • O Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure. Neste escopo, uma atribuição de função se aplica ao DPS (Serviço de Provisionamento de Dispositivo) do Hub IoT do Azure. Não há suporte para atribuição de função em escopos menores, como grupo de inscrição ou inscrição individual.
  • O grupo de recursos. Neste escopo, uma atribuição de função se aplica a todos os hubs IoT no grupo de recursos.
  • A assinatura. Neste escopo, uma atribuição de função se aplica a todos os hubs IoT em todos os grupos de recursos na assinatura.
  • Um grupo de gestão. Neste âmbito, uma atribuição de função aplica-se a todos os hubs IoT em todos os grupos de recursos de todas as subscrições do grupo de gestão.

Permissões para APIs do Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure

A tabela a seguir descreve as permissões disponíveis para operações de API do DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT do Azure. Para permitir que um cliente chame uma operação específica, certifique-se de que a função RBAC atribuída ao cliente ofereça permissões suficientes para a operação.

Ação do RBAC Descrição
Microsoft.Devices/provisioningServices/attestationmechanism/details/action Obter detalhes do mecanismo de atestação
Microsoft.Devices/provisioningServices/enrollmentGroups/read Ler grupos de inscrição
Microsoft.Devices/provisioningServices/enrollmentGroups/write Escrever grupos de inscrição
Microsoft.Devices/provisioningServices/enrollmentGroups/delete Excluir grupos de inscrição
Microsoft.Devices/provisioningServices/enrollments/read Ver inscrições
Microsoft.Devices/provisioningServices/enrollments/write Registar inscrições
Microsoft.Devices/provisioningServices/enrollments/delete Excluir inscrições
Microsoft.Devices/provisioningServices/registrationStates/read Ler estados de registo
Microsoft.Devices/provisioningServices/registrationStates/delete Excluir estados de registro

Extensão do Azure IoT para CLI do Azure

A maioria dos comandos para o Serviço de Aprovisionamento de Dispositivos (DPS) do Hub IoT do Azure suporta a autenticação do Microsoft Entra. Você pode controlar o tipo de autenticação usado para executar comandos usando o --auth-type parâmetro que aceita key ou login valores. O key valor é o padrão.

  • Quando --auth-type tem o key valor, a CLI descobre automaticamente uma política adequada quando interage com o DPS (Serviço de Provisionamento de Dispositivo) do Hub IoT do Azure.

  • Quando --auth-type tem o login valor, um token de acesso da CLI do Azure registrada na entidade de segurança é usado para a operação.

  • Atualmente, os seguintes comandos suportam --auth-type:

    • az iot dps enrollment
    • az iot dps enrollment-group
    • az iot dps registration

Para obter mais informações, consulte a página de lançamento da extensão do Azure IoT para a CLI do Azure.

SDKs e amostras

Acesso ao Microsoft Entra ID a partir do portal do Azure

Nota

O acesso ao Microsoft Entra ID a partir do portal do Azure não está atualmente disponível na pré-visualização.

Próximos passos