Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Amazon 已验证权限 OIDC 身份源
以下过程将身份源添加到现有策略存储中。
在已验证权限控制台中创建新的策略存储时,您也可以创建身份源。在此过程中,您可以自动将身份源令牌中的声明导入实体属性中。选择 “引导式设置” 或 “使用 API Gateway 和身份提供商进行设置” 选项。这些选项还会创建初始策略。
在您创建策略存储之前,左侧的导航窗格中不会显示身份来源。您创建的身份来源与当前的策略存储相关联。
使用 Amazon CLI 或CreateIdentitySource在已验证权限 API create-identity-source中创建身份源时,可以省略委托人实体类型。但是,空白实体类型会创建实体类型为的身份源Amazon::Cognito。此实体名称与策略存储架构不兼容。要将 Amazon Cognito 身份与您的策略存储架构集成,您必须将委托人实体类型设置为支持的策略存储实体。
- Amazon Web Services Management Console
-
创建 OpenID Connect (OIDC) 身份源
打开已验证权限控制台。选择您的保单商店。
-
在左侧的导航窗格中,选择身份来源。
-
选择创建身份来源。
-
选择外部 OIDC 提供商。
-
在发卡机构 URL 中,输入您的 OIDC 发行人的 URL。例如,这是提供授权服务器、签名密钥以及有关您的提供商的其他信息的服务端点https://auth.example.com。您的发卡机构 URL 必须托管 OIDC 发现文档,网址为。/.well-known/openid-configuration
-
在令牌类型中,选择您希望您的应用程序提交以进行授权的 OIDC JWT 类型。有关更多信息,请参阅 将 OIDC 令牌映射到架构。
-
在将令牌声明映射到架构实体中,为身份源选择用户实体和用户声明。用户实体是您的策略存储中的一个实体,您想要引用来自 OIDC 提供商的用户。用户声明通常sub是来自您的身份证或访问令牌的索赔,该令牌包含待评估实体的唯一标识符。来自连接的 OIDC IdP 的身份将映射到选定的主体类型。
-
(可选)在 “将令牌声明映射到架构实体” 中,为身份源选择群组实体和群组声明。组实体是用户实体的父实体。团体索赔将映射到该实体。群组声明通常是来自您的 ID 或访问令牌的声明groups,其中包含要评估的实体的字符串、JSON 或以空格分隔的用户组名称字符串。来自连接的 OIDC IdP 的身份将映射到选定的主体类型。
-
在 “验证-可选” 中,输入您 URLs 希望您的策略商店在授权请求中接受的客户 IDs 或受众(如果有)。
-
选择创建身份来源。
(可选)如果您的策略存储具有架构,则必须先更新架构,让 Cedar 知道您的身份源创建的主体类型,然后才能引用从 Cedar 策略中的身份或访问令牌中提取的属性。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 OIDC 代币属性映射到 Cedar 主体属性的更多信息,请参阅。将 OIDC 令牌映射到架构
创建使用令牌中的信息做出授权决策的策略。有关更多信息,请参阅 创建 Amazon Verified Permissions 静态策略。
现在,您已经创建了身份源、更新了架构并创建了策略,请使用已验证的权限IsAuthorizedWithToken来做出授权决定。有关更多信息,请参阅 IsAuthorizedWithTokenAmazon 已验证权限 API 参考指南。
- Amazon CLI
-
创建 OIDC 身份源
您可以使用CreateIdentitySource操作创建身份源。以下示例创建了可以从 OIDC 身份提供商 (IdP) 访问经过身份验证的身份的身份源。
创建一个包含 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"
}
}
}
运行以下命令创建 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"
}
(可选)如果您的策略存储具有架构,则必须先更新架构,让 Cedar 知道您的身份源创建的主体类型,然后才能引用从 Cedar 策略中的身份或访问令牌中提取的属性。架构中的新增内容必须包含您要在 Cedar 策略中引用的属性。有关将 OIDC 代币属性映射到 Cedar 主体属性的更多信息,请参阅。将 OIDC 令牌映射到架构
创建使用令牌中的信息做出授权决策的策略。有关更多信息,请参阅 创建 Amazon Verified Permissions 静态策略。
现在,您已经创建了身份源、更新了架构并创建了策略,请使用已验证的权限IsAuthorizedWithToken来做出授权决定。有关更多信息,请参阅 IsAuthorizedWithTokenAmazon 已验证权限 API 参考指南。