背景:
公司有个企业级应用(PC客户端),企业间数据隔离。
公司要做对外接口。
负责的研发人员之前主要做对内接口,小公司也没啥权限要求,对企业授权的场景不了解。目前参考网上资料,暂定的是Oauth2.0中authorization code认证方式。
根据各大平台和网上对Oauth2.0的描述,企业应用需要①引导用户进入我方授权页→②确认授权→③获取code 后才能调用接口。
-
但我们面对企业客户。理论上,从企业层级授权即可。
用户,即企业的员工,使用企业内部系统调用我方数据时,是不需要、也没有权利过问是否授权的。
问题:
我看淘宝京东,面对卖家自研应用也是需要引导至授权页进行人工授权操作的。这是为什么呢?万一员工不授权怎么办?
部分开放平台,不需要授权界面,给出一个永久code,这样做是否合理?
==================================
不是研发人员,很多技术语言描述不准确的地方,烦请指正……
首先针对第二点,永久的code是重大安全漏洞,一旦泄露,不堪设想。想都不要想。
第一点,卖家自研应用,想利用淘宝,京东的用户信息,当然得用户自己授权。这些自研应用虽然在上线前得到了淘宝,京东的审核,但审核只是很初步,要求也不苛刻。淘宝和京东自然对他们的可信度存在疑问,因此采用OAuth2 Code的验证方式,需要用户显式授权。
如果你认为你的企业客户的服务器足够可信,想要减少不必要的用户授权操作,那么OAuth2 Code方式不适合,你可以使用OAuth2安全性最低的Client Credentials Grant方式。
OAuth2有4种标准验证方式,适应不同的安全性和环境的要求。你应该先了解这4种方式的使用场景,结合自己的需求选择一种。