ApsaraMQ for MQTT usa autenticação baseada em token para oferecer controle de acesso temporário e granular a um único cliente e recurso. O servidor de aplicativos solicita tokens ao broker MQTT e os distribui aos clientes gerenciados pelo sistema de contas local.
Termos
|
Termo |
Descrição |
|
Token (credencial temporária) |
Credencial temporária emitida pelo ApsaraMQ for MQTT que concede a um único cliente acesso a recursos específicos. |
|
Servidor de aplicativos |
Servidor responsável por gerenciar contas locais e solicitar ou gerenciar tokens para clientes MQTT. |
|
Broker do ApsaraMQ for MQTT |
Servidor do ApsaraMQ for MQTT que autentica permissões, processa solicitações de token dos servidores de aplicativos e envia e recebe mensagens. |
Processo de autenticação
A autenticação baseada em token exige mais configuração que a autenticação por assinatura. Implante o servidor de aplicativos conforme ilustrado na figura a seguir e garanta que o cliente MQTT interaja com ele para obter e renovar tokens durante a inicialização.
Figura 1. Processo de autenticação 
O processo de autenticação funciona da seguinte maneira:
O cliente MQTT inicia e se conecta ao servidor de aplicativos para autenticação.
O cliente solicita permissões para um tópico específico ao servidor de aplicativos.
O servidor de aplicativos verifica as permissões do cliente para o tópico. Se a verificação for bem-sucedida, ele solicita um token ao broker do ApsaraMQ for MQTT.
O broker do ApsaraMQ for MQTT valida a solicitação e retorna o token.
-
O servidor de aplicativos armazena o token em cache e o associa às permissões concedidas. O uso de cache oferece os seguintes benefícios:
Se o cliente se reconectar com as mesmas permissões, o servidor retorna o token em cache em vez de solicitar um novo.
Se o broker estiver temporariamente indisponível, o servidor retorna o token em cache para recuperação de desastres local.
O cliente inclui o token nos parâmetros de conexão e se conecta ao broker. Após a autenticação bem-sucedida, o cliente pode enviar e receber mensagens.
O cliente envia e recebe mensagens. Quando o broker detecta um token expirado, desconecta o cliente. Nesse caso, o cliente deve solicitar um novo token.
Requisitos do cliente
Obtenha o token e seu tempo de expiração do servidor de aplicativos para calcular quando renovar o token.
Forneça o token no campo Password sempre que estabelecer uma conexão.
Monitore o período de validade do token. Se o token expirar, o broker desconectará o cliente.
Configure o cliente para ouvir notificações de expiração de token do broker. Como a entrega não é garantida, utilize essas notificações apenas para solução de problemas.
Armazene o token persistentemente para evitar solicitar o mesmo token a cada reconexão. Se muitos clientes se reconectarem simultaneamente sem tokens em cache, o servidor de aplicativos poderá encerrar inesperadamente.
Para atualizar um token, reconecte-se com um novo token ou use o tópico definido pelo sistema para atualizá-lo dinamicamente. Se optar por atualizações dinâmicas, atualize também a configuração local para as próximas inicializações de conexão.
Requisitos do servidor de aplicativos
Autentique cada cliente MQTT para impedir solicitações de token com identidades falsificadas.
Mantenha o registro das associações entre tokens e clientes, permissões concedidas e períodos de validade para evitar solicitações duplicadas de token do mesmo cliente.
Retorne o token com suas permissões e tempo de expiração para que o cliente possa renovar o token antes da expiração.
Implemente recuperação de desastres local para garantir a continuidade dos negócios quando o broker estiver temporariamente indisponível.
Operações de API
As seguintes operações de API implementam a autenticação baseada em token:
-
Os servidores de aplicativos interagem com o broker do ApsaraMQ for MQTT via HTTPS para solicitar e revogar tokens.
Cada operação de API requer verificação de identidade com um par de AccessKey e assinatura de solicitação. As operações de solicitação, revogação e verificação de token estão descritas em Métodos relacionados ao servidor de aplicativos na autenticação por token.
Os clientes do ApsaraMQ for MQTT suportam atualizações dinâmicas de token, notificações de expiração de token e notificações de invalidade de token. Essas operações estão descritas em Métodos relacionados ao cliente na autenticação por token.