Compartilhar via


Autenticação de cliente MQTT usando certificados

O corretor MQTT da Azure Event Grid suporta a autenticação de clientes utilizando certificados X.509. O certificado X.509 fornece as credenciais para associar um cliente específico ao locatário. Nesse modelo, a autenticação costuma ocorrer uma vez durante o estabelecimento da sessão. Em seguida, todas as operações futuras que usam a mesma sessão são consideradas provenientes dessa identidade.

Os modos de autenticação suportados são:

  • Certificados emitidos por uma AC (Autoridade de Certificação)
  • Certificado de cliente autoassinado – impressão digital
  • Token do Microsoft Entra ID

Esse artigo se concentra em certificados. Para saber mais sobre a autenticação usando tokens de ID Microsoft Entra, veja autenticar cliente usando token de ID Microsoft Entra.

Certificados assinados pela Autoridade de Certificação (CA)

Nesse método, um certificado X.509 raiz ou intermediário é registrado no serviço. Essencialmente, o certificado raiz ou intermediário usado para assinar o certificado do cliente precisa ser registrado primeiro no serviço.

Importante

  • Certifique-se de fazer upload do certificado raiz ou intermediário usado para assinar o certificado do cliente. Não é necessário carregar toda a cadeia de certificados.
  • Por exemplo, se você tiver uma cadeia de certificados raiz, intermediários e folha, carregue o certificado intermediário que assinou os certificados folha/do cliente.

Captura de tela que mostra a página Certificados de Autoridade de Certificação com os certificados raiz e intermediários usados para assinar os certificados do cliente.

Ao registrar os clientes, você precisa identificar o campo de certificado usado para manter o nome de autenticação do cliente. O serviço faz a correspondência do nome de autenticação do certificado com o nome de autenticação do cliente nos metadados do cliente para validá-lo. O serviço também valida o certificado do cliente, verificando se ele está assinado pelo certificado raiz ou intermediário registrado anteriormente.

Captura de tela que mostra os metadados do cliente com os cinco esquemas de validação baseadas em cadeia de certificados.

Certificado de cliente autoassinado – impressão digital

Nesse método de autenticação, o registro de clientes armazena a impressão digital exata do certificado que o cliente usará para se autenticar. Quando o cliente tenta se conectar ao serviço, o serviço valida o cliente comparando a impressão digital apresentada no certificado do cliente com a impressão digital armazenada nos metadados do cliente.

Captura de tela que mostra os metadados do cliente com um esquema de autenticação de impressão digital.

Observação

  • Recomendamos que você inclua o nome de autenticação do cliente no campo de nome de usuário do pacote de conexão do cliente. Usando esse nome de autenticação com o certificado do cliente, o serviço poderá autenticar o cliente.
  • Se você não fornecer o nome de autenticação no campo de nome de usuário, precisará configurar os campos de origem alternativa para o nome de autenticação do cliente no escopo do namespace. O serviço procura o nome de autenticação do cliente no campo correspondente do certificado do cliente para autenticar a conexão do cliente.

Na página de configuração no escopo do namespace, você pode habilitar origens alternativas de nomes de autenticação do cliente e, em seguida, selecionar os campos de certificado do cliente que têm o nome de autenticação do cliente.

Captura de tela que mostra a página Configuração de namespace com as configurações de origem alternativa de nome de autenticação do cliente.

A ordem de seleção dos campos de certificado do cliente na página de configuração do namespace é importante. O serviço procura o nome de autenticação do cliente nos campos de certificado do cliente na mesma ordem.

Por exemplo, se você selecionar a opção DNS de Certificado primeiro e, em seguida, a opção Nome da Entidade, ao autenticar a conexão do cliente,

  • o serviço verificará primeiro se o nome de autenticação do cliente está presente no campo DNS de nome alternativo da entidade do certificado do cliente
  • se o campo DNS estiver vazio, o serviço verificará o campo Nome da Entidade do certificado do cliente
  • se o nome de autenticação do cliente não estiver presente em nenhum desses dois campos, a conexão do cliente será negada

Nos dois modos de autenticação do cliente, esperamos que o nome de autenticação do cliente seja fornecido no campo de nome de usuário do pacote de conexão ou em um dos campos de certificado do cliente.

Campos de certificado do cliente com suporte para a origem alternativa do nome de autenticação do cliente

Use um dos campos a seguir para fornecer o nome de autenticação do cliente no certificado do cliente.

Opção de origem do nome de autenticação Campo Certificado Descrição
Nome da Entidade do Certificado tls_client_auth_subject_dn O nome distinto da entidade do certificado.
DNS de Certificado tls_client_auth_san_dns A entrada dNSName SAN no certificado.
URI do Certificado tls_client_auth_san_uri A entrada uniformResourceIdentifier SAN no certificado.
IP do Certificado tls_client_auth_san_ip O endereço IPv4 ou IPv6 presente na entrada SAN iPAddress do certificado.
Email do Certificado tls_client_auth_san_email A entrada rfc822Name SAN no certificado.

Próximas etapas