Grafana: 过期的Grafana密钥仍然存在于以太币(或数据库)中

创建于 2019-09-23  ·  3评论  ·  资料来源: grafana/grafana

我对Grafana用于过期令牌的过程感到困惑。 从Grafana API文档中,API密钥创建其余请求中的secondsToLive字段允许您设置新密钥的到期时间。

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

这个例子展示了我是如何实现的。 一分钟后,我希望密钥会过期,将密钥从UI中删除,然后可以再次创建该密钥。

我实际上看到的是该密钥已过期,该密钥已从UI中删除,并且不再可以创建名称为“ testKey”的另一个密钥。

api密钥创建是否属于这种正常行为? 我认为这将对面向公众的API造成破坏。 它可能是特定于Grafana API密钥实现的东西吗?

这是当请求已过期且不再存在于UI中的密钥时服务器响应的示例。

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

如果我在密钥过期之前(通过API或UI)删除了密钥,则可以再次创建密钥而不会出现问题。

当我尝试查看系统中当前存在的密钥时,我收到一个空列表。

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

如果我在过期后通过API删除了密钥(由于不再显示在UI上,所以无法通过UI进行删除),则可以再次创建密钥。

如果密钥仍然以过期状态存在于数据库中,我希望可以选择在UI中查看它们。 我还希望在API调用中报告它们,以列出带有过期状态字段的键。

如果您需要我提供任何其他信息,请告诉我。 希望这不是重复的问题。

arebackenapi arebackenauth typbug

最有用的评论

api密钥创建期间不应考虑已过期的密钥

我认为他们应该/需要。 该名称是唯一索引的一部分。

两种解决方案
1)自动清理(从数据库中删除)过期的密钥
2)在列表中显示过期的密钥,并让组织管理员手动删除它们。

所有3条评论

@ 5w3rv05对我来说听起来像是个错误,但是如果由于某些特殊原因选择了实现,则需要与实现它的人员进行验证。

我已经验证了它,这是一个错误:api密钥创建期间不应考虑过期的密钥。
同样,用于列出api密钥的API调用也应该有选择地返回过期的api密钥。

api密钥创建期间不应考虑已过期的密钥

我认为他们应该/需要。 该名称是唯一索引的一部分。

两种解决方案
1)自动清理(从数据库中删除)过期的密钥
2)在列表中显示过期的密钥,并让组织管理员手动删除它们。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Azef1 picture Azef1  ·  3评论

ricardclau picture ricardclau  ·  3评论

victorhooi picture victorhooi  ·  3评论

jackmeagher picture jackmeagher  ·  3评论

yuvaraj951 picture yuvaraj951  ·  3评论