在深入开展 HLD 的工作前,团队应该创建其必须加以保护的所有实体的列表。在安全领域中,必须保护的项目称为主体。以下是典型 SOA 系统的高级主体:
- 应用程序或服务
- 硬件
- 消息
- 编排
- 服务组件
- SOA 组件(例如,企业服务总线(Enterprise Service Bus,ESB))
- 用户
- 实用工具
此外,SOA 安全团队应该生成高级图形表示形式,以说明团队成员将如何保护主体之间的交互。图 1 显示主体如何进一步划分为参与者 和资源,其中每个参与者可以为调用资源的功能的人员或计算应用程序,而每个资源则是服务功能、数据、组件或实际效果。主体之间的安全中间层可以进一步分解为执行点、决策点、契约和属性。
图 1. 受保护的主体交互
由于上面列出的每个主体可能与其他主体交互,因此图 1 中所示的中间层要求为每个交互提供一个这样的关系图。对于具有表 1 中所示的聚合的 SOA 实现,大约可能会有 1000 x 1000 个交互。即需要考虑的(至少在 HLD 中如此)主体间的潜在交互数量为 1,000,000。
表 1. SOA 主体计数