我们有一个客户端要求在访问特定URL时对移动设备进行身份验证,因为这是一个很少使用的功能,因此决定在仅限网站中进行, 该网站将基于ASP.net/Web API进行进一步调用,并在UI设计中使用AngularJS
在访问特定网址时,请帮助我解决有关移动设备身份验证的以下问题,
谢谢, 巴拉
答案 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)
物理设备无法真正独一无二。但它携带的信息可以是。基于客户端(而不是基于用户)身份验证的正确方法是使用客户端证书。
与PKI证书不同,您枚举的信息类型可以很容易地组成,因为它们没有完整性检查。即使在受控的网络服务器环境中,IP和MAC地址仅用于连接限制,但不用于身份验证。我认为你无论如何都不能通过浏览器收集它们。
如果您只是想简化用户在移动设备上的登录体验,您可能需要查看this。
答案 2 :(得分:0)
您可以使用PKI和数字证书。您的Web服务器可以信任特定的从属证书颁发机构和根证书颁发机构。客户端移动设备可以具有由下级证书颁发机构颁发的证书。在某些手机上,此证书的私钥可以位于手机的TPM中。 Apple的iPhone有一个安全的飞地 - 可能会在那里存储证书的私钥。