Grafana: Les clĂ©s Grafana expirĂ©es existent toujours dans l'Ă©ther (ou peut-ĂȘtre dans la base de donnĂ©es)

CrĂ©Ă© le 23 sept. 2019  Â·  3Commentaires  Â·  Source: grafana/grafana

Je suis confus par le processus que Grafana utilise pour les jetons expirĂ©s. À partir de la documentation de l' API Grafana, le champ secondsToLive dans la demande de repos de crĂ©ation de clĂ© API vous permet de dĂ©finir une expiration pour les nouvelles clĂ©s.

curl 
  -X POST 
  -H "Content-Type: application/json" 
  -d '{
    "name":"testKey",
    "role":"Admin",
    "secondsToLive":60
  }' 
  http://removed:forsecurity<strong i="7">@localhost</strong>:3000/api/auth/keys

Cet exemple montre comment je mets en Ɠuvre. AprĂšs une minute, je m'attendrais Ă  ce que la clĂ© soit expirĂ©e, que la clĂ© soit supprimĂ©e de l'interface utilisateur et que la clĂ© puisse ĂȘtre crĂ©Ă©e Ă  nouveau.

Ce que je constate en fait, c'est que la clĂ© a expirĂ©, que la clĂ© est supprimĂ©e de l'interface utilisateur et qu'une autre clĂ© portant ce nom «testKey» ne peut plus ĂȘtre crĂ©Ă©e.

Est-ce un comportement normal avec la crĂ©ation de clĂ© API? Je pense que ce serait une rupture pour l'API publique. Est-ce peut-ĂȘtre quelque chose de spĂ©cifique Ă  l'implĂ©mentation Grafana des clĂ©s API?

Voici un exemple de réponse du serveur lorsqu'une demande est faite pour une clé qui a expiré et qui ne se trouve plus dans l'interface utilisateur.

{"message":"Failed to add API key"}

Si je supprime la clé (via l'API ou l'interface utilisateur) avant son expiration, je peux créer à nouveau la clé sans problÚme.

Lorsque j'essaye de visualiser les clés actuellement présentes dans le systÚme, je reçois une liste vide.

curl -X GET -H "Content-Type: application/json" http://removed:forsecurity<strong i="18">@localhost</strong>:3000/api/auth/keys
[]

Si je supprime la clé via l'API aprÚs l'expiration (je ne peux pas le faire via l'interface utilisateur car elle n'apparaßt plus là-haut), je suis en mesure de créer à nouveau la clé.

Si les clés existent toujours dans la base de données dans un état expiré, j'aimerais avoir la possibilité de les afficher dans l'interface utilisateur. Je voudrais également qu'ils soient signalés dans l'appel API pour répertorier les clés avec un champ pour le statut d'expiration.

Veuillez me faire savoir si vous avez besoin d'informations supplémentaires de ma part. J'espÚre que ce n'est pas un problÚme en double.

arebackenapi arebackenauth typbug

Commentaire le plus utile

les clĂ©s expirĂ©es ne doivent pas ĂȘtre prises en compte lors de la crĂ©ation de la clĂ© api

Je pense qu'ils devraient / doivent le faire. Le nom fait partie d'un index unique.

Deux solutions
1) Nettoyer automatiquement (supprimer de la base de données) les clés expirées
2) Affichez les clés expirées dans la liste et laissez l'administrateur de l'organisation les supprimer manuellement.

Tous les 3 commentaires

@ 5w3rv05 cela me semble ĂȘtre un bogue, mais il faut vĂ©rifier avec ceux qui l'implĂ©mentent si l'implĂ©mentation a Ă©tĂ© sĂ©lectionnĂ©e pour une raison particuliĂšre.

Je l'ai vĂ©rifiĂ©, c'est un bug: les clĂ©s expirĂ©es ne doivent pas ĂȘtre prises en compte lors de la crĂ©ation de la clĂ© api.
En outre, l'appel d'API pour répertorier les clés d'API doit éventuellement renvoyer également les clés expirées.

les clĂ©s expirĂ©es ne doivent pas ĂȘtre prises en compte lors de la crĂ©ation de la clĂ© api

Je pense qu'ils devraient / doivent le faire. Le nom fait partie d'un index unique.

Deux solutions
1) Nettoyer automatiquement (supprimer de la base de données) les clés expirées
2) Affichez les clés expirées dans la liste et laissez l'administrateur de l'organisation les supprimer manuellement.

Cette page vous a été utile?
0 / 5 - 0 notes