知识卡片
安全需求集中实现减少审查表面积
内容
如果每个服务各自实现身份认证、授权、审计日志这类横切需求,开发者忘配一项(如授权策略)就可能让任何经过身份认证的客户端随意调用敏感方法,审查人员也必须逐个检查每个服务的实现。把这类需求下沉到应用程序框架这样的集中组件后,框架默认禁止所有未明确允许的客户端,审查人员只需理解框架本身加每个服务的策略配置。这比[[内置安全可靠的框架是双赢]]更进一步:集中化把”验证系统是否安全”从与代码规模成正比的工作量,降到与框架数量成正比。
参考来源
- 位置:《Google系统架构解密:构建安全可靠的系统》第6章《面向易理解性的设计》6.4.1节(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_059.html`)
- 结论依据:原文以开发者用RPC框架搭好服务却忘记配置授权策略、导致任何认证客户端都能调用敏感方法为例,说明应用程序框架通过"默认禁止所有未经明确允许的客户端"消除这类遗漏,让身份认证、授权、审计等横切需求由框架统一保证。
- 原始内容:他们使用首选的身份认证框架设置身份认证,但忘记了配置授权和访问控制策略……应用程序框架可以避免此类问题,其方法是确保每个应用程序都有有效的授权策略,并默认禁止所有未经明确允许的客户端。