授权接口给其他公司该如何设计?

2020-05-18 10:39:11 +08:00
 ileeoyo

现在要开放一部分数据给合作伙伴公司使用? 打算提供 rest 接口给他们访问,该如何设计授权呢?

5558 次点击
所在节点    Java
43 条回复
zoharSoul
2020-05-18 10:42:12 +08:00
懒得想就走标准的 oauth2 呗
tabris17
2020-05-18 10:44:10 +08:00
最简单的方式就是 nonce+签名
ISSSSSSS
2020-05-18 10:45:36 +08:00
ZFB 的接入流程就比较标准。可以参考下。主要是公私钥的生成,数据加验签。
linauror
2020-05-18 10:47:08 +08:00
如果不是做成标准化,那就直接约定一个密钥和签名方式就可以了
ileeoyo
2020-05-18 10:48:30 +08:00
@zoharSoul 我看不少使用 oauth2 的,打算看看阮一峰的博客研究一下
ileeoyo
2020-05-18 10:49:14 +08:00
@linauror 还是打算标准一点,得考虑一下固定密钥泄露的情况
ileeoyo
2020-05-18 10:49:39 +08:00
@tabris17 nonce 指的是?
ileeoyo
2020-05-18 10:49:58 +08:00
@ISSSSSSS 感谢意见,可以看一下
murmur
2020-05-18 10:51:13 +08:00
就 key 签名就可以,要求加入一个随机数
rioshikelong121
2020-05-18 10:51:44 +08:00
mark 有类似需求.
问下 oauth2 的 Client Credentials 的 grant type 可以做么?
HansLee
2020-05-18 10:51:46 +08:00
如果是一个 server2server 的接口更推荐 OpenId
ileeoyo
2020-05-18 11:01:46 +08:00
@rioshikelong121 @zoharSoul
刚看了阮一峰大佬的文文章,感觉 client credentials 还挺符合我的业务场景。我当前业务没有前端,授权针对的是某个公司平台后台,而不是针对某个用户。
其他 3 中 oauth2 授权有:客户端和资源所有者的概念,需要资源所有者授权给某个第三方客户端。而我的场景没有资源所有者的概念,是第三方客户端直接获取授权得到数据
ileeoyo
2020-05-18 11:02:57 +08:00
@HansLee 是 server2server,openid 指的是?
dilu
2020-05-18 11:17:36 +08:00
如果不打算做成标准化,IP 白名单+简单的 token 验签即可


标准化可以参考 oauth
tabris17
2020-05-18 11:17:46 +08:00
@ileeoyo nonce 是参与签名计算的一次性的随机数。实际操作中,可以用 timestamp 来代替,不过调用者和被调用者之间需要校时,两者时间误差不能太大
ileeoyo
2020-05-18 11:22:01 +08:00
@dilu 如果不需要很多时间,还是标准一点
ileeoyo
2020-05-18 11:23:12 +08:00
@tabris17 能再详细点提示下吗
chairuosen
2020-05-18 11:25:25 +08:00
不要用 ip 白名单,第三方一加机器就得找你开白名单
Guozi1989
2020-05-18 11:28:32 +08:00
简单点就 token+签名的方式吧
luozic
2020-05-18 11:53:46 +08:00
不要直接调,最好走一个网关或者代理,做一些限流 /监控 /白 or 黑名单控制。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/672776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX