在 Amazon 验证权限中实现授权 - Amazon Verified Permissions

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

在 Amazon 验证权限中实现授权

创建策略存储、策略、模板、架构和授权模型后,就可以开始使用 Amazon Verified Permissions 授权请求了。要实现已验证的权限授权,您必须将中的策略配置 AWS 与应用程序中的集成结合起来。要将已验证权限与您的应用程序集成,请添加 AWS SDK并实现调用已验证权限API并针对您的策略存储生成授权决策的方法。

使用经过验证的权限进行授权对于用户体验权限和应用程序中的API权限非常有用。

用户体验权限

控制用户对您的应用程序 UX 的访问权限。您可以只允许用户查看他们需要访问的确切表单、按钮、图形和其他资源。例如,当用户登录时,您可能需要确定其账户中是否有 “转账” 按钮。您还可以控制用户可以执行的操作。例如,在同一个银行应用程序中,您可能需要确定是否允许您的用户更改交易类别。

API权限

控制用户对数据的访问权限。应用程序通常是分布式系统的一部分,并从外部引入信息APIs。在银行应用程序的示例中,Verified Permissions 允许显示 “转账” 按钮,当您的用户发起转账时,必须做出更复杂的授权决定。Verified P API ermissions 可以授权列出符合条件的转账目标的目标账户的请求,然后授权将转账推送到其他账户的请求。

说明此内容的示例来自策略存储库示例。要继续操作,请在您的测试环境中创建DigitalPetStore示例策略存储。

有关使用批量授权实现 UX 权限的端到端示例应用程序,请参阅AWS 安全博客上的 “使用 Amazon 已验证的权限进行大规模细粒度授权”。

可供授权的可用API操作

已验证的权限API具有以下授权操作。

IsAuthorized

IsAuthorizedAPI操作是使用已验证权限的授权请求的入口点。您必须提交委托人、操作、资源、上下文和实体元素。已验证权限会根据您的策略存储架构验证您请求中的实体。然后,Verified Permissions 会根据请求的策略存储区中适用于请求中实体的所有策略来评估您的请求。

IsAuthorizedWithToken

IsAuthorizedWithToken操作根据 Amazon Cognito JSON 网络令牌 () JWTs 中的用户数据生成授权请求。经过验证的权限可直接使用 Amazon Cognito 作为您的策略存储中的身份来源。Verified Permissions 会根据用户 ID 或访问令牌中的声明填充您的请求中的委托人的所有属性。您可以通过 Amazon Cognito 用户池中的用户属性或群组成员资格来授权操作和资源。

您不能在IsAuthorizedWithToken请求中包含有关群组或用户主体类型的信息。您必须将所有主体数据填充到您JWT提供的数据中。

BatchIsAuthorized

BatchIsAuthorized操作在单个API请求中处理针对单个委托人或资源的多个授权决策。此操作将请求分组为单个批处理操作,从而最大限度地减少配额使用量,并返回最多 30 个复杂嵌套操作中每个操作的授权决策。通过对单个资源的批量授权,您可以筛选用户可以对资源执行的操作。通过对单个委托人的批量授权,您可以筛选用户可以对其采取操作的资源。

BatchIsAuthorizedWithToken

BatchIsAuthorizedWithToken操作在一个API请求中为单个委托人处理多个授权决策。委托人由您的策略存储身份源以 ID 或访问令牌形式提供。此操作将请求分组为单个批处理操作,以最大限度地减少配额使用量,并返回最多 30 个操作和资源请求中每个请求的授权决策。在您的策略中,您可以通过其属性或其在 Amazon Cognito 用户池中的群组成员身份授权其访问权限。

与一样IsAuthorizedWithToken,您不能在BatchIsAuthorizedWithToken请求中包含有关群组或用户委托人类型的信息。您必须将所有主体数据填充到您JWT提供的数据中。