

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

# Amazon Verified Permissions 的設計模型
<a name="using-avp"></a>

## 在 APIs 上使用集中式 PDP 搭配 PEPs
<a name="using-avp-pdp"></a>

API 模型上具有政策強制執行點 PEPs) 的集中式政策決策點 (PDP) 遵循產業最佳實務，為 API 存取控制和授權建立有效且易於維護的系統。 APIs 此方法支援數個關鍵原則：
+ 授權和 API 存取控制會套用在應用程式中的多個點。
+ 授權邏輯與應用程式無關。
+ 存取控制決策是集中式的。

![在 APIs 上使用集中式 PDP 搭配 PEPs](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/images/avp-design-model.png)


**應用程式流程** （圖表中以藍色編號的標註表示）：

1. 使用 JSON Web Token (JWT) 的已驗證使用者會向 Amazon CloudFront 產生 HTTP 請求。

1. CloudFront 會將請求轉送至設定為 CloudFront 原始伺服器的 Amazon API Gateway。

1. 呼叫 API Gateway 自訂授權方來驗證 JWT。

1. Microservices 會回應請求。

**授權和 API 存取控制流程** （在圖表中以紅色編號的標註表示）：

1. PEP 會呼叫授權服務並傳遞請求資料，包括任何 JWTs。

1. 授權服務 (PDP) 在此情況下， 會使用請求資料做為查詢輸入，並根據查詢指定的相關政策進行評估。

1. 授權決策會傳回給 PEP 並進行評估。

此模型使用集中式 PDP 來做出授權決策。PEPs會在不同的時間點實作，以向 PDP 提出授權請求。下圖顯示如何在假設的多租用戶 SaaS 應用程式中實作此模型。

在此架構中，PEPs 會在 Amazon CloudFront 和 Amazon API Gateway 的服務端點以及每個微服務請求授權決策。授權決策是由授權服務 Amazon Verified Permissions (PDP) 做出。由於 Verified Permissions 是全受管服務，因此您不需要管理基礎基礎設施。您可以使用 RESTful API 或 AWS SDK 與 Verified Permissions 互動。

您也可以將此架構與自訂政策引擎搭配使用。不過，從 Verified Permissions 獲得的任何優勢都必須取代為自訂政策引擎提供的邏輯。

API 上具有 PEPs APIs集中式 PDP 提供簡單的選項，可建立 APIs的強大授權系統。這可簡化授權程序，並提供easy-to-use可重複界面，以針對 APIs、微服務、後端前端 (BFF) 層或其他應用程式元件做出授權決策。

## 使用 Cedar SDK
<a name="using-avp-cedar"></a>

Amazon Verified Permissions 使用 Cedar 語言來管理自訂應用程式中的精細許可。使用 Verified Permissions，您可以將 Cedar 政策存放在中央位置、利用毫秒處理的低延遲，以及跨不同應用程式的稽核許可。您也可以選擇性地將 Cedar SDK 直接整合到您的應用程式中，以提供授權決策，而無需使用 Verified Permissions。此選項需要額外的自訂應用程式開發，才能管理和存放使用案例的政策。不過，這可能是可行的替代方案，特別是在因網際網路連線不一致而存取 Verified Permissions 是間歇性或不可行的情況下。