我的问题如下:
我想通过电子邮件将多个oauth2帐户关联到同一个用户(例如medium.com或slant.co的设计)。我需要了解这种情况的安全后果。
这种情况对谷歌这样的事情来说确实是不可能的,但它可能适用于Facebook或Twitter的后端。没有办法确保User_A真正拥有使用同一封电子邮件的所有服务,对吗? 如果我是对的,有哪些措施可以确保用户无法登录其他用户的帐户?
答案 0 :(得分:0)
- 用户User_A使用电子邮件Email_A
注册到我的网站- 用户User_B使用Email_A(假设错误地)向Facebook注册,其中User_A没有Facebook帐户。
醇>
通常可以通过在所有帐户中强制实施电子邮件唯一性来避免这种情况(User_B在注册时会收到错误,通知他已经有一个Email_A帐户)。即便如此,还是通过检查您的电子邮件来“确认”帐户的概念 - User_B无法验证他的帐户,因为他无法访问Email_A。
答案 1 :(得分:0)
很好的问题,许多开发人员在这些情况下没有做正确的事情。当我们构建Firebase Auth(以前称为Google Identity Toolkit并且您可以在该页面上看到一些详细信息)时,我们花了很多时间来分析这些案例。这里很难详细描述,但有一些概念会有所帮助。
根据您网站上的数据的敏感度以及您允许“帐户恢复”的方式,您可以始终允许通过权威IDP登录,但是如果用户尝试使用另一个非权威的IDP登录,您应该要求他们在合并时确认原始帐户凭证(例如,在允许仅通过Facebook登录接管帐户之前请求pw或要求Google提出断言)。
希望这会有所帮助。这很复杂,所以小心更好,不合并几乎是不可能的。