我正在为我的公司重写一些非常过时的.NET 2.0 SOAP web服务。所以我用MVC3 RESTful重写了它们。这种方法将为我们的客户群(超过500个使用我们当前的SOAP服务的客户)简化我们的服务的使用,这些客户分布在多个平台和语言上。
我正在寻找一种更好的授权RESTful服务的方法,而不是以前的开发人员为我们的.NET 2.0 SOAP web服务使用的方法(他基本上只是让客户端传入一个GUID作为参数,并在后面的代码中匹配它)。
我已经研究过oAuth,我想使用它,然而,我的上级告诉我,对于连接到我们服务的“级别”客户端来说,这种方法太复杂了,他们想让我找到另一种更简单的方法来连接他们,但仍然有授权。我们的大多数客户都没有基本的编程知识(要么是我们帮助他们建立了连接,要么是他们雇佣了一些孩子来做这件事)。这是上级想要不同方法的另一个原因,因为我们不能让所有的500+ (加上每天5-10个新客户端)都要求帮助如何实现oAuth。
那么,除了传递预设的GUID之外,是否还有其他方法来保护MVC3服务呢?
我已经研究过在服务站点上使用Windows Authentication,但是对于500+客户端来说,这真的合乎逻辑吗?
有没有一种简单、安全的方法来授权多个平台上的多个用户使用终端客户端可以非常轻松地实现的MVC3 RESTful服务?
谢谢。
发布于 2011-03-03 12:58:06
如果你不想要太复杂的东西,可以看看Basic HTTP Authentication。如果你通过SSL使用它,那么它应该足够安全,也足够容易为你的客户实现。Twitter API实际上已经用完了,直到几个月前他们改用OAuth。
发布于 2013-11-18 21:38:43
您希望区分身份验证和授权。您正在寻找的是身份验证,实际上,正如Caps所建议的,最简单的方法可能是使用HTTP BASIC身份验证和SSL,以确保密码不会泄露。
您可以研究其他身份验证方法,例如摘要或更高级的使用ADFS或SAML (ADFS可能很有吸引力,因为您是在.NET中)。也可以看看OpenID Connect -它得到了谷歌的大力支持,并且有很好的支持。
完成后,您可能需要考虑授权-如果需要的话-来控制给定客户端可以对给定资源/项/记录执行的操作。为此,您可以使用.NET框架中提供的基于声明的授权,或者如果您需要更细粒度的授权,请查看XACML.
OAuth不会真正解决你的问题,因为OAuth是关于授权的,也就是说,我让Twitter代表我写我的Facebook账户。
HTH
https://stackoverflow.com/questions/5175512
复制相似问题