

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

액세스 제어에 OpenID 토큰을 사용하도록 Amazon Kendra 인덱스를 구성하려면 OpenID 공급자의 JWKS(JSON 웹 키 집합) 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 웹 키 집합을 가리켜야 합니다.

1. 선택 사항 **고급 구성**에서:** 

   1. ACL 검사에 사용할 **사용자 이름**을 지정합니다.

   1. ACL 검사에 사용할 **그룹**을 하나 이상 지정합니다.

   1. 토큰 발행자를 검증할 **발행자**를 지정합니다.

   1. **클라이언트 ID**를 지정합니다. JWT의 대상과 일치하는 정규 표현식을 지정해야 합니다.

1. **프로비저닝 세부 정보** 페이지에서 **개발자 에디션**을 선택합니다.

1. **생성**을 선택하여 인덱스를 생성합니다.

1. 인덱스가 생성될 때까지 기다리세요. 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'
)
```

------