首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OAuth -每个消费平台的不同使用者密钥

OAuth -每个消费平台的不同使用者密钥
EN

Stack Overflow用户
提问于 2013-08-19 09:21:20
回答 2查看 226关注 0票数 2

我们开发了一个REST,它由两个应用程序使用:一个运行在安卓上,另一个运行在iOS上。API不是公开的--我们在内部构建了应用程序。

给每个不同的平台(例如:智能手机上的iOS、平板电脑上的iOS、智能手机上的安卓系统)提供一个不同的用户密钥是否有意义?

拥有多个键的一个优点是能够轻松地进行设备分段分析(然而,这可以以其他方式完成)。

这两种策略之一有什么优势吗?

优点和缺点是什么?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-22 21:47:36

在OAuth的上下文中,任何运行在终端用户设备(包括iOS和Android设备)上的应用程序都被称为“公共”客户端,因为秘密密钥与应用程序一起分发。

这与服务器端的web应用程序形成了鲜明的对比,在服务器端,密钥可以安全地保密。只有允许的开发人员和操作人员才能访问它。在应用程序被分发到设备的情况下,即使在混淆的情况下,也不可能保证这个秘密不会暴露给未经授权的用户(基本上是任何一个口袋里有你的应用程序的人),从而有效地将密钥公开。

因此,从安全的角度来看,为访问API的设备分配唯一的客户机ID和机密几乎没有什么意义。恶意开发人员可以很容易地使用公共凭证来伪装成一个“认可”应用程序。

正如您注意到的,您可以使用客户端ID来进行设备分段,但是也有其他方法可以这样做,例如User-Agent头,它不会传递错误的安全含义。

总之,向基于平台的应用程序颁发唯一的客户ID并没有真正的好处。但是,在授权访问API时,重要的是要考虑公共客户端如何考虑安全性问题。

票数 3
EN

Stack Overflow用户

发布于 2013-08-22 21:26:48

如果您让应用程序开发人员为每个平台使用几个OAuth用户密钥,那么开发人员就不会高兴了!开发人员将不得不以某种方式管理服务的这些密钥。如果应用程序开发人员需要重新发布密钥怎么办?如果他们在新平台上发布应用程序呢?这些开发人员需要做多少额外的工作来维护密钥?另外,考虑一些您不知道的平台:新的移动OSes、奇怪的设备、不寻常的用例。是否要限制和控制服务的所有变体?

您仍然可以这样做的原因之一是,您可以为每个平台分别出售API服务(而且可能以不同的价格出售)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18310374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档