클라이언트 시크릿 JWT 및 개인 키 JWT 생성

이 주제의 정보를 사용하여 클라이언트 인증을 위한 클라이언트 시크릿 JWT 및 개인 키 JWT를 작성하십시오.

JWT 전달자 페이로드 청구

JWT 전달자 페이로드에는 다음 청구가 포함되어야 합니다.
표 1. MUST의 주장
청구 이름 설명 유효값
iss JWT를 발행한 엔티티의 고유 ID 클라이언트 ID.
sub 프린시펄 주제 ID 클라이언트 ID.
aud 유효한 값은 잘 알려진 엔드포인트(https://<tenantId>/oidc/endpoint/default/.well-known/openid-configuration)에 게시된 인증 서버의 발급자입니다. https://<tenantId>/oidc/endpoint/default
exp JWT 만료 시간 UTC로 측정된 1970-01-01T0:0:0Z부터의 시간(초)입니다.
참고: JWT의 만료 시간은 86,400초를 초과할 수 없습니다.
jti JWT ID 임의로 생성된 opaque 문자열입니다.
JWT 전달자 페이로드에는 다음과 같은 청구가 포함될 수 있습니다.
표 2. MAY의 주장
청구 이름 설명 유효값
nbf JWT 이전 시간이 아님 UTC로 측정된 1970-01-01T0:0:0Z부터의 시간(초)입니다.
iat JWT 작성 시간 UTC로 측정된 1970-01-01T0:0:0Z부터의 시간(초)입니다.
참고: JWT 생성 시점은 과거 86,400초를 초과할 수 없습니다.

JWT 페이로드 예제

```
{
  "iss": "29e81c80-b507-463c-b542-5a1177b37808",
  "sub": "29e81c80-b507-463c-b542-5a1177b37808",
  "aud": "https://sometenant.ice.com/oidc/endpoint/default/token",
  "exp": 1324298520,
  "jti": "araiov8werli2awerlj"
}
```

지원되는 알고리즘

표 3. 지원되는 알고리즘
용도 지원되는 알고리즘
서명을 위한 JWS 'alg' 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'PS256', 'PS384', 'PS512
JWT는 서명되어야 합니다. JWT에 서명하는 데 사용되는 키가 jwks_uri에서 게시되어 있는지 확인하십시오. jwks_uri를 사용할 수 없으면 공용 인증서를 시스템에 추가하십시오. ‘인증서 관리’를 참조하십시오.

서명된 JWT에 사용되는 키를 고유하게 식별하기 위한 'kid' 헤더가 포함되어 있는지 확인하십시오.

요청 예제

JWT 토큰이 작성되고 나면, JWT를 클라이언트 권한 정보로 사용하여 토큰 엔드포인트에 요청을 제출할 수 있습니다.
```
curl -ki https://<tenantId>/v1.0/endpoint/default/token
 -d "grant_type=password&client_id=87df91dc-63de-4765-8701-b59cc8bd9e11&scope=openid
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGci..."
```

client_assertion_type은 항상 urn:ietf:params:oauth:client-assertion-type:jwt-bearer여야 합니다.