Grafana: Las claves de Grafana caducadas todavía existen en el éter (o tal vez en la base de datos)

Creado en 23 sept. 2019  ·  3Comentarios  ·  Fuente: grafana/grafana

Estoy confundido con el proceso que Grafana está usando para los tokens caducados. De la documentación de la API de Grafana, el campo secondsToLive en la solicitud de descanso de creación de claves de API le permite establecer una caducidad para nuevas claves.

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

Este ejemplo muestra cómo estoy implementando. Después de un minuto, esperaría que la clave caducara, que la clave se eliminara de la interfaz de usuario y que la clave pudiera volver a crearse.

Lo que en realidad estoy viendo es que la clave caducó, la clave se eliminó de la interfaz de usuario y ya no se puede crear otra clave con ese nombre "clave de prueba".

¿Es este comportamiento normal con la creación de claves api? Creo que esto se rompería para la API de cara al público. ¿Es quizás algo específico de la implementación de claves API de Grafana?

A continuación, se muestra un ejemplo de la respuesta del servidor cuando se realiza una solicitud de una clave que ha expirado y ya no está en la interfaz de usuario.

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

Si elimino la clave (a través de la API o la interfaz de usuario) antes de su vencimiento, puedo crear la clave nuevamente sin problemas.

Cuando intento ver las claves actualmente presentes en el sistema, recibo una lista vacía.

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

Si elimino la clave a través de la API después de la expiración (no puedo hacerlo a través de la interfaz de usuario porque ya no aparece allí), puedo crear la clave nuevamente.

Si las claves todavía existen en la base de datos en un estado caducado, me gustaría tener la opción de verlas en la interfaz de usuario. También me gustaría que se informen en la llamada a la API para enumerar las claves con un campo para el estado de vencimiento.

Por favor, avíseme si necesita información adicional de mi parte. Con suerte, este no es un problema duplicado.

arebackenapi arebackenauth typbug

Comentario más útil

las claves caducadas no deben tenerse en cuenta durante la creación de la clave api

Creo que deberían / ​​necesitan hacerlo. El nombre es parte de un índice único.

Dos soluciones
1) Limpiar automáticamente (eliminar de la base de datos) las claves caducadas
2) Muestre las claves caducadas en la lista y deje que el administrador de la organización las elimine manualmente.

Todos 3 comentarios

@ 5w3rv05 esto me suena como un error, pero necesito verificar con los que lo implementan si la implementación fue seleccionada debido a alguna razón especial.

Lo he verificado, es un error: las claves caducadas no deben tenerse en cuenta durante la creación de la clave api.
Además, la llamada a la API para enumerar las claves de la API debería devolver opcionalmente también las caducadas.

las claves caducadas no deben tenerse en cuenta durante la creación de la clave api

Creo que deberían / ​​necesitan hacerlo. El nombre es parte de un índice único.

Dos soluciones
1) Limpiar automáticamente (eliminar de la base de datos) las claves caducadas
2) Muestre las claves caducadas en la lista y deje que el administrador de la organización las elimine manualmente.

¿Fue útil esta página
0 / 5 - 0 calificaciones