Lindorm Time Series Database (TSDB) prend en charge le contrôle d'accès basé sur les comptes. Lorsque la gestion des comptes est activée, chaque requête HTTP API doit inclure des identifiants valides ; les requêtes dépourvues d'identifiants sont rejetées. TSDB prend en charge deux types de comptes, super comptes et comptes standard, auxquels sont attribués l'un des quatre niveaux d'autorisation suivants : lecture seule, écriture seule, lecture et écriture ou super.
Les autorisations et les mots de passe des comptes ne peuvent pas être modifiés après la création d'un compte. Définissez les types de comptes et les autorisations nécessaires avant de créer vos comptes.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance TSDB V1.0 exécutant la version 2.5.13 ou ultérieure du moteur
Un accès à la console TSDB
Gérer les comptes
Activer la gestion des comptes
Dans la console TSDB, accédez à la page Accounts et cliquez sur Activate User Management.
Vous devez activer la gestion des comptes avant de pouvoir créer ou supprimer des comptes.
Créer un compte
-
Dans la console TSDB, accédez à la page Accounts et cliquez sur Create.

-
Spécifiez le nom du compte et le mot de passe, puis choisissez le type de compte :
Super compte

Compte standard

Champ Règles Account name 1 à 10 caractères. Caractères autorisés : lettres, chiffres et traits de soulignement ( _). Doit commencer par une lettre et se terminer par une lettre ou un chiffre.Password 6 à 20 caractères. Caractères autorisés : lettres, chiffres, traits de soulignement ( _), symboles « @ » (@), dièses (#), et points (.). -
Vérifiez que le compte apparaît dans la liste de la page Accounts.

Supprimer un compte
Sur la page Accounts, repérez le compte concerné et cliquez sur Delete.

Désactiver la gestion des comptes
Dans la console TSDB, accédez à la page Accounts et cliquez sur Deactivate User Management.

Authentifier les requêtes API
Une fois la gestion des comptes activée, toutes les requêtes HTTP API adressées à votre instance TSDB doivent inclure des identifiants valides. La méthode de transmission des identifiants dépend du type de client utilisé.
Vérifier le fonctionnement d'un compte
Utilisez curl pour envoyer une requête de test. L'exemple suivant envoie une requête api/put, qui nécessite des autorisations d'écriture seule ou supérieures :
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"}}]'
Remplacez ${Account name} et ${Account password in the plaintext format} par vos identifiants de compte réels.
S'authentifier avec le SDK TSDB
Utilisez le SDK TSDB version 0.2.7 ou ultérieure pour accéder à une instance dont la gestion des comptes est activée.
Lors de la création d'un objet TSDBConfig, appelez la méthode basicAuth() en indiquant votre nom de compte et votre mot de passe en clair. Toutes les connexions utilisant cet objet TSDBConfig transmettent automatiquement les identifiants.
S'authentifier depuis des applications non Java
Pour les applications n'utilisant pas le SDK TSDB (comme Python ou Go), ajoutez un en-tête Authorization à chaque requête HTTP. TSDB utilise l'authentification de base définie par la norme RFC 2617. Les requêtes sans en-tête Authorization valide sont rejetées.
Le format de l'en-tête est le suivant :
Authorization: Basic {Base64-encoded authentication information}
La chaîne encodée en Base64 est dérivée de {Account name}:{Account password}, les champs étant séparés par deux-points (:).
Politiques d'autorisation pour les requêtes API courantes
Chaque niveau d'autorisation détermine quels endpoints API sont accessibles. Le tableau ci-dessous associe chaque endpoint aux niveaux d'autorisation pouvant l'appeler.
| Endpoint API | Aucun identifiant | 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 | × | × | × | × | ○ |