Autenticação JWT do Microsoft Entra e autorização do Azure RBAC para publicar ou assinar mensagens MQTT
Você pode autenticar clientes MQTT com o Microsoft Entra JWT para se conectar ao namespace Event Grid. Você pode usar o controle de acesso baseado em função do Azure (Azure RBAC) para permitir que clientes MQTT, com a identidade Microsoft Entra, publiquem ou assinem o acesso a espaços de tópicos específicos.
Importante
- Este recurso é suportado somente ao usar a versão do protocolo MQTT v5
- A autenticação JWT é suportada apenas para Identidades Gerenciadas e Entidades de Serviço
Pré-requisitos
- Você precisa de um namespace Event Grid com MQTT habilitado. Saiba mais sobre como criar namespace de Grade de Eventos
Autenticação usando o Microsoft Entra JWT
Você pode usar o pacote MQTT v5 CONNECT para fornecer o token Microsoft Entra JWT para autenticar seu cliente e pode usar o pacote MQTT v5 AUTH para atualizar o token.
No pacote CONNECT, você pode fornecer os valores necessários 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 necessários nos seguintes campos:
Campo | valor |
---|---|
Método de autenticação | OAUTH2-JWT |
Dados de autenticação | Token JWT |
Código de motivo de autenticação | 25 |
Autenticar código de motivo com o valor 25 significa reautenticação.
Nota
- Audiência: a reivindicação "aud" deve ser definida como "https://eventgrid.azure.net/".
Autorização para conceder permissões de acesso
Um cliente que usa a autenticação JWT baseada em ID do Microsoft Entra precisa ser autorizado a se comunicar com o namespace Event Grid. Você pode atribuir as duas funções internas a seguir para fornecer permissões de publicação ou assinatura a clientes com identidades do Microsoft Entra.
- Use a função Publicador EventGrid TopicSpaces para fornecer acesso ao editor de mensagens MQTT
- Use a função de assinante EventGrid TopicSpaces para fornecer acesso de assinante de mensagem MQTT
Você pode usar essas funções para fornecer permissões na assinatura, no grupo de recursos, no namespace da Grade de Eventos ou no escopo do espaço de tópicos da Grade de Eventos.
Atribuindo a função de editor à sua identidade do Microsoft Entra no escopo do topicspace
- No portal do Azure, navegue até o namespace da Grade de Eventos
- Navegue até o espaço de tópico ao qual você deseja autorizar o acesso.
- Vá para a página Controle de acesso (IAM) do topicspace
- Selecione o separador Atribuições de funções para ver as atribuições de funções neste âmbito.
- Selecione + Adicionar e Adicionar 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 Seguinte
- Selecione Rever + atribuir no separador Rever + atribuir.
Nota
Você pode seguir etapas semelhantes para atribuir a função interna de Assinante TopicSpaces do EventGrid no escopo do topicspace.
Próximos passos
- Consulte Publicar e assinar a mensagem MQTT usando a grade de eventos
- Para saber mais sobre como as Identidades Gerenciadas funcionam, consulte Como as identidades gerenciadas para recursos do Azure funcionam com máquinas virtuais do Azure - Microsoft Entra
- Para saber mais sobre como obter tokens do Microsoft Entra ID, consulte a obtenção de tokens do Microsoft Entra
- Para saber mais sobre a biblioteca de cliente do Azure Identity, consulte o uso da biblioteca de cliente do Azure Identity
- Para saber mais sobre como implementar uma interface para credenciais que podem fornecer um token, consulte TokenCredential Interface
- Para saber mais sobre como autenticar usando a Identidade do Azure, consulte exemplos
- Se preferir usar funções personalizadas, você pode revisar o processo para criar uma função personalizada