Меня смущает процесс, который 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, чтобы перечислить ключи с полем для статуса истечения срока действия.
Пожалуйста, дайте мне знать, если вам понадобится от меня дополнительная информация. Надеюсь, это не повторяющаяся проблема.
@ 5w3rv05 для меня это звучит как ошибка, но нужно
Я проверил это, это ошибка: просроченные ключи не должны учитываться при создании ключа api.
Кроме того, вызов API для перечисления ключей api необязательно должен возвращать также просроченные.
ключи с истекшим сроком действия не должны учитываться при создании ключа api
Я думаю, им следует / нужно. Имя является частью уникального индекса.
Два решения
1) Автоматическая очистка (удаление из БД) ключей с истекшим сроком действия
2) Показать ключи с истекшим сроком действия в списке и позволить администратору организации удалить их вручную.
Самый полезный комментарий
Я думаю, им следует / нужно. Имя является частью уникального индекса.
Два решения
1) Автоматическая очистка (удаление из БД) ключей с истекшим сроком действия
2) Показать ключи с истекшим сроком действия в списке и позволить администратору организации удалить их вручную.