我需要关于如何最好地处理以下场景和实现它的最佳实践的建议。
我们公司希望彻底改造其旧的IT系统,并创建新的网站应用程序,可能还包括移动应用程序,供其员工和承包商进行交互。
所以我在考虑创建一个api,既可以创建网站应用程序,也可以创建移动应用程序。
我需要的建议与api的安全性/授权有关。我目前对于如何实现这一点的想法是,员工/承包商将通过公司的网站应用程序和应用程序接口进行交互,然后/mobile应用程序将与应用程序接口通信并设置适当的访问权限
WebsiteApp.company.com ->>> api.company.com/v1
mobileapp ->>> api.company.com/v1
第一个想法是在api端为每个用户设置一个用户名和密码,让网站应用程序和移动应用程序都可以使用它。然而,问题是,承包商和可能的一些员工不能完全信任,可以在没有公司许可的情况下将用户名和密码传递给第三方。因此,我的问题是,我应该考虑哪些其他安全/授权/身份验证策略来克服这种情况。在一个完美的世界中,每个用户都必须授权他/她想要从...访问api的每个设备/mobileapp/websiteapp。
OAuth 2.0能做到这一点吗?但不确定它是否能支持特定的用户/设备/网站场景?
考虑使用的技术有:
API接口
Node.js与(Express js?或者重新定义?),MongoDb
消费类应用
网站应用(Angular Js、Backbone等)
移动应用(PhoneGap、Jquery Mobile等)
非常感谢
乔纳森
发布于 2013-02-08 02:01:53
似乎您主要担心的是您不能信任您授予访问权限的人,如果是这样的话,您可能从一开始就不应该尝试授予他们访问权限。如果这些应用程序要用于任何机密信息或知识产权,而您担心其他人会看到承包商/员工是否泄露了他们的密码,那么您必须考虑承包商/员工只是拿走信息并将其泄露出去。
您还可以考虑跟踪访问帐户的位置( is )。也许当从新的位置访问帐户时,员工/承包商需要完成一些任务来验证帐户;这些任务可以是输入验证码(类似于双因素身份验证),也可以是呼叫帮助热线并授权该位置。
发布于 2013-04-04 22:32:22
这可能有点晚了,但因为我正在经历相同的过程(What is the correct flow when using oAuth with the Resource Owners Passwords Credentials Grant)
我们还没有弄清楚核心实现,您想要做的事情听起来与我们试图为我们的服务做的事情类似。
据我所知,这取决于应用程序,以及它们是否可信,以及您计划如何继续使用您的API。如果这些应用程序是可信的,您可以潜在地使用HTTP-Basic over SSL,这是一个可行的解决方案。
对于我们来说,我们将通过应用程序接口创建一套可信的官方应用程序(网络,移动等),然后将其打开,所以我们决定经历oAuth2的痛苦,对于我们的应用程序,我们将使用,其中您将用户的用户名和密码交换为令牌,客户端将使用该令牌与您的应用程序接口进行交互,并隐式定义信任。
当我们为第三方用户开放API时,这种模式将不起作用,我们将经历所有主要网站所做的过程,并从用户那里获得第三方应用程序可以对他们的数据做什么的明确许可。
https://stackoverflow.com/questions/14749306
复制相似问题