社交登录
本文约需 2 分钟阅读
社交登录是指使用 Google、Apple、Facebook 等社交媒体账号登录外部服务的机制。用户无需重新创建密码,即可凭现有账号信息轻松开始使用服务。在技术上,它基于 OAuth 2.0 和 OpenID Connect (OIDC) 协议,其最大特点是无需将密码交给服务方即可完成身份验证。
OAuth 2.0 / OpenID Connect 的工作机制
在社交登录的背后,运行的是 OAuth 2.0 的授权码流程 (Authorization Code Flow)。当用户按下「使用 Google 登录」按钮时,会先被重定向到 Google 的身份验证界面,用户授予许可后,授权码便会返回给服务方。服务使用该授权码从 Google 获取访问令牌和 ID 令牌,并接收用户的识别信息 (电子邮件地址、姓名等)。重要的是,服务方完全不接触用户的密码。由于密码的验证全部在 Google 一侧完成,即使服务的数据库遭到入侵,也不存在密码泄露的风险。
Google、Apple、Facebook 登录的区别
即便是同样的社交登录,不同提供商对隐私的态度也大相径庭。Apple 的「Sign in with Apple」提供隐藏用户电子邮件地址的中继功能,服务方只会收到一个随机的电子邮件地址。Google 登录会共享电子邮件地址和个人资料信息,但用户可以精细地控制范围 (共享范围)。Facebook 登录历来倾向于要求广泛的数据访问权限,在 2018 年的 Cambridge Analytica 事件中,人们发现通过社交登录非法收集了数千万人的数据。提供商的选择不应仅仅出于便利,也应从保护隐私的角度审慎判断。
便利性与风险的权衡
社交登录的最大优点是消除密码疲劳。据称普通用户拥有 100 个以上的在线账号,除非使用密码管理器,否则重复使用密码会成为常态。社交登录缓解了这一问题,但也带来了另一种风险。最容易被忽视的是权限的过度授予。登录时可能会被要求授予「访问通讯录」「查看帖子」等不必要的权限,若轻易许可,个人信息便会被广泛共享。也请参阅详细解说OAuth 权限风险的文章。
关于兼顾身份验证与隐私,Web 身份验证安全相关书籍 (Amazon)也很有参考价值。
社交媒体账号被冻结时的风险
在依赖社交登录的服务中,一旦社交媒体账号被冻结或删除,就有连锁性失去访问权限的危险。社交媒体平台的账号冻结可能毫无预警地进行,申诉耗时数周的情况也并不少见。在此期间,只能通过社交登录访问的服务将完全无法使用。作为对策,在使用社交登录注册后,设置以电子邮件地址和密码进行的替代登录方式至关重要。与单点登录一样,需要采用不制造单点故障 (Single Point of Failure) 的设计。
隐私的视角
使用社交登录后,社交媒体提供商便能掌握用户在何时登录了哪些服务。这是跨站跟踪的一种形式,可能被用于广告定向投放。从 GDPR 等隐私法规的角度来看,用户准确理解社交登录所共享的数据范围、养成拒绝不必要权限的习惯也很重要。可在隐私设置指南中确认各平台的权限管理方法。在钓鱼攻击中,也已确认存在显示伪造的社交登录界面以窃取访问令牌的手法,因此请务必确认登录界面的 URL 是否为正规网址。
这篇文章对您有帮助吗?