JWT 베어러 토큰 생성
JWT 전달자 플로우에서 사용되는 JWT 전달자 토큰을 작성하려면 이 주제의 정보를 사용하십시오.
JWT 전달자 페이로드 청구
JWT 전달자 페이로드에는 다음 청구가 포함되어야 합니다.| 청구 이름 | 설명 | 유효값 |
|---|---|---|
| iss | JWT를 발행한 엔티티의 고유 ID | JWT 발행자의 유효한 URI입니다. |
| sub | 프린시펄 주제 ID | 사용자의 고유 ID입니다. |
| aud | 호출 중인 OIDC 엔드포인트 | https://<tenantId>/oidc/endpoint/default/token |
| exp | JWT 만료 시간 | UTC로 측정된 1970-01-01T0:0:0Z부터의 시간(초)입니다. 참고: JWT의 만료 시간은 86,400초를 초과할 수 없습니다. |
| jti | JWT ID | 임의로 생성된 opaque 문자열입니다. |
| 청구 이름 | 설명 | 유효값 |
|---|---|---|
| nbf | JWT 이전 시간이 아님 | UTC로 측정된 1970-01-01T0:0:0Z부터의 시간(초)입니다. |
| iat | JWT 작성 시간 | UTC로 측정된 1970-01-01T0:0:0Z부터의 시간(초)입니다. 참고: JWT 만료 시간은 과거 86,400초를 초과할 수 없습니다. |
| 범위 | 프린시펄 주제 범위 | `sub`가 속한 ID 소스 범위입니다. |
JWT 전달자 페이로드 예제
```
{
"iss": "https://www.relyingparty.com",
"sub": "user@idsource.com",
"aud": "https://sometenant.ice.com/oidc/endpoint/default/token",
"exp": 1324298520,
"jti": "araiov8werli2awerlj"
}
```
지원되는 알고리즘
| 용도 | 지원되는 알고리즘 |
|---|---|
| 서명을 위한 JWS 'alg' | 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'PS256', 'PS384', 'PS512' |
| 키 관리를 위한 JWE 'alg' | 'RSA1_5', 'RSA-OAEP', 'RSA-OAEP-256', 'A128KW', 'A192KW', 'A256KW', 'A128GCMKW', 'A192GCMKW', 'A256GCMKW' |
| 컨텐츠 암호화를 위한 JWE 'enc' | 'A128GCM', 'A192GCM', 'A256GCM' |
참고: JWT 베어러가 서명 및 암호화 모두 적용된 경우, 외부 JWT인 JWE 헤더는 콘텐츠 유형 헤더를 'JWT'로 설정하여 중첩된 JWT임을 명시해야 합니다. 예를 들어,
'cty':'JWT'입니다.jwks_uri에서 게시되어 있는지 확인하십시오. jwks_uri를 사용할 수 없으면 공용 인증서를 시스템에 추가하십시오. ‘인증서 관리’를 참조하십시오.JWT 베어러가 암호화되어 있고 비대칭 알고리즘이 사용되는 경우, OpenID Connect Provider의 jwks 엔드포인트에 https://<tenantId>/v1.0/endpoint/default/jwks 게시된 공개 키를 사용할 수 있습니다. 서명되거나 또는 암호화된 JWT에
사용되는 키를 식별하기 위해 `kid` 헤더가 포함되어 있는지 확인하십시오.
요청 예제
JWT 전달자 토큰이 작성된 후 요청을 토큰 엔드포인트에 제출하여 JWT 전달자 토큰을 액세스 토큰과 교환할 수 있습니다.```
curl -ki https://<tenantId>/v1.0/endpoint/default/token
-d "grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt
-bearer&client_secret=<secret>&client_id=<clientId>
&scope=openid+email&assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6IjE2In0.eyJpc3Mi..."
```