

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

# 將您的授權模型與應用程式整合
與應用程式整合

若要在應用程式中實作 Amazon Verified Permissions，您必須定義您希望應用程式強制執行的政策和結構描述。設定並測試您的授權模型後，下一步是從強制執行點開始產生 API 請求。若要這樣做，您必須設定應用程式邏輯來收集使用者資料，並將其填入授權請求。

**應用程式如何使用 Verified Permissions 授權請求**

1. 收集目前使用者的相關資訊。一般而言，使用者的詳細資訊會在已驗證工作階段的詳細資訊中提供，例如 JWT 或 Web 工作階段 Cookie。此使用者資料可能來自連結至政策存放區的 Amazon Cognito [身分來源](identity-sources.md#identity-sources.title)，或來自其他 [OpenID Connect (OIDC) 供應商](cognito-validation.md#identity-sources-other-idp.title)。

1. 收集使用者想要存取之資源的相關資訊。一般而言，當使用者選擇需要您的應用程式載入新資產時，您的應用程式會收到資源的相關資訊。

1. 判斷您的使用者想要採取的動作。

1. 使用使用者嘗試操作的委託人、動作、資源和實體，向 Verified Permissions 產生授權請求。Verified Permissions 會根據政策存放區中的政策評估請求，並傳回授權決策。

1. 您的應用程式會從 Verified Permissions 讀取允許或拒絕回應，並強制執行使用者請求的決定。

Verified Permissions API 操作內建於 AWS SDKs中。若要在應用程式中包含 Verified Permissions，請將所選語言的 AWS SDK 整合到應用程式套件中。

若要進一步了解 和 AWS SDKs，請參閱[適用於 的工具 Amazon Web Services](https://aws.amazon.com/tools/)。

以下是各種 AWS SDKs 中已驗證許可資源的文件連結。
+ [適用於 .NET 的 AWS SDK](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/VerifiedPermissions/NVerifiedPermissions.html)
+ [適用於 C\$1\$1 的 AWS SDK](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-verifiedpermissions/html/class_aws_1_1_verified_permissions_1_1_verified_permissions_client.html)
+ [適用於 Go 的 AWS SDK](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/verifiedpermissions)
+ [適用於 Java 的 AWS SDK](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/verifiedpermissions/package-summary.html)
+ [適用於 JavaScript 的 AWS SDK](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/verifiedpermissions/)
+ [適用於 PHP 的 AWS SDK](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-verifiedpermissions-2021-12-01.html)
+ [適用於 Python (Boto) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/verifiedpermissions.html)
+ [適用於 Ruby 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/VerifiedPermissions/Client.html)
+ [適用於 Rust 的 AWS SDK](https://docs.rs/aws-sdk-verifiedpermissions/latest/aws_sdk_verifiedpermissions/)

的下列 適用於 JavaScript 的 AWS SDK 範例`IsAuthorized`源自[於使用 Amazon Verified Permissions 和 Amazon Cognito 簡化精細授權](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/)。

```
const authResult = await avp.isAuthorized({
    principal: 'User::"alice"',
    action: 'Action::"view"',
    resource: 'Photo::"VacationPhoto94.jpg"',
    // whenever our policy references attributes of the entity,
    // isAuthorized needs an entity argument that provides    
    // those attributes
    entities: {
       entityList: [
         {
            "identifier": {
                "entityType": "User",
                "entityId": "alice"
            },
            "attributes": {
                "location": {
                    "String": "USA"
                }
            }
         }
       ]
    }
});
```

**更多開發人員資源**
+ [Amazon Verified Permissions 研討會](https://catalog.workshops.aws/verified-permissions-in-action)
+ [Amazon Verified Permissions - 資源](https://aws.amazon.com/verified-permissions/resources/)
+ [使用 Amazon Verified Permissions 實作 ASP.NET Core 應用程式的自訂授權政策提供者](https://aws.amazon.com/blogs/dotnet/implement-a-custom-authorization-policy-provider-for-asp-net-core-apps-using-amazon-verified-permissions/)
+ [使用 Amazon Verified Permissions 為商業應用程式建置權利服務](https://aws.amazon.com/blogs/security/build-an-entitlement-service-for-business-applications-using-amazon-verified-permissions/)
+ [使用 Amazon Verified Permissions 和 Amazon Cognito 簡化精細授權](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/)