使用来自跨平台移动应用程序的REST和ASP.NET Web Api进行身份验证和授权

tam*_*agy 7 asp.net security rest http asp.net-web-api

我正在编写一个使用ASP.NET Web Api模板的服务器并实现其他服务.该服务器将成为移动游戏的后端,它将存储用户的高分,进度和其他信息.我已经看了很多方法(这个,这个,这个),我无法决定使用什么方法.在我的情况下,我想防止分数欺诈,主要是因为每个用户帐户将包含有限的信息(在他们的电子邮件之外).这是理想情况下会发生的事情.

  1. 用户第一次打开应用程序
  2. 用户可以选择自定义用户名,这由服务器检查,因此没有重复项
  3. 用户将获得一个随机生成的六位数密码(因此他们可以在不同的手机上使用相同的帐号)
  4. 用户输入电子邮件地址
  5. 在服务器上创建新用户(服务器验证该帐户是否由我的客户端应用程序的有效实例创建)
  6. 用户玩游戏,上传结果(通过基本身份验证?)
  7. 用户可以查看全局结果(对非特定于用户的GET方法没有安全性)

我无法缩小使用哪种类型的身份验证(没有浏览器登录屏幕等)和授权方法.任何帮助将不胜感激.

-Tamas

Kev*_*ans 5

即使您使用的是基本身份验证,也需要使用HTTPS.如果您使用的是HTTPS,则可以使用客户端证书来验证客户端.只有具有有效证书的客户才能获得访问权限.如果您没有向其他消费者开放此API,并且它只会由您开发的客户端使用,您可能需要考虑WS-Security和WCF.还有就是用裸体摩托车司机比喻差异的有趣的描述在这里.