我正在使用 ASP.net Web API 实现一个 API,我正在尝试在我的场景中找到合适的身份验证替代方案,如下所示:
- API 应该可以从移动客户端访问
- 移动客户端用户不应登录,客户端是本机应用程序
- API 使用由设备 ID 和用户 ID 组成的凭据进行授权,通过其他方式在应用程序中获取,有效凭据存储在 sql 数据库中
- 客户端不应存储静态凭据
- API 管理敏感数据并且应该是安全的
所以我探索了一些选项,我发现通过 SSL 进行基本身份验证就足够了,但有些人说这可能还不够,基于声明的解决方案就足够了。
然后我探索了 Azure ACS,我发现它有一些优势,但也许它对我的场景来说过于复杂了?我仍然应该像基本身份验证一样创建一个身份提供者。示例流程(第二种方法):http: //msdn.microsoft.com/en-us/library/gg429784.aspx
你怎么看?
谢谢
更新:
我一直在考虑使用 DotNetOpenOauth 的实现并使用资源所有者密码授予,这样我就可以第一次使用设备 ID 和用户 ID 来获取访问令牌而不存储凭据,服务器可以根据设备授权调用者调用它,这是正确的吗?