知识卡片
会话密钥让用户可撤销地把授权委托给第三方而不共享密码
内容
第三方应用要代表用户访问Facebook数据,最糟的做法是让用户把密码直接告诉应用。Facebook的解法是会话密钥授权握手:用户在Facebook页面登录并同意授权,之后带着专属于此次用户-应用组合的会话密钥回到第三方站点,此后调用都用会话密钥而非密码证明身份。关键价值是授权可被单独撤销,不影响密码或其他应用授权。
参考来源
- 位置:《架构之美》第6章《数据增长:Facebook平台的架构》6.2.2节《简单的Web服务认证握手》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0149.xhtml)
- 结论依据:原文明确"重要的是只有当用户在Facebook上的关键步骤中输入了他的口令,才会产生授权……这个会话键是非常私密的……如果用户(或Facebook)禁用了这个应用,或者他从未用过这个应用,安全检查就会通不过",并给出完整的四步授权流程。
- 原始内容:重要的是只有当用户在Facebook上的关键步骤中输入了他的口令,才会产生授权……如果用户(或Facebook)禁用了这个应用,或者他从未用过这个应用,安全检查就会通不过,会返回一个错误。