

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

# 将您的授权模型与应用程序集成
与应用程序集成

要在您的应用程序中实施 Amazon Verified Permissions，您必须定义您希望应用程序强制执行的策略和架构。在授权模型到位并经过测试后，下一步是从强制执行开始生成 API 请求。为此，您必须设置应用程序逻辑以收集用户数据并将其填充到授权请求中。

**应用程序如何使用已验证的权限授权请求**

1. 收集有关当前用户的信息。通常，用户的详细信息在经过身份验证的会话的详细信息中提供，例如 JWT 或 Web 会话 Cookie。这些用户数据可能来自链接到您的策略存储库的 Amazon Cognito [身份来源](identity-sources.md#identity-sources.title)，也可能来自其他 Open [ID Connect (O](cognito-validation.md#identity-sources-other-idp.title) IDC) 提供商。

1. 收集有关用户想要访问的资源的信息。通常，当用户做出要求您的应用程序加载新资产的选择时，您的应用程序将收到有关资源的信息。

1. 确定您的用户想要采取的操作。

1. 生成对已验证权限的授权请求，其中包含用户尝试操作的委托人、操作、资源和实体。verified Permissions 会根据您的策略存储中的策略评估请求并返回授权决定。

1. 您的应用程序读取来自已验证权限的允许或拒绝响应，并强制执行对用户请求的决定。

已验证权限 API 操作内置于中 AWS SDKs。要在应用程序中加入经过验证的权限，请将适用于您所选语言的 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)
+ [AWS SDK for Python (Boto)](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 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 已验证权限研讨会](https://catalog.workshops.aws/verified-permissions-in-action)
+ [Amazon 已验证权限-资源](https://aws.amazon.com/verified-permissions/resources/)
+ [使用亚马逊验证权限为 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 验证权限为业务应用程序构建授权服务](https://aws.amazon.com/blogs/security/build-an-entitlement-service-for-business-applications-using-amazon-verified-permissions/)
+ [使用亚马逊认证权限和 Amazon Cognito 简化细粒度授权](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/)