本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 OpenID
要将 Amazon Kendra 索引配置为使用 OpenID 令牌进行访问控制,您需要来自 OpenID 提供程序的 JWKS(JSON Web 密钥集)网址。在大多数情况下,JWKS URL 采用以下格式:https://domain-name/.well_known/jwks.json
(如果他们关注的是 OpenID 发现)。
以下示例说明在创建索引时如何使用 OpenID 进行用户访问控制。
- Console
-
-
选择创建索引以开始创建新索引。
-
在指定索引详细信息页面上,为您的索引指定名称和描述。
-
对于 IAM 角色,选择一个角色或选择创建新角色,并指定角色名称来创建新角色。IAM 角色将带有前缀 “AmazonKendra-”。
-
将所有其他字段保留为默认值。选择下一步。
-
在配置用户访问控制页面上,在访问控制设置下,选择是以使用令牌进行访问控制。
-
在令牌配置下,选择 OpenID 作为令牌类型。
-
指定签名密钥 URL。该 URL 应指向一组 JSON Web 密钥。
-
(可选)在高级配置下:
-
指定要在 ACL 检查中使用的用户名。
-
指定要在 ACL 检查中使用的一个或多个组。
-
指定将验证颁发机构的颁发机构。
-
指定客户端 ID。您必须指定与 JWT 中的受众相匹配的正则表达式。
-
-
在配置详细信息页面中,选择开发者版本。
-
选择创建以创建索引。
-
等待您的索引创建完成。 Amazon Kendra 为您的索引配置硬件。此操作可能需要一些时间。
-
- CLI
-
要使用 JSON 输入文件创建索引,请先 AWS CLI 使用所需参数创建一个 JSON 文件:
{ "Name": "
user-context
", "Edition": "ENTERPRISE_EDITION
", "RoleArn": "arn:aws:iam::account-id
:role:/my-role
", "UserTokenConfigurations": [ { "JwtTokenTypeConfiguration": { "KeyLocation": "URL", "Issuer": "optional: specify the issuer url
", "ClaimRegex": "optional: regex to validate claims in the token
", "UserNameAttributeField": "optional: user
", "GroupAttributeField": "optional: group
", "URL": "https://example.com/.well-known/jwks.json" } } ], "UserContextPolicy": "USER_TOKEN" }您可以覆盖默认的用户和组字段名称。
UserNameAttributeField
的默认值为“user”。GroupAttributeField
的默认值为“groups”。接下来,使用输入文件调用
create-index
。例如,如果您的 JSON 文件名为create-index-openid.json
,则可以使用以下名称:aws kendra create-index --cli-input-json file://create-index-openid.json
- Python
-
response = kendra.create_index( Name='
user-context
', Edition='ENTERPRISE_EDITION
', RoleArn='arn:aws:iam::account-id
:role:/my-role
', UserTokenConfigurations=[ { "JwtTokenTypeConfiguration": { "KeyLocation": "URL", "Issuer": "optional: specify the issuer url
", "ClaimRegex": "optional: regex to validate claims in the token
", "UserNameAttributeField": "optional: user
", "GroupAttributeField": "optional: group
", "URL": "https://example.com/.well-known/jwks.json" } } ], UserContextPolicy='USER_TOKEN' )