我正在开始使用.NET MVC创建一个新系统 - 这是一个相对大规模的业务管理平台。有迹象表明,一旦发布并通过市场测试,我们将向公众开放平台。
我们将使用ExtJs作为前端,这导致我们以JSON格式实现大多数数据挖掘工作返回 - 这让我想到我是否应该立即学习OAuth并尝试从头开始嵌入OAuth概念?
基本上我们想要创建的平台最初将在内部使用widget系统完全实现;我们的老板正在考虑从Twitter学习构建一个核心数据库,并将所有不同的功能分散到可以集成到平台中的其他模块中。为了确保在开始时我提出了内部网实现,这个实现更安全而不需要太多的身份验证;但他们认为,如果我们能够在开始时将OAuth这样的良好实施纳入平台,那将是一劳永逸的努力吗? (我们是6人团队,事实上我们都不太了解OAuth!)
我对OAuth了解不多,所以如果在我们的系统开始时实施它是值得的,我将不得不在下周看看并在我们的会议中对OAuth进行投票。这可能会影响我们如何实现整个Web服务的事情,所以我可以问一下谁做过大规模的Web服务/应用程序之前给我一些想法和建议吗?
感谢。
答案 0 :(得分:1)
如果您想使用HTTP连接,OAuth 1很不错。如果您可以简单地为所有用户强制实施HTTPS连接,则可能需要使用OAuth 2,它几乎不是为每个请求发送的客户端和服务器之间的共享令牌,另外还有一种预先定义的方式来获取用户通过网络界面。
如果你也必须接受普通的HTTP,那么OAuth 1真的很棒。它可以防止重放攻击,数据包注入或修改,使用共享密钥而不是共享令牌等。但是,它实现起来比OAuth 2更难。
OAuth 2主要是关于如何为访问令牌交换用户名/密码组合,而OAuth 1主要是关于如何通过未加密的连接向服务器发出半安全请求。如果您不需要其中任何一项,请不要使用OAuth。在许多情况下,通过HTTPS进行基本HTTP身份验证就可以了。
答案 1 :(得分:0)
OAuth是身份验证和授权的标准。你可以在很多地方阅读并学习;通常,标准允许客户端在身份验证服务器中注册,然后每当此客户端尝试访问受保护资源时,都会将其定向到auth-server以获取令牌(首先他获取代码,然后他用一个令牌交换它。但这只是一般情况,这里有大量的细节和选择......
基本上,需要一个充分的理由来使用oAuth 。如果一个更简单的身份验证机制对你有好处 - 去吧。