Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建亚马逊验证权限亚马逊 Cognito 身份源
以下过程将身份源添加到现有策略存储中。
在已验证权限控制台中创建新的策略存储时,您也可以创建身份源。在此过程中,您可以自动将身份源令牌中的声明导入实体属性中。选择 “引导式设置” 或 “使用 API Gateway 和身份提供商进行设置” 选项。这些选项还会创建初始策略。
在您创建策略存储之前,左侧的导航窗格中不会显示身份来源。您创建的身份来源与当前的策略存储相关联。
使用 Amazon CLI 或CreateIdentitySource在已验证权限 API create-identity-source中创建身份源时,可以省略委托人实体类型。但是,空白实体类型会创建实体类型为的身份源Amazon::Cognito。此实体名称与策略存储架构不兼容。要将 Amazon Cognito 身份与您的策略存储架构集成,您必须将委托人实体类型设置为支持的策略存储实体。
- Amazon Web Services Management Console
-
要创建 Amazon Cognito 用户群体身份来源,请按以下步骤操作:
打开已验证权限控制台。选择您的保单商店。
-
在左侧的导航窗格中,选择身份来源。
-
选择创建身份来源。
-
在 Cognito 用户池详细信息中,选择 Amazon Web Services 区域 并输入您的身份源的用户池 ID。
-
在承担者配置中,对于 “委托人类型”,为来自该来源的委托人选择实体类型。连接的 Amazon Cognito 用户群体中的身份将映射到所选的主体类型。
-
如果要映射用户池cognito:groups声明,请在 “群组配置” 中选择 “使用 Cognito 群组”。选择作为主体类型的父项的实体类型。
-
在客户端应用程序验证中,选择是否验证客户端应用程序 IDs。
-
选择创建身份来源。
(可选)如果您的策略存储具有架构,则必须先更新架构,让 Cedar 知道您的身份源创建的主体类型,然后才能引用从 Cedar 策略中的身份或访问令牌中提取的属性。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 Amazon Cognito 令牌属性映射到 Cedar 主体属性的更多信息,请参阅将 Amazon Cognito 令牌映射到架构。
当您创建与 API 关联的策略存储或在创建策略存储时使用 API Gateway 和身份提供商设置时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个使用用户池属性填充您的委托人类型的架构。
创建使用令牌中的信息做出授权决策的策略。有关更多信息,请参阅 创建 Amazon Verified Permissions 静态策略。
现在,您已经创建了身份源、更新了架构并创建了策略,请使用已验证的权限IsAuthorizedWithToken来做出授权决定。有关更多信息,请参阅 IsAuthorizedWithTokenAmazon 已验证权限 API 参考指南。
- Amazon CLI
-
要创建 Amazon Cognito 用户群体身份来源,请按以下步骤操作:
您可以使用CreateIdentitySource操作创建身份源。以下示例创建了一个身份来源,可以从 Amazon Cognito 用户群体访问经过身份验证的身份。
创建一个包含 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"
}
}
}
运行以下命令创建 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"
}
(可选)如果您的策略存储具有架构,则必须先更新架构,让 Cedar 知道您的身份源创建的主体类型,然后才能引用从 Cedar 策略中的身份或访问令牌中提取的属性。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 Amazon Cognito 令牌属性映射到 Cedar 主体属性的更多信息,请参阅将 Amazon Cognito 令牌映射到架构。
当您创建与 API 关联的策略存储或在创建策略存储时使用 API Gateway 和身份提供商设置时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个使用用户池属性填充您的委托人类型的架构。
创建使用令牌中的信息做出授权决策的策略。有关更多信息,请参阅 创建 Amazon Verified Permissions 静态策略。
现在,您已经创建了身份源、更新了架构并创建了策略,请使用已验证的权限IsAuthorizedWithToken来做出授权决定。有关更多信息,请参阅 IsAuthorizedWithTokenAmazon 已验证权限 API 参考指南。
有关在 Verified Permissions 中为经过身份验证的用户使用 Amazon Cognito 访问令牌和身份令牌的更多信息,请参阅《Amazon Cognito 开发人员指南》中的使用 Amazon Verified Permissions 进行授权。