2013-04-22 57 views
2

我使用ASP.net的Web API实现的API,我试图找到我的方案进行验证适当的替代品,其计算方法如下:ASPNET的Web API认证

  • 的API应该可以从移动客户端访问
  • 移动客户端用户不应该登录,客户端是本机应用程序
  • 该API由设备ID和用户ID组成的凭证进行授权,该凭证以其他方式在应用程序中获得,存储在sql数据库中的有效凭证
  • 客户端不应存储静态凭据
  • 的API管理敏感数据,应该是安全的

所以我探讨一些选择,我已经发现,通过SSL进行基本的身份验证就足够了,但有些人说这可能是不够的,基于索赔的解决方案会。

然后我探索了Azure ACS,我发现它有一些优点,但是对我的场景来说可能过于复杂?我仍然应该创建一个身份提供者,如基本身份验证。样品流程(第二种方法):http://msdn.microsoft.com/en-us/library/gg429784.aspx

您怎么看?

感谢

UPDATE:

我一直在思考如何使用DotNetOpenOauth的实施和使用资源所有者口令授予这样我就可以使用该设备ID和用户ID的第一时间拿到访问令牌没有存储凭据,服务器可以根据设备调用它来授权调用者,这是正确的吗?

回答

2

在VS 2013,你可以使用“ASP MVC SPA申请”模板来生成一个工作的实现,是产生在登录时的OAuth2令牌承载和使用授权它的WebAPI控制器调用[授权]属性。它使用成员资格和实体框架在SQL Server本地存储用户和散列。只需删除您不需要的asp mvc部分,并保留WebApi的Auth部分即可。 更多细节在这里: http://msdnrss.thecoderblogs.com/2013/09/understanding-security-features-in-the-spa-template-for-vs2013-rc/