1

我正在开始使用 .NET MVC 创建一个新系统 - 这是一个规模相对较大的业务管理平台。有迹象表明,一旦平台发布并通过市场测试,我们将向公众开放平台。

我们将使用 ExtJs 作为前端,这导致我们以 JSON 格式实现大多数数据挖掘工作返回 - 这让我想我是否应该现在学习 OAuth 并尝试从一开始就嵌入 OAuth 概念?

基本上,我们要创建的平台最初将在内部使用小部件系统完全实现;我们的老板正在考虑向 Twitter 学习,只构建一个核心数据库,并将所有不同的功能分散到可以集成到平台中的其他模块中。为了确保这一点,我在一开始就提出了更安全的 Intranet 实现,无需太多身份验证;但是他们认为,如果我们能够在开始时将 OAuth 之类的良好实现引入平台,这将是一劳永逸的努力?(我们是 6 人团队,实际上我们对 OAuth 知之甚少!)

我对 OAuth 了解不多,所以如果值得在我们的系统开始时实施,我将不得不看一看,并在下周的会议上为 OAuth 投票。这可能会影响我们将如何实现整个 Web 服务的事情,所以在给我一些想法和建议之前,我可以问任何做过大规模 Web 服务/应用程序的人吗?

谢谢。

4

2 回答 2

1

如果您想使用 HTTP 连接,OAuth 1 就很好。如果您可以简单地为所有用户强制实施 HTTPS 连接,您可能希望使用 OAuth 2,它只不过是为每个请求发送的客户端和服务器之间的共享令牌,以及从用户通过 Web 界面。

如果您也必须接受纯 HTTP,OAuth 1 非常好。它可以防止重放攻击、数据包注入或修改,使用共享密钥而不是共享令牌等。但是,它比 OAuth 2 更难实现。

OAuth 2 主要是关于如何交换用户名/密码组合以获得访问令牌,而 OAuth 1 主要是关于如何通过未加密的连接向服务器发出半安全请求。如果您不需要任何这些,请不要使用 OAuth。在许多情况下,通过 HTTPS 的基本 HTTP 身份验证就可以了。

于 2012-11-11T15:52:54.847 回答
0

OAuth 是身份验证和授权的标准。您可以在许多地方阅读并学习;通常,该标准允许客户端在身份验证服务器中注册,然后每当该客户端尝试访问受保护的资源时,他都会被引导到身份验证服务器以获取令牌(首先他获取代码,然后将其与令牌交换)。但这只是一般情况,这里有很多细节和选项......

基本上,使用 oAuth 需要一个充分的理由。如果更简单的身份验证机制对您有好处 - 去吧。

于 2012-11-11T15:21:17.960 回答