Partilhar via


Clientes MQTT

Neste artigo, você aprenderá sobre como configurar clientes MQTT e grupos de clientes.

Clientes

Os clientes podem ser dispositivos ou aplicativos, como dispositivos ou veículos que enviam/recebem mensagens MQTT.

Por exemplo, considere uma empresa de gestão de frotas com centenas de camiões e outros veículos de entrega de envios. Você pode melhorar seus recursos de roteamento, rastreamento, segurança do motorista e manutenção previsível enviando e recebendo mensagens MQTT de/para um serviço de nuvem.

Neste cenário, os veículos podem ser configurados como clientes que publicam/subscrevem vários tópicos, tais como informações meteorológicas, condições da estrada, geolocalização, desempenho do motor e outros aspetos de desgaste do veículo. E, ao configurar o veículo como cliente, um conjunto de atributos como tipo de veículo, ano, marca e modelo, capacidade máxima de carga, etc. também podem ser incluídos nos metadados do cliente.

Nota

  • O nome do cliente pode ter de 1 a 128 caracteres.
  • O nome do cliente pode incluir alfanumérico, hífen(-), dois pontos(:), ponto(.) e sublinhado(_), sem espaços. Ele diferencia maiúsculas de minúsculas e precisa ser exclusivo por namespace.

Principais termos dos metadados do cliente

Nome de Autenticação do Cliente: você pode fornecer um identificador exclusivo para o cliente sem restrições de nomenclatura do Azure Resource Manager. É um campo obrigatório e, se não for fornecido explicitamente, é padronizado para o Nome do Cliente.

Não há dois clientes que possam ter o mesmo nome de autenticação dentro de um Namespace. Ao autenticar um cliente, tratamos o nome de autenticação do cliente como não diferenciando maiúsculas de minúsculas.

Preservamos o caso original do nome de autenticação do cliente que você configura no cliente. Usamos o nome de autenticação do cliente original (diferencia maiúsculas de minúsculas) que foi fornecido quando o cliente foi criado, em enriquecimentos de roteamento, correspondência de espaço de tópico, etc.

Nota

  • O nome de autenticação do cliente pode ter de 1 a 128 caracteres, cadeias de caracteres UTf-8, sem restrições
  • O nome de autenticação do cliente diferencia maiúsculas de minúsculas e precisa ser exclusivo por namespace (maiúsculas e minúsculas é ignorado ao determinar a exclusividade)

Esquema de Validação de Autenticação de Certificado de Cliente: Para usar o certificado de CA para autenticação, você pode escolher uma das seguintes opções para especificar o local da identidade do cliente no certificado do cliente. Quando o cliente tenta se conectar ao serviço, o serviço localiza a identificação do cliente a partir desse campo de certificado e faz a correspondência com o nome de autenticação do cliente para autenticar o cliente.

Suportamos cinco campos de certificado:

  • O assunto corresponde ao nome da autenticação
  • Dns corresponde ao nome de autenticação
  • Uri corresponde ao nome da autenticação
  • IP corresponde ao nome de autenticação
  • Nome de autenticação de correspondências de e-mail

Use a opção "Correspondência de impressão digital" ao usar o certificado autoassinado para autenticar o cliente.

Nota

  • clientCertificateAuthentication é sempre necessário com um valor válido de validationScheme.
  • authenticationName não é necessário, mas após a primeira solicitação de criação, o valor authenticationName assume como padrão o nome ARM e, em seguida, não pode ser atualizado.
  • authenticationName não pode ser atualizado.
  • Se validationScheme for algo diferente de ThumbprintMatch, a lista allowedThumbprints não poderá ser fornecida.
  • A lista allowedThumbprints só pode ser fornecida e deve ser fornecida se validationScheme for ThumbprintMatch com pelo menos uma impressão digital.
  • allowedAs impressões digitais só podem conter no máximo 2 impressões digitais.
  • Os valores permitidos validationScheme são SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
  • Usando impressão digital com permitir a reutilização do mesmo certificado em vários clientes. Para outros tipos de validação, o nome da autenticação precisa estar no campo escolhido do certificado do cliente.

Atributos do cliente

Os atributos do cliente são um conjunto de pares chave-valor definidos pelo usuário ou tags que fornecem informações sobre o cliente.

Esses atributos de cliente podem ser usados para criar os grupos de clientes. Por exemplo, você pode agrupar todos os veículos do tipo semi-caminhões em um grupo e todos os veículos do tipo picapes em outro.

Esses atributos são usados nas consultas do grupo de clientes para filtrar um conjunto de clientes. Os atributos podem descrever as características físicas ou funcionais do cliente. O atributo típico pode ser "tipo" do cliente.

Eis um exemplo:

  • Tipo: Os valores podem ser "sensor" ou "termostato" ou "veículo"

Aqui está um esquema de exemplo para o cliente com definição de atributo:

{  
    "id": "device123",  
    "attributes": {  
        "type": "home-sensors",
        "sensors": ["motion", "noise", "light"]
     }
}

Ao configurar os atributos do cliente, considere os tópicos que os clientes publicam (assinam). Pensar de trás para frente dos tópicos para os clientes ajuda a identificar os pontos em comum entre as funções do cliente mais facilmente e a definir os atributos do cliente para tornar o agrupamento de clientes mais simples.

Nota

  • As chaves de atributo do cliente devem ser exclusivas no cliente. As teclas não podem ser repetidas.
  • Os valores de atributos do cliente podem ser de string, integer ou array of strings tipos.
  • O tamanho total dos atributos do cliente para um cliente deve ser sempre inferior a 4KB.
  • O nome do atributo do cliente (chave) só pode conter caracteres alfanuméricos e sublinhado(_).

Contratos de exemplo

Exemplo de autenticação de cliente baseada em cadeia de certificados

{
    "properties": {
        "authenticationName": "127.0.0.1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "IpMatchesAuthenticationName"
        },
        "attributes": {
            "room": "345",
            "floor": 3,
            "bldg": "17"
        },
        "description": "Description of the client"
    }
}

Exemplo de autenticação de cliente baseada em impressão digital de certificado autoassinado

{
    "properties": {
        "authenticationName": "abcd@domain.com-1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "ThumbprintMatch",
            "allowedThumbprints": ["primary", "secondary"]
        },
        "attributes": {
            "room": "345",
            "floor": "3",
            "bldg": 17
        },
        "description": "Description of the client"
    }
}

Configuração do portal do Azure

Use as seguintes etapas para criar um cliente:

  1. Vá para seu namespace no portal do Azure

  2. Em Clientes, selecione + Cliente.

    Captura de ecrã a mostrar a adição de um cliente.

  3. Escolha o esquema de validação de autenticação de certificado de cliente. Para obter mais informações sobre a configuração de autenticação de cliente, consulte o artigo de autenticação de cliente.

  • Adicione atributos de cliente.

    Captura de tela da configuração do cliente.

  1. Selecione Criar

Configuração da CLI do Azure

Use os seguintes comandos para criar/mostrar/excluir um cliente

Criar cliente

az eventgrid namespace client create -g myRG --namespace-name myNS -n myClient

Obter cliente

az eventgrid namespace client show -g myRG --namespace-name myNS -n myClient

Excluir cliente

az eventgrid namespace client delete -g myRG --namespace-name myNS -n myClient

Próximos passos