

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 租戶加入
<a name="opa-design-onboarding"></a>

OPA 文件的結構必須允許直接的租戶加入，而不會引入繁瑣的需求。您可以使用套件在 OPA 文件模型階層中組織虛擬文件，而且這些套件可以包含許多規則。當您為多租戶應用程式規劃 OPA 文件模型時，請先判斷 OPA 需要哪些資料才能做出決策。您可以提供資料做為輸入、預先載入 OPA，或在決策時間或定期從外部資料來源提供資料。如需搭配 OPA 使用外部資料的詳細資訊，請參閱本指南稍後在 [OPA 中擷取 PDP 的外部資料](external-data-opa.md)一節。

在您決定在 OPA 中做出決策所需的資料後，請考慮如何實作組織為套件的 OPA 規則，以對該資料做出決策。例如，在孤立的 SaaS 模型中，每個租用戶對於授權決策的制定方式可能有獨特的要求，您可以實作租用戶特定的 OPA 規則套件。

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


此方法的缺點是您必須為每個租用戶新增一組新的 OPA 規則，針對您新增至 SaaS 應用程式的每個租用戶。這很繁瑣且難以擴展，但根據您的租戶需求，可能無法避免。

或者，在集區 SaaS 模型中，如果所有租用戶都根據相同的規則做出授權決策並使用相同的資料結構，您可以使用具有一般適用規則的標準 OPA 套件，以更輕鬆地加入租用戶並擴展您的 OPA 實作。

![一般化規則的 OPA 文件模型](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/images/opa-doc-model-4.png)


我們建議您盡可能使用一般化 OPA 規則和套件 （或虛擬文件），根據每個租戶提供的標準化資料做出決策。這種方法可讓 OPA 易於擴展，因為您只會變更提供給每個租用戶的 OPA 資料，而不是 OPA 如何透過其規則提供其決策。只有在個別租用戶需要唯一決策，或必須提供 OPA 與其他租用戶不同的資料時，才需要引進每個租用戶的rules-per-tenant模型。