我正在使用ASP.net Web API实现API,我正在尝试在我的场景中找到适当的身份验证替代方案,如下所示:
所以我已经探索了一些选项,我发现通过SSL的基本身份验证就足够了,但有些人说这可能还不够,基于声明的解决方案会。
然后我研究了Azure ACS,我发现它有一些优点,但也许它对我的场景来说过于复杂?我仍然应该像基本身份验证一样创建身份提供者。样本流程(第二种方法):http://msdn.microsoft.com/en-us/library/gg429784.aspx
您怎么看?
由于
更新
我一直在考虑使用DotNetOpenOauth的实现并使用资源所有者密码授予,因此我可以在第一次使用设备ID和用户ID获取访问令牌而不存储凭据,服务器可以授权调用者在设备上调用它,这是正确的吗?
答案 0 :(得分:2)
在VS 2013中,您可以使用“Asp MVC SPA应用程序”模板生成一个工作实现,该实现在登录时生成Oauth2令牌承载,并使用[Authorize]属性为WebApi控制器调用授权。它使用Membership和Entity Framework在SQL Server中本地存储用户和哈希。只需删除不需要的asp mvc部件,并保留WebApi的Auth部件。 更多细节在这里: http://msdnrss.thecoderblogs.com/2013/09/understanding-security-features-in-the-spa-template-for-vs2013-rc/
答案 1 :(得分:1)
我使用asp.net mvc 4.0 / web api基本会员资格做到了。你会发现它很有帮助。
https://github.com/aamir-poswal/Mobile-Apps-Authentication-Authorization-ASP.NET-WEB-MVC-4.0
答案 2 :(得分:0)
不存储凭据是一个好主意。您可以查看IdentityServer,它支持资源所有者,隐式和代码流:
https://github.com/thinktecture/Thinktecture.IdentityServer.v2/wiki