可以在机器级授权用户。例如,只有当使用授权的计算机(我的个人笔记本电脑或其他经理的电脑)才能访问管理页面?任何其他计算机应该得到拒绝访问消息或其他东西。授权的计算机可能仍然会提供自己的管理员用户名和密码,以防人们伪造机器的身份。但我不是安全专家。在机器级授权用户?
回答
纠正我,如果我误解,但你只是要求访问者在特定的机器访问您的网站?
在这里跳入解决方案。第一个问题是,你如何知道哪些机器是“经理人”的机器?你有他们的IP地址列表吗?你有其他的身份证吗?
如果你有他们的IP地址,然后IP将他们白名单,并阻止所有其他的IP地址。
如果你没有他们的IP地址,那么你是有限的。没有可通过网络浏览器访问的计算机ID,因此您需要通过设置长期存在的Cookie和注册过程来创建自己的ID。
由于您已经有登录过程,因此下一部分相当简单。你以前使用过这个解决方案。当您登录Google邮件并点击“记住我”,并且在下次重新启动计算机时不需要登录时,Google基本上已将您的计算机标记为(设置Cookie)为您的计算机。
现在,如果你想获得超级花式,企业有NAC设置。每个系统在被允许连接到网络之前被识别。某些系统比其他系统获得更多访问权限。例如,在一家软件开发公司,工程师可能有权访问生产网络,而销售人员则不能。当他们连接时,销售人员在识别出他们是谁以及机器属于谁之后转移到受限制的vlan。如果您的公司属于这种情况,那么您会将整个子网块列入白名单。
最后一点。 Chase银行使用机器cookie概念,如下所示:第一次登录时,他们会询问您的用户名和密码。然后将代码发送到您的手机或某个第三方频道。输入代码后,设置一个机器cookie(相同的旧cookie)。下次登录时,他们会要求输入用户名和密码,然后查找机器cookie。如果机器cookie存在,那么它们不会让您再次输入代码。
您可以进行注册过程,除非您向经理提供可输入的代码。我不认为你想要注册机器比静态密码复杂得多,但如果你这样做了,你可以按照rfc 4226中的规范生成一个时间令牌。
您不能限制对特定计算设备的访问(因为有很多类型的设备使用,并且没有通用的绑定方式),但根据您的应用程序设计,您仍然可以解决您的问题。您不需要绑定到计算机,而是绑定到其他不可复制的硬件设备。
其中一个这样的设备是一个硬件cryptotoken或加密卡与证书和一个私钥在里面。用户分别将设备插入USB或读卡器,然后使用存储在该设备上的证书和私钥在服务器上进行身份验证)。使用证书进行客户端身份验证是一个很大但众所周知的话题,所以我在这里不讨论它。
虽然可以将加密设备移动到另一台计算机系统,但无法复制或从中提取私钥。因此,您可以(具有一定的高可靠性)假定只存在一个私钥副本,并将其存储在某个特定设备上。
当然,您需要为每个设备创建另一个证书,但这不是问题 - 这些证书的唯一目的是被服务器接受,因此服务器可以在需要时颁发新证书。
- 1. 页面级别的用户授权
- 2. PowerShell用户授权
- 3. Swift用户授权
- 4. Rails用户授权
- 5. has_secure_password用户授权
- 6. Django用户授权
- 7. rails_admin用户授权
- 8. PHP多级授权
- 9. .NET应用程序的机器授权
- 10. 在ASP.NET MVC控制器中与授权和未授权用户共享动作
- 11. 授予用户授予其他用户的授权
- 12. 在机器到机器的场景中细分web api授权
- 13. 在OAuth2授权授权流程中,如何模拟用户从浏览器中单击“授权”?
- 14. 当用户登录时授予授权
- 15. 授权非Django的用户
- 16. 授予用户访问权
- 17. Oracle - 授予用户权限
- 18. Mercurial网络用户授权
- 19. 用户授权与MDB
- 20. 用户被授权登录
- 21. 用户授权与Facebook
- 22. 用户角色和授权
- 23. 配置ldap授权用户
- 24. 防止未授权用户
- 25. MySql授予用户权限
- 26. 授权自记录用户
- 27. 用户授权失败:(null)
- 28. PostgreSQL用户组和授权
- 29. CanCan的用户授权:NoMethodError
- 30. 用户授权云端点