O Lindorm Time Series Database (TSDB) oferece suporte a controle de acesso baseado em contas. Com o gerenciamento de contas ativado, toda requisição à API HTTP deve incluir credenciais válidas; caso contrário, será rejeitada. O TSDB suporta dois tipos de conta: contas super e contas padrão, cada uma com um dos quatro níveis de permissão: somente leitura, somente escrita, leitura e escrita ou super.
Não é possível alterar permissões ou senhas após a criação da conta. Planeje os tipos e as permissões das contas antes de criá-las.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do TSDB V1.0 com versão de mecanismo 2.5.13 ou posterior
Acesso ao console do TSDB
Gerencie contas
Ativar o gerenciamento de contas
Na página Accounts do console do TSDB, clique em Activate User Management.
Ative o gerenciamento de contas para criar ou excluir contas.
Crie uma conta
-
Na página Accounts do console do TSDB, clique em Create.

-
Especifique o nome e a senha da conta e escolha o tipo:
Conta super

Conta padrão

Campo
Regras
Account name
1 a 10 caracteres. Permitido: letras, dígitos e sublinhados (
_). Deve começar com uma letra e terminar com uma letra ou dígito.Password
6 a 20 caracteres. Permitido: letras, dígitos, sublinhados (
_), arrobas (@), cerquilhas (#) e pontos (.). -
Verifique se a conta aparece na lista da página Accounts.

Exclua uma conta
Na página Accounts, localize a conta e clique em Delete.

Desativar o gerenciamento de contas
Na página Accounts do console do TSDB, clique em Deactivate User Management.

Autenticar requisições de api
Após ativar o gerenciamento de contas, todas as requisições à API HTTP enviadas à sua instância do TSDB devem incluir credenciais válidas. A forma de passar as credenciais depende do tipo de cliente.
Verifique se uma conta funciona
Use curl para enviar uma requisição de teste. O exemplo abaixo envia uma requisição api/put, que exige permissões de somente escrita ou superiores:
curl -X POST \
-u ${Account name}:${Account password in the plaintext format} \
http://ts-xxxxxxx.hitsdb.tsdb.aliyuncs.com:8242/api?summary \
-d '[{"metric":"sys.cpu.nice","timestamp":1346846400,"value":18,"tags":{"host":"web01","dc":"lga"}}]'
Substitua ${Account name} e ${Account password in the plaintext format} pelas credenciais reais da sua conta.
Autenticar com o SDK do TSDB
Use o SDK do TSDB V0.2.7 ou posterior para acessar uma instância com o gerenciamento de contas ativado.
Ao criar um objeto TSDBConfig, chame o método basicAuth() informando o nome da conta e a senha em texto simples. Todas as conexões que usarem esse objeto TSDBConfig transmitirão as credenciais automaticamente.
Autenticar a partir de aplicações não Java
Para aplicações que não usam o SDK do TSDB (como Python ou Go), adicione um cabeçalho Authorization a cada requisição HTTP. O TSDB usa autenticação básica conforme a RFC 2617. Requisições sem um cabeçalho Authorization válido são rejeitadas.
O formato do cabeçalho é:
Authorization: Basic {Base64-encoded authentication information}
A string codificada em Base64 é gerada a partir de {Account name}:{Account password}, com os campos separados por dois pontos (:).
Políticas de permissão para requisições comuns de api
Cada nível de permissão determina quais endpoints de api estão acessíveis. A tabela abaixo associa cada endpoint aos níveis de permissão que podem invocá-lo.
|
Endpoint de api |
Sem credencial |
WriteOnly |
ReadOnly |
ReadWrite |
Super |
|
/api/put |
× |
○ |
× |
○ |
○ |
|
/api/query |
× |
× |
○ |
○ |
○ |
|
/api/query/last |
× |
× |
○ |
○ |
○ |
|
/api/mput |
× |
○ |
× |
○ |
○ |
|
/api/mquery |
× |
× |
○ |
○ |
○ |
|
/api/query/mlast |
× |
× |
○ |
○ |
○ |
|
/api/prom_write |
× |
○ |
× |
○ |
○ |
|
/api/prom_read |
× |
× |
○ |
○ |
○ |
|
/api/suggest |
× |
× |
○ |
○ |
○ |
|
/api/dump_meta |
× |
× |
○ |
○ |
○ |
|
/api/search/lookup |
× |
× |
○ |
○ |
○ |
|
/api/ttl |
× |
× |
× |
× |
○ |
|
/api/delete_meta |
× |
○ |
× |
○ |
○ |
|
/api/delete_data |
× |
○ |
× |
○ |
○ |
|
/api/truncate |
× |
× |
× |
× |
○ |