autenticação JWT do Microsoft Entra e autorização do RBAC do Azure para publicar ou assinar mensagens MQTT
Você pode autenticar clientes MQTT com o JWT do Microsoft Entra para se conectar ao namespace da Grade de Eventos. Você pode utilizar o controle de acesso baseado em funções do Azure (RBAC do Azure) para habilitar clientes MQTT, com a identidade do Microsoft Entra, para publicar ou assinar o acesso a espaços de tópicos específicos.
Importante
- Esse recurso só tem suporte ao usar a versão do protocolo MQTT v5
- A autenticação JWT tem suporte apenas para Identidades gerenciadas e Entidades de serviço
Pré-requisitos
- Você precisa de um namespace da Grade de Eventos com o MQTT habilitado. Saiba mais sobre criar o namespace da Grade de Eventos
Autenticação por meio do Microsoft Entra ID.
Você pode utilizar o pacote MQTT v5 CONNECT para fornecer o token JWT do Microsoft Entra para autenticar seu cliente e pode utilizar o pacote MQTT v5 AUTH para atualizar o token.
No pacote CONEXAO, você pode fornecer os valores exigidos nos seguintes campos:
Campo | Valor |
---|---|
Método de autenticação | OAUTH2-JWT |
Dados de Autenticação | Token JWT |
No pacote AUTH, você pode fornecer os valores exigidos nos seguintes campos:
Campo | Valor |
---|---|
Método de autenticação | OAUTH2-JWT |
Dados de Autenticação | Token JWT |
Código do motivo da autenticação | 25 |
O Código de Motivo de Autenticação com valor 25 significa reautenticação.
Observação
- Público-alvo: a declaração "aud" deve ser definida como "https://eventgrid.azure.net/".
Autorização para conceder permissões de acesso
Um cliente que utiliza a autenticação JWT baseada no Microsoft Entra ID precisa ser autorizado a se comunicar com o namespace da Grade de Eventos. Atribua as duas funções internas a seguir para fornecer permissões de publicação ou assinatura aos clientes com identidades do Microsoft Entra.
- Usar a funçãoPublicador de TopicSpaces do EventGrid para fornecer acesso ao editor de mensagens do MQTT
- Usar a função Assinante de TopicSpaces do EventGrid para fornecer acesso ao assinante da mensagem do MQTT
Use essas funções para fornecer permissões na assinatura, no grupo de recursos, no namespace da Grade de Eventos ou no escopo do topicspace da Grade de Eventos.
Atribuir a função de publicador à sua identidade do Microsoft Entra no escopo do topicspace
- No portal do Microsoft Azure, navegue até seu namespace da Grade de Eventos
- Navegue até o topicspace ao qual você deseja autorizar o acesso.
- Vá para a página Controle de Acesso (IAM) do topicspace
- Selecione a guia Atribuições de função para ver todas as atribuições de função nesse escopo.
- Selecione + Adicionar e Adicione a atribuição de função.
- Na guia Função, selecione a função "Event Grid TopicSpaces Publisher".
- Na guia Membros, para Atribuir acesso a, selecione a opção Usuário, grupo ou entidade de serviço para atribuir a função selecionada a uma ou mais entidades de serviço (aplicativos).
- Selecione + Selecionar membros.
- Localize e selecione as entidades de serviço.
- Selecione Avançar.
- Selecione Revisar + atribuir na guia Revisar + atribuir.
Observação
Siga etapas semelhantes para atribuir a função interna do Assinante de TopicSpaces do EventGrid no escopo do topicspace.
Próximas etapas
- Confira Publicar e assinar mensagens MQTT usando a Grade de Eventos
- Para saber mais sobre como funcionam as identidades gerenciadas, consulte Como as identidades gerenciadas para recursos do Azure funcionam com as máquinas virtuais do Azure - Microsoft Entra
- Para saber mais sobre como obter tokens do Microsoft ID Entra, consulte Como obter de tokens do Microsoft Entra
- Para saber mais sobre a biblioteca de clientes do Azure Identity, você pode consultar usando a biblioteca de clientes do Identidade do Azure
- Para saber mais sobre a implementação de uma interface para credenciais que podem fornecer um token, consulte Interface TokenCredential
- Para saber mais sobre como autenticar usando a Identidade do Azure, você pode consultar exemplos
- Se preferir usar funções personalizadas, você poderá examinar o processo para criar uma função personalizada