服务安全与合同设计模式解析
1. 信任子系统模式
1.1 问题描述
当消费者直接访问服务的后端资源时,会带来诸多问题。一方面,可能会破坏资源的完整性;另一方面,会导致不良的实现耦合形式。若底层服务资源(如数据库)能被消费者程序直接访问,恶意攻击者可能会危及资源安全,而且消费者程序可能会与服务架构的某些部分形成不健康的依赖关系,进而导致消费者与服务之间出现负面耦合。
1.2 解决方案
服务充当其底层资源的信任子系统。消费者只能通过服务访问资源,服务使用自己的凭证而非消费者的凭证来访问资源。
1.3 应用方式
服务是服务消费者程序访问底层资源的唯一途径,这通常需要结合合同集中化。消费者的认证和授权通过服务进行,其凭证不被委托给底层资源,而是由服务使用自己的凭证。当访问远程资源时,服务需按以下步骤操作:
1. 通过直接认证或代理认证对消息进行认证和授权。
2. 向远程资源发送请求,并附带服务自己的凭证(或信任子系统进程执行的服务账户)。
3. 收到并处理资源的响应后,向消费者发出自己的响应。
1.4 实现技术
- 服务账户 :在信任子系统内使用服务账户,这是使用 Kerberos 协议进行验证的常见方法,该服务账户仅在特定信任子系统内有效。
- 本地账户 :当无法使用 Kerberos 服务账户进行认证时,可在信任子系统内的每个主机上创建本地账户,即“镜像账户”,每个账户具有相同的登录名和密码,通常需要复杂且经常更改的密码。
超级会员免费看
订阅专栏 解锁全文

1263

被折叠的 条评论
为什么被折叠?



