

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 OpenID
<a name="create-index-access-control-tokens-openid"></a>

若要設定 Amazon Kendra 索引以使用 OpenID 字符進行存取控制，您需要 OpenID 供應商的 OpenID(JSON Web 金鑰集） URL。在大多數情況下，JWKS URL 的格式如下 （如果遵循 openId 探索）`https://domain-name/.well_known/jwks.json`。

下列範例示範如何在建立索引時使用 OpenID 字符進行使用者存取控制。

------
#### [ Console ]

1. 選擇**建立索引**以開始建立新的索引。

1. 在**指定索引詳細資訊**頁面上，為您的索引指定名稱和描述。

1. 針對**IAM 角色**，選取角色或選取**建立新角色**，並指定角色名稱以建立新的角色。IAM 角色的字首為「AmazonKendra-」。

1. 將所有其他欄位保留為預設值。選擇**下一步**。

1. 在**設定使用者存取控制**頁面的**存取控制設定**下，選擇**是**以使用字符進行存取控制。

1. 在**字符組態**下，選取 **OpenID** 做為**字符類型**。

1. 指定**簽署金鑰 URL**。URL 應指向一組 JSON Web 金鑰。

1. 在**進階組態**下*選用*：

   1. 指定要在 ACL 檢查中使用的**使用者名稱**。

   1. 指定要在 ACL 檢查中使用的一或多個**群組**。

   1. 指定將驗證字符發行**者的發行**者。

   1. 指定**用戶端 ID (s)**。您必須指定符合 JWT 中對象的規則表達式。

1. 在**佈建詳細資訊**頁面中，選擇**開發人員版本**。

1. 選擇**建立**以建立您的索引。

1. 等待您的索引建立。 Amazon Kendra 佈建索引的硬體。此操作可能需要一些時間。

------
#### [ CLI ]

若要 AWS CLI 使用 JSON 輸入檔案使用 建立索引，請先使用所需的參數建立 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`為「使用者」。的預設值`GroupAttributeField`為「群組」。

接著，`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'
)
```

------