查看原文
其他

简单三步,轻松保障用户账号安全

Android 谷歌开发者 2019-05-01

作者: Adam Dawes


我们一直在寻找提升用戶安全的方法,以确保用户在 Google 平台及应用中均能享受高级别的安全防护。为此,我们投入了大量研发精力并推出了 Google Sign In 功能,让用户可以将 Google 账号上的所有安全功能扩展至您的应用中。


在过去,所有的单点登录方案都存在一个致命的缺点: 在极个别情况下,攻击者可以在已入侵用户的 Google 账号的情況下,通过 Google Sign In 获取并持有对应用的访问权限。为了帮助各位开发者解决这个问题,我们在 Google Sign In 中添加了一项名为 "跨账号保护" (CAP,Cross Account Protection) 的新特性。


CAP 是一个简单的安全协议,它允许两个应用发送和接受有关同一个用户的安全通知。协议支持的安全事件类型包括: (1) 账号被劫持; (2) 账号被禁用; (3) Google 终止所有用户会话; (4) 锁定账号并强制用户更改密码。此外,当我们检测到某个账号可能导致您的系统遭到滥用时,亦会发送相应的信号。


我们携手 OpenID 基金会和互联网工程任务组 (IETF),共同制定了多个网络新标准,如《网络风险和安全事件的共享及对策》《安全事件》,并基于这些标准开发出了 CAP 功能。 这意味着您只需要构建一套实现,就能够接收来自多个身份提供商的信号。


  • 《网络风险和安全事件的共享及对策》

    https://bitbucket.org/openid/risc/src/5fb03c6c9ab75f3dbf0da943b7e40b328b45161e/oauth-event-types-1_0.txt?at=master&fileviewer=file-view-default

  • 《安全事件》

    https://datatracker.ietf.org/doc/rfc8417/


如果用户曾经通过 Google Sign In 在您的应用内进行过登录操作, Google 就会向应用发送安全事件通知。如果您已经在服务中集成了 Google Sign In,只需简单三步,便可开始接收信号: 


1. 打开已添加 Google Sign In 功能的项目,启用 RISC API 创建一个服务账号。如果您在多个项目中分别配置了 Web 端、Android 端和 iOS 端的客户信息,请在所有项目中依次重复以上步骤。


  • 启用 RISC API 

    https://console.developers.google.com/apis/library/risc.googleapis.com?pli=1

  • 创建一个服务账号

    https://console.developers.google.com/projectselector2/apis/credentials?supportedpurview=project


2. 创建一个 RISC 接受终端: 请在您的服务中启用 REST API,Google 会以 POST 请求的形式向终端发送安全事件令牌。接收到这些事件之后,您需要验证它们确实来自 Google,并采取相应行动,如结束当前用户会话、禁用账号、选用另一种登录方案或检查用户账号是否存在其它可疑活动。


3. 使用服务账号对 Google pubsub 配置您的 API 所在的位置。完成这一步骤后,您便可开始接收信号,并着手进行 CAP 安全功能的测试和发布工作。


如果您已经开始使用 Google Sign In,请阅读官方文档以获取更多技术细节。如果您尚未启用该功能,建议您不妨上手一试,并利用 CAP 为用户创造更好的安全环境。此外,我们已经在 Firebase 身份认证Google 云端身份认证 (客户及合作伙伴版) 中自动集成了 CAP 功能,因此,如果应用使用了这两项服务,您无需执行任何操作,便可直接体验 CAP 带来的强大安全防护。最后,也欢迎大家在 Stack Overflow 网站上利用 #SecEvent 标签进行提问。


  • 官方文档

    https://developers.google.cn/identity/risc

  • Firebase 身份认证

    https://firebase.google.cn/products/auth/

  • Google 云端身份认证 (客户及合作伙伴版)

    https://cloud.google.com/identity-cp/



点击屏末 | 阅读原文 | 了解更多 P&E 相关产品内容


推荐阅读

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存