

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 租户入职
<a name="opa-design-onboarding"></a>

OPA 文件的结构必须允许租户在不引入繁琐要求的情况下直接入职。您可以使用文件包在 OPA 文档模型层次结构中组织虚拟文档，这些文件包可以包含许多规则。在为多租户应用程序规划 OPA 文档模型时，首先要确定 OPA 需要哪些数据才能做出决定。您可以提供数据作为输入，将其预加载到 OPA 中，或者在决策时或定期从外部数据源提供。有关在 OPA 中使用外部数据的更多信息，请参阅本指南后面的 “在 OP [A 中检索 PDP 的外部数据” 一](external-data-opa.md)节。

确定在 OPA 中做出决策所需的数据后，请考虑如何实施以包形式组织的 OPA 规则，以便使用这些数据做出决策。例如，在孤立的 SaaS 模型中，每个租户可能对授权决策的制定方式有独特的要求，您可以实施特定于租户的 OPA 一揽子规则。

![rules-per-tenant用例的 OPA 文档模型](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/images/opa-doc-model-3.png)


这种方法的缺点是，您必须为添加到 SaaS 应用程序的每个租户添加一组针对每个租户的新的 OPA 规则。这既繁琐又难以扩展，但可能不可避免，具体取决于租户的要求。

或者，在池化 SaaS 模型中，如果所有租户都根据相同的规则做出授权决策并使用相同的数据结构，则可以使用具有普遍适用规则的标准 OPA 包，以便更轻松地加入租户并扩展 OPA 的实施。

![通用规则的 OPA 文档模型](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/images/opa-doc-model-4.png)


在可能的情况下，我们建议您使用通用的 OPA 规则和软件包（或虚拟文档），根据每个租户提供的标准化数据做出决策。这种方法使得 OPA 易于扩展，因为您只需更改为每个租户提供给 OPA 的数据，而不更改 OPA 通过其规则提供决策的方式。只有当个别租户需要独特的决策或必须向OPA提供与其他租户不同的数据时，才需要引入 rules-per-tenant模型。