4. 元数据仓库 (Metadata Repository)
MATF metadata repository 充当中央保险库, 安全存储所有参与 federation member 及其相应实体的全部信息. 这些信息称为 federation metadata, 以 JSON Web Signature (JWS) [RFC7515] 的形式呈现, 用于确保其真实性和完整性.
metadata repository 受严格安全措施约束, 以保护所存储信息的完整性. 这可以包括:
-
Member management: federation operator 可以集中执行安全策略, 并在新成员加入 repository 之前对其进行审核.
-
Access controls: repository 管理功能和 member metadata 提交端点的访问应该限制为已授权的 federation member.
-
Regular backups: 稳健的备份流程可确保在发生不可预见情况时恢复数据.
在 member metadata 加入 federation repository 之前, 所提交的 metadata 必须经过验证流程. 该流程验证成员提供的信息的准确性, 完整性和有效性. 未通过验证的 metadata 必须被拒绝. 验证流程至少必须包括以下检查:
-
Format validation: 检查所提交的 metadata, 以确保其符合第 6.2 节和 Appendix A 中定义的 schema 和格式规范.
-
Unique entity identifier: 检查所提交的 metadata, 以确保第 6.1.1 节中定义的 entity_id 值尚未由其他成员注册.
-
Unique public key pin digests: 检查所提交的 metadata, 以确保第 6.1.1.1 节中定义的 pins 条目不会引入已注册到不同 entity_id 的 digest 值. 虽然允许在同一 entity_id 内重复使用相同 digest 值, 但为了防止身份冲突, 并支持按第 5.2 节规定从派生 pin 解析唯一 entity_id, 不同实体之间的唯一性是必需的.
-
Issuer certificate checks: 检查第 6.1.1 节中定义的 issuers 内的 issuer certificate, 以确保它们语法有效, 未过期, 并使用符合 federation 安全要求的算法.
-
Tag validation: 检查第 6.1.1.1 节中定义的 tags, 以确保它们符合已定义的 tag 语法. 如果 federation 定义了经批准的 tag 值集合, 则检查所提交的 tags 是否属于该集合.
metadata repository 为存储 member metadata 以及生成 federation metadata 以分发给 federation member 提供了受控位置.
4.1. 元数据提交 (Metadata Submission)
由 federation 通过其治理和运营流程决定向成员提供哪些渠道, 以便成员向 metadata repository 提交其 metadata. 成员通常可以选择将 metadata 直接上传到 repository, 前提是存在此类功能, 或者通过指定的安全渠道将其发送给 federation operator. 如果使用不安全渠道, 则必须采取额外措施来验证 metadata 的真实性和完整性. 此类措施可以包括通过另一个渠道验证 metadata 的 checksum. 提交渠道的选择可以取决于 federation 指南和成员偏好等因素.
4.2. 维护最新元数据 (Maintaining Up-to-Date Metadata)
在 MATF federation 中, 准确且最新的 metadata 对于确保成员之间安全可靠通信至关重要. 这要求维护所有成员均可访问的最新 metadata.
-
Federation metadata: federation operator 发布一个 JWS, 其中包含所有 entity metadata 的聚合. 该 JWS 作为 federation 内所有成员信息的真实来源. JWS 中过期的信息可能导致连接失败, 发现困难以及潜在安全风险等问题.
-
Local metadata: 每个成员维护一个 local metadata store, 其中包含 federation 内其他成员的信息. 这些信息从 federation 可公开访问的 JWS 中检索. local store 中过期的数据可能妨碍成员发现并连接其他相关实体.
以下概述保持 metadata 最新的流程:
-
Federation Operator Role: federation operator 在维护 federation 内数据完整性方面发挥关键作用. 其职责包括:
-
定义 metadata 管理规则, 这些规则至少必须包括 expiration 和 cache time 管理.
-
实施机制来更新已发布的 federation metadata, 确保其遵守 expiration time (第 6.1 节中定义的 exp) 和 cache TTL (第 6.1 节中定义的 cache_ttl) 规范.
-
-
Member Responsibility: 成员必须遵循 federation 的 metadata 管理规则, 并根据已定义的 expiration 和 cache 规则刷新其 local metadata store.
通过履行这些职责, federation 可确保信息在定义的时间范围内保持有效, 并确保 caching 机制有效使用最新数据.