JWT 생성
IBM® API ConnectAI Gateway 에서 JWT 생성 보안 정책을 사용하여 JWT (JSON Web Token) 를 생성하십시오.
게이트웨이 지원
| 게이트웨이 | 정책 버전 |
|---|---|
| DataPower® Gateway (v5 compatible) | 1.0.0 |
| DataPower API Gateway | 2.1.0 |
이 항목에서는 어셈블리 사용자 인터페이스에서 정책을 구성하는 방법을 설명합니다. OpenAPI 소스에서 정책을 구성하는 방법에 대한 자세한 내용은 jwt-generate를 참조하십시오.
정보
JWT(JSON Web Token)는 두 당사자 사이에서 전송할 청구를 나타내는, 안전한 URL을 사용하는 압축된 방식입니다. JWT 생성 정책을 사용하면 청구를 생성하고 청구를 JWS (JSON Web Signature) 구조의 페이로드로 사용할지 또는 JWE (JSON Web Encryption) 구조의 일반 텍스트로 사용할지 여부를 구성할 수 있습니다. JWS 및 JWE 모두에 대한 암호 자료를 지정하면 둘 다 디지털 서명 및 암호화된, 중첩된 JWT를 생성합니다. 그런 다음 JWT는 Bearer 토큰 (기본 옵션) 으로 권한 부여 헤더에 지정되거나 JSON Web Token (JWT) 특성 (지정된 경우) 의 런타임 변수에 지정됩니다.
- 알고리즘 유형 HS256, HS384, HS512의 경우 참조된 암호 오브젝트는 공유되는 비밀 키여야 합니다.
- 알고리즘 유형 RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512의 경우 참조된 암호 오브젝트는 암호 키(개인 키)여야 합니다.
- 암호 자료는 JWK(JSON Web Key)를 통해 제공할 수 있습니다.
- 암호 오브젝트 및 JWK 모두 지정하면 JWT에 서명하는 데 암호 오브젝트를 사용합니다.
전제조건
- 하나 이상의 암호화 객체(crypto objects)를 사용하는 경우, 해당 객체들은 DataPower 어플라이언스의 API ConnectAI Gateway 도메인 내에 위치해야 합니다. 암호 오브젝트는 JWT 컨텐츠에 서명하거나 이를 암호화하는 데 필요한 공유되는 비밀 키 또는 인증서를 참조해야 합니다.
- JWK(JSON Web Key)를 사용하는 경우 런타임 변수에서 참조해야 합니다.
특성
다음 표에서는 정책 특성을 나열하고, 특성이 필수인지 여부를 표시하며, 올바른 입력 값과 기본 입력 값을 지정하고, 값의 데이터 유형을 지정합니다.
| 특성 레이블 | 필수 | 설명 | 데이터 유형 |
|---|---|---|---|
| 제목 | 아니오 | 해당 정책의 제목입니다. 기본값은 |
문자열 |
| 설명 | 아니오 | 정책의 설명입니다. | 문자열 |
| JWT(JSON Web Token) | 아니오 | 생성된 JWT를 배치할 런타임 변수입니다. 기본값은 |
문자열 |
| JWT ID 청구 | 아니오 | JTI(JWT ID) 청구를 JWT에 추가할지 여부를 표시합니다. 선택한 경우
특성은 |
부울 |
| 발행자 청구 | 예 | 발행자(iss) 청구 문자열을 검색할 수 있는 런타임 변수입니다. 이 청구는 JWT를 발행한 프린시펄을 나타냅니다. 기본값은
|
문자열 |
| 주제 청구 | 아니오 | 주제(sub) 청구 문자열을 검색할 수 있는 런타임 변수입니다. | 문자열 |
| 대상 청구 | 아니오 | 대상(aud) 청구 문자열을 검색할 수 있는 런타임 변수입니다. 쉼표로 구분된 문자열을 사용하여 여러 변수를 설정합니다. | 문자열 |
| 유효 기간 | 예 | 현재 날짜 및 시간에 추가된 시간 길이(초)로서, JWT가 유효한 것으로 간주되는 시간입니다. 기본값은 |
정수 |
| 개인용 청구 | 아니오 | JSON 청구의 올바른 JSON 세트를 검색할 수 있는 런타임 변수입니다. 이 청구는 이전에 지정된 청구 세트에 추가됩니다. | 문자열 |
| JWK 변수 이름 서명 | 아니오 | JWT에 서명하는 데 사용되는 JWK를 포함하는 런타임 변수.1 | 문자열 |
| 암호화 알고리즘 | 아니오 | 사용할 암호화 알고리즘입니다. 유효값은 다음과 같습니다.
|
문자열 |
| 암호 오브젝트 서명 | 아니오 | JWT에 서명하는 데 사용할 암호화 객체.1 | 문자열 |
| KID 값의 부호 | 아니오 | JWT 서명을 위한 사용자 지정 kid 값. |
문자열 |
| 암호화 알고리즘 | 아니오 | 사용할 암호화 알고리즘입니다. 유효값은 다음과 같습니다.
|
문자열 |
| JWK 변수 이름 암호화 | 아니오 | JWT 암호화에 사용할 JWK가 포함된 런타임 변수입니다. | 문자열 |
| 키 암호화 알고리즘 | 아니오 | 사용할 키 암호화 알고리즘입니다. 유효값은 다음과 같습니다.
|
문자열 |
| 암호 오브젝트 암호화 | 아니오 | 청구 암호화에 사용할 암호 오브젝트입니다. | 문자열 |
| KID 값 암호화 | 아니오 | JWT 암호화를 위한 사용자 지정 kid 값. |
문자열 |
예
- jwt-generate:
version: 2.1.0
title: jwt-generate
description: New jwt-generate v2.1.0 policy.
jwt: generated.jwt
jti-claim: true
iss-claim: iss.claim
sub-claim: sub.claim
aud-claim: aud.claim
exp-claim: 3600
private-claims: private.claims
jws-jwk: jws.jwk
jws-alg: HS256
jws-crypto: jwsCryptoObjectName
custom-kid-value-jws: jws.kid
jwe-enc: A128CBC-HS256
jwe-jwk: jwe.jwk
jwe-alg: RSA1_5
jwe-crypto: jweCryptoObjectName
custom-kid-value-jwe: jwe.kid
오류
RuntimeError- 정책 실행 중에 발생하는 모든 오류를 캡처하는 일반 오류입니다. 실패한 경우 기본 JOSE 모듈에서 수신된 자세한 오류 메시지는 오류 메시지로 기본 시스템 로그에 기록됩니다. 이 자세한 오류 메시지는 런타임 변수 jwt-generate.error-message에도 지정되므로, 발견을 통해 검색할 수 있습니다.
Invalid-JWT-Generate 캐치가 설정되지 않은 경우, 실패 시 JWT 생성 정책 은 500 오류 코드( HTTP )를 반환합니다. 기본 JOSE 모듈에서 자세한 오류 메시지는 시스템 로그에서 찾을 수 있습니다.