Grafana: Chaves Grafana expiradas ainda existem no ether (ou talvez no banco de dados)

Criado em 23 set. 2019  ·  3Comentários  ·  Fonte: grafana/grafana

Estou confuso com o processo que Grafana está usando para tokens expirados. A partir da documentação da API Grafana, o campo secondsToLive na solicitação de resto de criação de chave API permite que você defina uma expiração para novas chaves.

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 exemplo mostra como estou implementando. Depois de um minuto, eu esperaria que a chave expirasse, a chave removida da IU e a chave pudesse ser criada novamente.

O que estou realmente vendo é que a chave expirou, a chave foi removida da IU e outra chave com esse nome "testKey" não pode mais ser criada.

Este é um comportamento normal com a criação de chave de API? Eu acho que isso seria uma falha para API voltada ao público. É talvez algo específico para a implementação Grafana de chaves API?

Aqui está um exemplo da resposta do servidor quando uma solicitação é feita para uma chave que expirou e não está mais na IU.

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

Se eu excluir a chave (por meio da API ou da IU) antes de sua expiração, posso criar a chave novamente sem problemas.

Quando tento visualizar as chaves atualmente presentes no sistema, recebo uma lista vazia.

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

Se eu excluir a chave por meio da API após a expiração (não posso fazer isso por meio da IU, pois ela não aparece mais lá), poderei criar a chave novamente.

Se as chaves ainda existirem no banco de dados em um estado expirado, gostaria da opção de visualizá-las na IU. Eu também gostaria que eles fossem relatados na chamada de API para listar as chaves com um campo para status de expiração.

Informe-nos se precisar de mais informações. Esperançosamente, este não é um problema duplicado.

arebackenapi arebackenauth typbug

Comentários muito úteis

as chaves expiradas não devem ser levadas em consideração durante a criação da chave de API

Eu acho que eles deveriam / precisam. O nome faz parte de um índice exclusivo.

Duas soluções
1) Limpar automaticamente (remover do banco de dados) as chaves expiradas
2) Mostre as chaves expiradas na lista e deixe o administrador da organização removê-las manualmente.

Todos 3 comentários

@ 5w3rv05 isso soa como um bug para mim, mas preciso verificar com os que estão implementando se a implementação foi selecionada por algum motivo especial.

Eu verifiquei, é um bug: as chaves expiradas não devem ser consideradas durante a criação da chave de API.
Além disso, a chamada de API para listar as chaves de API deve, opcionalmente, retornar também as expiradas.

as chaves expiradas não devem ser levadas em consideração durante a criação da chave de API

Eu acho que eles deveriam / precisam. O nome faz parte de um índice exclusivo.

Duas soluções
1) Limpar automaticamente (remover do banco de dados) as chaves expiradas
2) Mostre as chaves expiradas na lista e deixe o administrador da organização removê-las manualmente.

Esta página foi útil?
0 / 5 - 0 avaliações