Grafana: Просроченные ключи Grafana все еще существуют в эфире (или, возможно, в базе данных)

Созданный на 23 сент. 2019  ·  3Комментарии  ·  Источник: grafana/grafana

Меня смущает процесс, который Grafana использует для токенов с истекшим сроком действия. Из документации Grafana API поле secondsToLive в запросе восстановления создания ключа API позволяет вам установить срок действия для новых ключей.

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

Этот пример показывает, как я реализую. По прошествии одной минуты я ожидал, что срок действия ключа истечет, ключ будет удален из пользовательского интерфейса, а затем его можно будет создать снова.

На самом деле я вижу, что срок действия ключа истек, ключ удален из пользовательского интерфейса, а другой ключ с таким именем «testKey» больше не может быть создан.

Это нормальное поведение при создании ключа api? Я бы подумал, что это будет нарушением публичного API. Возможно, это что-то специфическое для реализации ключей API Grafana?

Вот пример ответа сервера на запрос ключа, срок действия которого истек и которого больше нет в пользовательском интерфейсе.

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

Если я удалю ключ (через API или пользовательский интерфейс) до истечения срока его действия, я могу без проблем создать ключ снова.

Когда я пытаюсь просмотреть ключи, которые в настоящее время присутствуют в системе, я получаю пустой список.

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

Если я удалю ключ через API по истечении срока действия (не могу сделать это через пользовательский интерфейс, поскольку он больше не отображается там), я могу создать ключ снова.

Если ключи все еще существуют в базе данных в состоянии с истекшим сроком действия, я хотел бы иметь возможность просматривать их в пользовательском интерфейсе. Я также хотел бы, чтобы о них сообщалось в вызове API, чтобы перечислить ключи с полем для статуса истечения срока действия.

Пожалуйста, дайте мне знать, если вам понадобится от меня дополнительная информация. Надеюсь, это не повторяющаяся проблема.

arebackenapi arebackenauth typbug

Самый полезный комментарий

ключи с истекшим сроком действия не должны учитываться при создании ключа api

Я думаю, им следует / нужно. Имя является частью уникального индекса.

Два решения
1) Автоматическая очистка (удаление из БД) ключей с истекшим сроком действия
2) Показать ключи с истекшим сроком действия в списке и позволить администратору организации удалить их вручную.

Все 3 Комментарий

@ 5w3rv05 для меня это звучит как ошибка, но нужно

Я проверил это, это ошибка: просроченные ключи не должны учитываться при создании ключа api.
Кроме того, вызов API для перечисления ключей api необязательно должен возвращать также просроченные.

ключи с истекшим сроком действия не должны учитываться при создании ключа api

Я думаю, им следует / нужно. Имя является частью уникального индекса.

Два решения
1) Автоматическая очистка (удаление из БД) ключей с истекшим сроком действия
2) Показать ключи с истекшим сроком действия в списке и позволить администратору организации удалить их вручную.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги