jwt-generate

IBM® API Connect 에서 JWT 생성 보안 정책을 사용하여 JWT (JSON Web Token) 를 생성하십시오.

게이트웨이 지원

표 1. 이 정책을 지원하는 게이트웨이 및 해당 정책 버전을 표시하는 테이블
게이트웨이 정책 버전
DataPower® Gateway (v5 compatible) 1.0.0
DataPower API Gateway 2.1.0

이 주제에서는 OpenAPI 소스에서 정책을 구성하는 방법에 대해 설명합니다. 어셈블리 사용자 인터페이스에서 정책을 구성하는 방법에 대한 세부사항은 JWT 생성을 참조하십시오.

참고:
  • 알고리즘 유형 HS256, HS384, HS512의 경우 참조된 암호 오브젝트는 공유되는 비밀 키여야 합니다.
  • 알고리즘 유형 RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512의 경우 참조된 암호 오브젝트는 암호 키(개인 키)여야 합니다.
  • 암호 자료는 JWK(JSON Web Key)를 통해 제공할 수 있습니다.
  • 암호 오브젝트 및 JWK 모두 지정하면 JWT에 서명하는 데 암호 오브젝트를 사용합니다.

정보

jwt-generate 정책의 구조는 다음과 같습니다.
- jwt-generate:
  version: version
  title: title
  description: description
  jwt: json_web_token
  jti-claim: jwt_id_claim
  iss-claim: issuer_claim
  exp-claim: validity_period
  sub-claim: subject_claim
  aud-claim: audience_claim
  jws-jwk: sign_jwk_variable_name
  jws-alg: cryptographic_algorithm
  jws-crypto: sign_crypto_object
  custom-kid-value-jws: jws.kid
  jwe-enc: encryption_algorithm
  jwe-jwk: encrypt_jwk_variable_name
  jwe-alg: key_encryption_algorithm
  jwe-crypto: encrypt_crypto_object
  custom-kid-value-jwe: jwe.kid

특성

다음 표에서는 정책 특성에 대해 설명합니다.
표 2. JWT 정책 특성 생성
특성 필수 설명 데이터 유형
version 정책 버전 번호입니다. 문자열
title 아니오 해당 정책의 제목입니다. 문자열
description 아니오 정책의 설명입니다. 문자열
jwt 아니오 생성된 JWT를 배치할 런타임 변수입니다.

기본값은 generated.jwt입니다. 그러나 설정하지 않으면 생성된 JWT가 권한 부여 헤더에 전달자 토큰으로 배치됩니다.

문자열
jti-claim 아니오 JTI(JWT ID) 청구를 JWT에 추가할지 여부를 표시합니다.

선택한 경우 특성은 true로 설정되고 UUID는 JTI 청구 값으로 설정됩니다.

부울
iss-claim 발행자(iss) 청구 문자열을 검색할 수 있는 런타임 변수입니다. 이 청구는 JWT를 발행한 프린시펄을 나타냅니다.

기본값은 iss.claim입니다.

문자열
sub-claim 아니오 주제(sub) 청구 문자열을 검색할 수 있는 런타임 변수입니다. 문자열
aud-claim 아니오 대상(aud) 청구 문자열을 검색할 수 있는 런타임 변수입니다. 쉼표로 구분된 문자열을 사용하여 여러 변수를 설정합니다. 문자열
exp-claim 현재 날짜 및 시간에 추가된 시간 길이(초)로서, JWT가 유효한 것으로 간주되는 시간입니다.

기본값은 3600입니다.

정수
private-claims 아니오 JSON 청구의 올바른 JSON 세트를 검색할 수 있는 런타임 변수입니다. 이 청구는 이전에 지정된 청구 세트에 추가됩니다. 문자열
jws-jwk 아니오 JWT 서명에 사용할 JWK가 포함된 런타임 변수입니다. JWK 및 암호 오브젝트는 둘 다 JWT에 서명하는 데 필요한 암호 데이터를 제공하는 올바른 방법입니다. 그러나 두 데이터 유형을 지정하면 암호 오브젝트만 사용됩니다. 문자열
jws-alg 아니오 사용할 암호화 알고리즘입니다. 유효값은 다음과 같습니다.
  • HS256
  • HS384
  • HS512
  • RS256
  • RS384
  • RS512
  • ES256
  • ES384
  • ES512
  • PS256
  • PS384
  • PS512
문자열
jws-crypto 아니오 JWT 서명에 사용할 암호 오브젝트입니다. JWK 및 암호 오브젝트는 둘 다 JWT에 서명하는 데 필요한 암호 데이터를 제공하는 올바른 방법입니다. 그러나 두 데이터 유형을 지정하면 암호 오브젝트만 사용됩니다. 문자열
custom-kid-value-jws 아니오 JWT 서명을 위한 사용자 정의된 kid 값입니다. 문자열
jwe-enc 아니오 사용할 암호화 알고리즘입니다. 유효값은 다음과 같습니다.
  • A128CBC-HS256
  • A192CBC-HS384
  • A256CBC-HS512
문자열
jwe-jwk 아니오 JWT 암호화에 사용할 JWK가 포함된 런타임 변수입니다. 문자열
jwe-alg 아니오 사용할 키 암호화 알고리즘입니다. 유효값은 다음과 같습니다.
  • RSA1_5
  • RSA-OAEP
  • RSA-OAEP-256
  • dir
  • A128KW
  • A192KW
  • A256KW
문자열
jwe-crypto 아니오 청구 암호화에 사용할 암호 오브젝트입니다. 문자열
custom-kid-value-jwe 아니오 JWT 암호화에 대해 사용자 정의된 kid 값입니다. 문자열

다음은 jwt-generate 정책의 예제입니다.
      - 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

jwt-generate 보안 정책을 사용하는 방법에 대한 자세한 정보는 기본 제공 정책 섹션에서 JWT 생성 을 참조하십시오.