在不使用任何其他应用程序访问网站时对移动设备进行身份验证

时间:2015-10-13 12:30:12

标签: .net angularjs authentication mobile asp.net-web-api

我们有一个客户端要求在访问特定URL时对移动设备进行身份验证,因为这是一个很少使用的功能,因此决定在仅限网站中进行, 该网站将基于ASP.net/Web API进行进一步调用,并在UI设计中使用AngularJS

在访问特定网址时,请帮助我解决有关移动设备身份验证的以下问题,

  1. 我们是否有任何可用于验证移动设备的方法 基于其独特的识别?
  2. 但根据我们的分析,获取IMEI,IMSI,MSISDN或电话号码等数据被视为安全风险?此外,在网站访问中提取这些数据的努力也失败了,那么我们是否还有其他可以用作身份验证参数的独特数据?
  3. 如果以上都不可行,请告诉我们在没有任何用户登录或一次性密码或Flash呼叫认证的情况下访问URL时可以对特定移动设备进行身份验证的任何想法吗?
  4. 正在访问的URL将使用第三方SMS服务提供商提供给用户,SMS提供商中是否有可用于身份验证的数据
  5. 谢谢, 巴拉

3 个答案:

答案 0 :(得分:0)

我不知道通过浏览某个网址可以唯一地识别移动设备(不是在移动设备上运行的应用)的方式。

但是,由于您提到创建URL并将其发送到移动客户端,因此您可以添加一次访问允许的加密身份验证参数。

网址示例: https://www.yourdomain.com/YourWebAPI/Authentication?p=jkshdksj!(sa

然后在您的网络API代码(PSEUDU)中:

var decryptedParameter = Decrypt(p)

var validationResult = Validate(decryptedParameter)

if(validationResult == Success)
{
   RedirectToSite();
}

您可以在Validate()

中执行您想要的任何业务逻辑

答案 1 :(得分:0)

  1. 物理设备无法真正独一无二。但它携带的信息可以是。基于客户端(而不是基于用户)身份验证的正确方法是使用客户端证书。

  2. 与PKI证书不同,您枚举的信息类型可以很容易地组成,因为它们没有完整性检查。即使在受控的网络服务器环境中,IP和MAC地址仅用于连接限制,但不用于身份验证。我认为你无论如何都不能通过浏览器收集它们。

  3. 如果您只是想简化用户在移动设备上的登录体验,您可能需要查看this

答案 2 :(得分:0)

您可以使用PKI和数字证书。您的Web服务器可以信任特定的从属证书颁发机构和根证书颁发机构。客户端移动设备可以具有由下级证书颁发机构颁发的证书。在某些手机上,此证书的私钥可以位于手机的TPM中。 Apple的iPhone有一个安全的飞地 - 可能会在那里存储证书的私钥。