创建 Amazon Verified Permissions 身份来源 - Amazon Verified Permissions

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

创建 Amazon Verified Permissions 身份来源

以下过程将身份源添加到现有策略存储中。添加身份源后,必须向架构中添加属性

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

注意

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

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

亚马逊 Cognito 身份来源

AWS Management Console
要创建 Amazon Cognito 用户群体身份来源,请按以下步骤操作:
  1. 打开 Verified Permissions 控制台,网址为 https://console.aws.amazon.com/verifiedpermissions/。选择您的保单商店。

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

  3. 选择创建身份来源

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

  5. 主体配置中,为身份源选择主体类型。连接的 Amazon Cognito 用户群体中的身份将映射到所选的主体类型。

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

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

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

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

  8. 选择创建身份来源

  9. 在引用从 Cedar 策略中的身份或访问令牌中提取的属性之前,必须更新架构,让 Cedar 知道您的身份来源创建的主体类型。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 Amazon Cognito 令牌属性映射到 Cedar 主体属性的更多信息,请参阅在架构和策略中使用身份源

    当您创建与 API 关联的策略存储时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个架构,其中您的委托人类型将填充用户池属性。

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

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

以下 config.txt 文件包含 Amazon Cognito 用户群体的详细信息,供 create-identity-source 命令中的 --configuration 参数使用。

{ "cognitoUserPoolConfiguration": { "userPoolArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_1a2b3c4d5", "clientIds":["a1b2c3d4e5f6g7h8i9j0kalbmc"], "groupConfiguration": { "groupEntityType": "MyCorp::UserGroup" } } }

命令:

$ 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 主体属性的更多信息,请参阅在架构和策略中使用身份源

当您创建与 API 关联的策略存储时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个架构,其中您的委托人类型将填充用户池属性。

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

OIDC 身份来源

AWS Management Console
创建 OpenID Connect (OIDC) 身份源
  1. 打开 Verified Permissions 控制台,网址为 https://console.aws.amazon.com/verifiedpermissions/。选择您的保单商店。

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

  3. 选择创建身份来源

  4. 选择外部 OIDC 提供商。

  5. 发卡机构 URL 中,输入您的 OIDC 发行人的 URL。例如,这是提供授权服务器、签名密钥以及有关您的提供商的其他信息的服务端点https://auth.example.com。您的发卡机构 URL 必须托管 OIDC 发现文档,网址为。/.well-known/openid-configuration

  6. 令牌类型中,选择您希望您的应用程序提交以进行授权的 OIDC JWT 类型。有关更多信息,请参阅 在架构和策略中使用身份源

  7. 用户和群组声明中,为身份源选择用户实体和用户声明用户实体是您的策略存储中的一个实体,您想要引用来自 OIDC 提供商的用户。用户声明通常sub是来自您的身份证或访问令牌的索赔,该令牌包含待评估实体的唯一标识符。来自连接的 OIDC IdP 的身份将映射到选定的主体类型。

  8. 在 “用户和群组声明” 中,为身份来源选择群组实体和群组声明组实体用户实体的父实体。团体索赔将映射到该实体。群组声明通常是来自您的 ID 或访问令牌的声明groups,其中包含要评估的实体的字符串、JSON 或以空格分隔的用户组名称字符串。来自连接的 OIDC IdP 的身份将映射到选定的主体类型。

  9. 受众验证中,输入您希望您的政策商店在授权请求中接受的客户端 ID 或受众网址(如果有)。

  10. 选择创建身份来源

  11. 更新您的架构,让 Cedar 知道您的身份源创建的主体类型。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 Amazon Cognito 令牌属性映射到 Cedar 主体属性的更多信息,请参阅在架构和策略中使用身份源

    当您创建与 API 关联的策略存储时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个架构,其中您的委托人类型将填充用户池属性。

AWS CLI
创建 OIDC 身份源

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

以下config.txt文件包含供命令--configuration参数使用的 OIDC IdP 的详细信息。create-identity-source此示例为 ID 令牌创建 OIDC 身份源。

{ "openIdConnectConfiguration": { "issuer": "https://auth.example.com", "tokenSelection": { "identityTokenOnly": { "clientIds":["1example23456789"], "principalIdClaim": "sub" }, }, "entityIdPrefix": "MyOIDCProvider", "groupConfiguration": { "groupClaim": "groups", "groupEntityType": "MyCorp::UserGroup" } } }

以下config.txt文件包含供命令--configuration参数使用的 OIDC IdP 的详细信息。create-identity-source此示例为访问令牌创建 OIDC 身份源。

{ "openIdConnectConfiguration": { "issuer": "https://auth.example.com", "tokenSelection": { "accessTokenOnly": { "audiences":["https://auth.example.com"], "principalIdClaim": "sub" }, }, "entityIdPrefix": "MyOIDCProvider", "groupConfiguration": { "groupClaim": "groups", "groupEntityType": "MyCorp::UserGroup" } } }

命令:

$ 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 主体属性的更多信息,请参阅在架构和策略中使用身份源

当您创建与 API 关联的策略存储时,Verified Permissions 会查询您的用户池以获取用户属性,并创建一个架构,其中您的委托人类型将填充用户池属性。