APIKey + APISecret的访问实现?

发布于 2022-09-04 00:07:15 字数 423 浏览 10 评论 0

我现在使用Python设计一个设备接入服务器,其对外提供API进行存取访问。我看了看许多类似的网站,是通过API Key+API Secret进行访问控制的。

我粗略地了解过Web的RBAC。但是基于API Key + API Secret的访问控制实现好像不是RBAC,而是ACL。即:

Resource + API Key + API Secret 匹配正确后,才可以访问Resource。这是否意味着需要一张表格存储所有的排列组合?

id, device, snr, privilidge, api_key, api_secret, limitation, tags...

如果一个设备可以提供给多个API使用者使用,比如一台设备可以被制造商,分销商,维修商,最终用户,租户使用。那么岂非一台设备的api_key需要以几何级数上升?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

女皇必胜 2022-09-11 00:07:15

1.apikey/apisecretkey这种模式确实是做的ACL,访问权限控制用的。
2.这种模式一般是把所有的请求参数排序后和apisecretkeyhash生成一个签名sign参数,服务器后台只需要按照规则做一次签名计算,然后和请求的签名做比较,如果相等验证通过,不相等就不通过。
3.一般来说每一个api用户都需要分配一对apikey/apisecretkey的,比如你有几百万的用户,那么需要几百万个密钥对的,这个数据量不算大的,用一个mysql表存下

哑剧 2022-09-11 00:07:15

你看到的网站是OAuth用的, 用来授权给第三方用户来获取本站用户信息.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文