authentication - 移动客户端上的 Aspnet Web API 身份验证

标签 authentication azure asp.net-web-api

我正在使用 ASP.net Web API 实现一个 API,并且我正在尝试在我的场景中找到适当的身份验证替代方案,如下所示:

  • 该 API 应可从移动客户端访问
  • 移动客户端用户不应登录,该客户端是 native 应用
  • API 通过由设备 ID 和用户 ID 组成的凭据进行授权,这些凭据通过其他方式在应用内获取,有效凭据存储在 SQL 数据库中
  • 客户端不应存储静态凭据
  • API 管理敏感数据并且应该是安全的

因此,我探索了一些选项,发现通过 SSL 进行基本身份验证就足够了,但有些人说这可能还不够,基于声明的解决方案就足够了。

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

你觉得怎么样?

谢谢

更新:

我一直在考虑使用 DotNetOpenOauth 的实现并使用资源所有者密码授予,这样我就可以在第一次使用设备 ID 和用户 ID 来获取访问 token 而不存储凭据,服务器可以基于调用者授权在调用它的设备上,这是正确的吗?

最佳答案

在 VS 2013 中,您可以使用“Asp MVC SPA 应用程序”模板生成一个工作实现,该实现在登录时生成 Oauth2 token 承载并使用 [Authorize] 属性授权其进行 WebApi Controller 调用。它使用成员资格和 Entity Framework 将用户和哈希值本地存储在 SQL Server 中。只需删除不需要的 asp mvc 部分并保留 WebApi 的 Auth 部分即可。 更多详细信息请参见此处: http://msdnrss.thecoderblogs.com/2013/09/understanding-security-features-in-the-spa-template-for-vs2013-rc/

关于authentication - 移动客户端上的 Aspnet Web API 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16152790/

相关文章:

angularjs - 在 Web API 2 中如何接受简单类型作为 post 参数以及 Route 参数

c# - 加密连接字符串

ios - 如何使用 Google 离线访问 token 在 iOS 后台进行身份验证?

python - 使用 Requests python 库连接 Django 应用程序时身份验证失败

c# - 使用 LINQ 在 Azure 中字符串长度失败

azure - 控制 Azure Web 应用程序服务的入站流量

asp.net-mvc - 以编程方式在 IIS 中启用或禁用匿名身份验证

authentication - 将 JAAS 用于具有 Spring 安全性的 LDAP 密码

sql-server - 将 SQL Server 2012 转换为 SQL Azure

c# - 我怎样才能将 web api 用作 web 服务?