

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

# 在 Amazon Verified Permissions 中實作授權
<a name="authorization"></a>

在您建置政策存放區、政策、範本、結構描述和授權模型之後，即可開始使用 Amazon Verified Permissions 授權請求。若要實作 Verified Permissions 授權，您必須在 中結合授權政策的組態 AWS 與應用程式中的整合。若要將 Verified Permissions 與您的應用程式整合，請新增 AWS 開發套件並實作叫用 Verified Permissions API 的方法，並針對您的政策存放區產生授權決策。

Verified Permissions 的授權適用於應用程式中的 *UX 許可*和 *API 許可*。

**UX 許可**  
控制使用者存取您的應用程式 UX。您可以允許使用者只檢視他們需要存取的確切表單、按鈕、圖形和其他資源。例如，當使用者登入時，您可能想要判斷他們的帳戶中是否顯示「轉移資金」按鈕。您也可以控制使用者可採取的動作。例如，在相同的銀行應用程式中，您可能想要判斷您的使用者是否可以變更交易的類別。

**API 許可**  
控制使用者對資料的存取。應用程式通常是分散式系統的一部分，並從外部 APIs引入資訊。在 Verified Permissions 允許顯示「轉移資金」按鈕的銀行應用程式中，當您的使用者啟動轉移時，必須做出更複雜的授權決策。Verified Permissions 可以授權列出合格轉移目標目的地帳戶的 API 請求，然後將轉移推送到另一個帳戶的請求。

說明此內容的範例來自[範例政策存放區](policy-stores-create.md#policy-stores-create.title)。若要遵循，請在您的測試環境中建立 **DigitalPetStore** 範例政策存放區。

如需使用批次授權實作 UX 許可的端對端範例應用程式，請參閱 *AWS 安全部落格*上的[使用 Amazon Verified Permissions 進行大規模精細授權](https://aws.amazon.com/blogs/security/use-amazon-verified-permissions-for-fine-grained-authorization-at-scale/)。

**Topics**
+ [授權可用的 API 操作](#authorization-operations)
+ [測試您的授權模型](authorization-testing.md)
+ [將您的授權模型與應用程式整合](authorization-sdk.md)

## 授權可用的 API 操作
<a name="authorization-operations"></a>

Verified Permissions API 具有下列授權操作。

**[IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html)**  
`IsAuthorized` API 操作是使用 Verified Permissions 授權請求的進入點。您必須提交主體、動作、資源、內容和實體元素。Verified Permissions 會根據請求的政策存放區中套用至請求中實體的所有政策來評估您的請求。

**[IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)**  
`IsAuthorizedWithToken` 操作會從 JSON Web 字符 (JWTs) 中的使用者資料產生授權請求。Verified Permissions 可直接與 OIDC 提供者搭配使用，例如 Amazon Cognito 作為政策存放區中的身分來源。Verified Permissions 會從使用者 ID 或存取權杖中的宣告，將請求中的所有屬性填入委託人。您可以從身分來源中的使用者屬性或群組成員資格授權動作和資源。  
您無法在`IsAuthorizedWithToken`請求中包含群組或使用者主體類型的相關資訊。您必須將所有主體資料填入您提供的 JWT。

**[BatchIsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorized.html)**  
`BatchIsAuthorized` 操作會在單一 API 請求中處理單一委託人或資源的多個授權決策。此操作會將請求分組為單一批次操作，可將[配額用量](quotas.md#quotas-tps.title)降至最低，並傳回最多 30 個複雜巢狀動作的授權決策。透過單一資源的批次授權，您可以篩選使用者可以對資源採取的動作。透過單一委託人的批次授權，您可以篩選使用者可採取動作的資源。

**[BatchIsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorizedWithToken.html)**  
`BatchIsAuthorizedWithToken` 操作會在一個 API 請求中處理單一委託人的多個授權決策。委託人是由您的政策存放區身分來源在 ID 或存取權杖中提供。此操作會將請求分組為單一批次操作，將[配額用量](quotas.md#quotas-tps.title)降至最低，並針對動作和資源傳回最多 30 個請求的授權決策。在您的政策中，您可以從其屬性或使用者目錄中的群組成員資格授權其存取權。  
如同 `IsAuthorizedWithToken`，您無法在`BatchIsAuthorizedWithToken`請求中包含群組或使用者主體類型的相關資訊。您必須將所有主體資料填入您提供的 JWT。