创建 Amazon 已验证权限 OIDC 身份源 - Amazon Verified Permissions

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

创建 Amazon 已验证权限 OIDC 身份源

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

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

注意

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

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

AWS Management Console
创建 OpenID Connect (OIDC) 身份源
  1. 打开已验证权限控制台。选择您的保单商店。

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

  3. 选择创建身份来源

  4. 选择外部 OIDC 提供商。

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

  6. 令牌类型中,选择您希望您的应用程序提交以进行授权的 OIDC JWT 类型。有关更多信息,请参阅 将 OIDC 令牌映射到架构

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

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

  9. 在 “验证-可选” 中,输入您 URLs 希望您的策略商店在授权请求中接受的客户 IDs 或受众(如果有)。

  10. 选择创建身份来源

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

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

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

AWS CLI
创建 OIDC 身份源

您可以使用CreateIdentitySource操作创建身份源。以下示例创建了可以从 OIDC 身份提供商 (IdP) 访问经过身份验证的身份的身份源。

  1. 创建一个包含 OIDC IdP 以下详细信息的config.txt文件,供命令的--configuration参数使用。create-identity-source

    { "openIdConnectConfiguration": { "issuer": "https://auth.example.com", "tokenSelection": { "identityTokenOnly": { "clientIds":["1example23456789"], "principalIdClaim": "sub" }, }, "entityIdPrefix": "MyOIDCProvider", "groupConfiguration": { "groupClaim": "groups", "groupEntityType": "MyCorp::UserGroup" } } }
  2. 运行以下命令创建 OIDC 身份源。

    $ 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 策略中引用的属性。有关将 OIDC 代币属性映射到 Cedar 主体属性的更多信息,请参阅。将 OIDC 令牌映射到架构

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

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