创建亚马逊验证权限亚马逊 Cognito 身份源 - Amazon Verified Permissions

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

创建亚马逊验证权限亚马逊 Cognito 身份源

以下过程将身份源添加到现有策略存储中。

在已验证权限控制台中创建新的策略存储时,您也可以创建身份源。在此过程中,您可以自动将身份源令牌中的声明导入实体属性中。选择 “引导式设置” 或 “使用 API Gateway 和身份提供商进行设置” 选项。这些选项还会创建初始策略。

注意

在您创建策略存储之前,左侧的导航窗格中不会显示身份来源。您创建的身份来源与当前的策略存储相关联。

使用 AWS CLI 或CreateIdentitySource在已验证权限 API create-identity-source中创建身份源时,可以省略委托人实体类型。但是,空白实体类型会创建实体类型为的身份源AWS::Cognito。此实体名称与策略存储架构不兼容。要将 Amazon Cognito 身份与您的策略存储架构集成,您必须将委托人实体类型设置为支持的策略存储实体。

AWS Management Console
要创建 Amazon Cognito 用户群体身份来源,请按以下步骤操作:
  1. 打开已验证权限控制台。选择您的保单商店。

  2. 在左侧的导航窗格中,选择身份来源

  3. 选择创建身份来源

  4. Cognito 用户池详细信息中,选择 AWS 区域 并输入您的身份源的用户池 ID

  5. 承担者配置中,对于 “委托人类型”,为来自该来源的委托人选择实体类型。连接的 Amazon Cognito 用户群体中的身份将映射到所选的主体类型。

  6. 如果要映射用户池cognito:groups声明,请在 “组配置” 中选择 “使用 Cognito 群组”。选择作为主体类型的父项的实体类型。

  7. 客户端应用程序验证中,选择是否验证客户端应用程序 IDs。

    • 要验证客户端应用程序 IDs,请选择 “仅接受具有匹配客户端应用程序的令牌” IDs。为每个要验证的客户端应用程序 ID 选择添加新客户端应用程序 ID。要删除已添加的客户端应用程序 ID,请选择该客户端应用程序 ID 旁边的删除

    • IDs如果您不想验证客户端应用程序,请选择不验证客户端应用程序 IDs。

  8. 选择创建身份来源

  9. (可选)如果您的策略存储具有架构,则必须先更新架构,让 Cedar 知道您的身份源创建的主体类型,然后才能引用从 Cedar 策略中的身份或访问令牌中提取的属性。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 Amazon Cognito 令牌属性映射到 Cedar 主体属性的更多信息,请参阅将 Amazon Cognito 令牌映射到架构

    注意

    当您创建API 关联的策略存储或在创建策略存储时使用 API Gateway 和身份提供商设置时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个使用用户池属性填充您的委托人类型的架构。

  10. 创建使用令牌中的信息做出授权决策的策略。有关更多信息,请参阅 创建 Amazon Verified Permissions 静态策略

现在,您已经创建了身份源、更新了架构并创建了策略,请使用已验证的权限IsAuthorizedWithToken来做出授权决定。有关更多信息,请参阅 IsAuthorizedWithTokenAmazon 已验证权限 API 参考指南

AWS CLI
要创建 Amazon Cognito 用户群体身份来源,请按以下步骤操作:

您可以使用CreateIdentitySource操作创建身份源。以下示例创建了一个身份来源,可以从 Amazon Cognito 用户群体访问经过身份验证的身份。

  1. 创建一个包含 Amazon Cognito 用户池的以下详细信息的config.txt文件,供命令中的--configurationcreate-identity-source参数使用。

    { "cognitoUserPoolConfiguration": { "userPoolArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_1a2b3c4d5", "clientIds":["a1b2c3d4e5f6g7h8i9j0kalbmc"], "groupConfiguration": { "groupEntityType": "MyCorp::UserGroup" } } }
  2. 运行以下命令创建 Amazon Cognito 身份源。

    $ aws verifiedpermissions create-identity-source \ --configuration file://config.txt \ --principal-entity-type "User" \ --policy-store-id 123456789012 { "createdDate": "2023-05-19T20:30:28.214829+00:00", "identitySourceId": "ISEXAMPLEabcdefg111111", "lastUpdatedDate": "2023-05-19T20:30:28.214829+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111" }
  3. (可选)如果您的策略存储具有架构,则必须先更新架构,让 Cedar 知道您的身份源创建的主体类型,然后才能引用从 Cedar 策略中的身份或访问令牌中提取的属性。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 Amazon Cognito 令牌属性映射到 Cedar 主体属性的更多信息,请参阅将 Amazon Cognito 令牌映射到架构

    注意

    当您创建API 关联的策略存储或在创建策略存储时使用 API Gateway 和身份提供商设置时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个使用用户池属性填充您的委托人类型的架构。

  4. 创建使用令牌中的信息做出授权决策的策略。有关更多信息,请参阅 创建 Amazon Verified Permissions 静态策略

现在,您已经创建了身份源、更新了架构并创建了策略,请使用已验证的权限IsAuthorizedWithToken来做出授权决定。有关更多信息,请参阅 IsAuthorizedWithTokenAmazon 已验证权限 API 参考指南

有关在 Verified Permissions 中为经过身份验证的用户使用 Amazon Cognito 访问令牌和身份令牌的更多信息,请参阅《Amazon Cognito 开发人员指南》中的使用 Amazon Verified Permissions 进行授权