Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 无登录屏幕的移动应用验证_Authentication_Mobile - Fatal编程技术网

Authentication 无登录屏幕的移动应用验证

Authentication 无登录屏幕的移动应用验证,authentication,mobile,Authentication,Mobile,我正在设计一个移动应用程序,用户下载的客户端应用程序只需打开浏览器并打开我设计的web应用程序。除非通过下载的应用程序,否则不得访问web应用程序。在我发布网站之前,我想实现身份验证,这样人们在我发布之前无法访问它 该web应用程序是Azure/C#/MVC5/Javascript/Sql Server。发布计划将因平台而异(Android/iPhone/Windows8Phone) 如果可能的话,我想做的是在不需要密码的情况下实现身份验证,以减轻用户的负担。从安全的角度来看,我不是很担心。身份

我正在设计一个移动应用程序,用户下载的客户端应用程序只需打开浏览器并打开我设计的web应用程序。除非通过下载的应用程序,否则不得访问web应用程序。在我发布网站之前,我想实现身份验证,这样人们在我发布之前无法访问它

该web应用程序是Azure/C#/MVC5/Javascript/Sql Server。发布计划将因平台而异(Android/iPhone/Windows8Phone)

如果可能的话,我想做的是在不需要密码的情况下实现身份验证,以减轻用户的负担。从安全的角度来看,我不是很担心。身份验证的主要目的只是验证用户确实购买了应用程序,并且他们不仅仅是浏览网站

我本以为这部分很容易,但我花了很多时间寻找解决方案,我比开始时更困惑。从我所读到的,听起来我可能需要一个“秘密”或“暂时的”。我不知道如何实施这些事情。基本上,我在这里寻找两件事——确认我从了解这一领域的人那里走上了正确的道路(或者如果不了解,请提供路线更正),以及一个指向包含适当解决方案的实际实施细节的站点的链接


提前谢谢

您的客户端需要有一个秘密,web后端可以验证

传递秘密以供核实 您可以使用REST将秘密传递给web后端,如:
http://web.app.com/something?secret=XXXXXX

如果机密被检出,您可以将客户端重定向到相应的页面

创造秘密 它可以是您想要的任何字符串,非常像您创建的密码

更安全的秘密 通过执行以下操作,您可以生成每次都不同的秘密以传递到web后端: 秘密=
+SHA-1(+)

注意:
由您定义,这是“真正”的秘密,只有访问您的代码的人才会知道。(当然,他们可以拆开你的程序和/或观察它运行的内存空间来找出答案,但这超出了大多数人的能力)

测试秘密 在web后端,将给定的机密拆分为
SHA-1
部分。然后执行
SHA-1(+)
(客户端和后端的固定字符串都是相同的)。如果SHA-1结果相同,则验证

防止共享
用户可能仍然与其他人共享秘密,为了防止这种情况,我们可以在
中引入时间戳,给出
+
。这样,我们就可以将秘密的有效性限制在特定的时间内。在这种情况下,30秒到几分钟可以适应Internet延迟和客户端时钟不准确。

Ok。我可以在查询字符串中传递它,如果这是唯一不太复杂的方法。我是在每个请求/响应中来回传递它,还是用它交换令牌?我相信如果这是正确的方法,我可以找到一些在线生成机密的实现细节。但我很紧张,因为有人可以通过发短信给他们链接,让他们所有的朋友都可以访问这个应用程序。或者他们可以把它放在网上或推特上。@user2262360您真够精明的,我编辑了我的答案,以回应您对更安全的秘密的担忧。@DannieSim-谢谢您的帮助。它不会让我投票,因为我没有代表,但我会尽快回来。酷。上面说我需要15个。我突然想到——即使其他用户不知道散列的意思,他们也不能将同一行粘贴到浏览器中以打开网站吗?更新了答案,将地址改为“其他用户可以将同一行粘贴到浏览器中”。