我正在设计一个网站,将有一个手机伴侣(仅限初始iPhone)。该网站将是一个ASP.Net MVC 3应用程序。我还会有一个ASP.Net Web API站点(MVC 4)来向iPhone应用程序提供服务。iPhone应用程序将拥有自己的表单来捕获用户的用户名和密码,并将其发送到JSON标头中的Web API。
我想从一开始就考虑安全问题,而不是一开始就想到安全问题。我不是一个安全专家。我已经做了大量的研究,以了解其他人如何从Web服务处理移动应用程序客户端的身份验证。我想我已经想出了一个体面的解决方案,不涉及到第三方oAuths。
我将非常感谢您提供的任何意见,建议,批评和一般WTF。:)
我最大的担忧是:
iPhone应用程序将如此开发: 两个字符串被硬编码到iPhone应用程序中(每个用户的值相同):
两个字符串存储在iPhone应用程序的本地数据库中(每个用户唯一的值):
iPhone将通过以下方式调用Web API: API方法:创建帐户 客户端发送:
API返回:
API Method:Get Account (用于为网站上创建但尚未在iPhone上同步的帐户获取用户散列盐。当用户尝试登录iPhone并且iPhone检测到它存在时会发生这种情况没有该用户名的记录。) 客户端发送:
API返回:
API方法:登录(身份验证) 客户端发送:
API返回:
API方法:任何命令(即创建发布,更新配置文件,获取消息等) 客户端发送:
发布于 2018-03-23 14:38:32
我的建议
这是我认为在使用Web API的移动安全中所需要的最重要的一步。
如果需要3服务器体系结构请求还有一个应用程序密钥,您可以使用它来生成访问密钥(从服务器1)。此访问密钥将验证您的请求,在验证成功后(从服务器2),可以使用该密钥来授权来自其他服务器(服务器3)的请求,
提到的要求是标准规范。真的没有看到这个问题。
发布于 2018-03-23 15:37:39
在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/
https://stackoverflow.com/questions/-100007757
复制相似问题