jwt-validate

JWT 유효성 검증 보안 정책을 사용하여 API에 대한 액세스를 허용하기 전에 요청에서 JWT (JSON Web Token) 의 유효성 검증을 사용으로 설정하십시오.

게이트웨이 지원

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

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

참고:
  • 원래 메시지가 공유되는 비밀 키로 서명된 경우 지정된 암호 오브젝트도 공유되는 비밀 키여야 합니다.
  • 원래 메시지가 개인 키로 서명된 경우 지정된 암호 오브젝트는 암호 인증서(공용 인증서)여야 합니다.
  • 암호 자료는 JWK(JSON Web Key)를 통해 제공할 수 있습니다.
  • JWK 헤더 매개변수가 JWT의 헤더에 포함된 경우 매개변수는 정책에 지정된 JWK 또는 암호 오브젝트와 일치해야 합니다. 그렇지 않으면 JWT 유효성 검증에 실패합니다.
  • 암호 오브젝트 및 JWK 모두 지정하면 JWT의 암호화 및 확인에 암호 오브젝트를 사용합니다.
  • DataPower API Gateway 의 JWT 유효성 검증 조치는 단일 JWK 또는 JWK 세트를 사용하여 JWT를 확인할 수 있습니다.

정보

jwt-validate 정책의 구조는 다음과 같습니다.
- jwt-validate:
  version: version
  title: title
  description: description
  jwt: json_web_token
  output-claims: output_full_set_of_jwt_claims
  iss-claim: issuer_claim
  aud-claim: audience_claim
  jwe-crypto: decrypt_crypto_object
  jwe-jwk: decrypt_crypto_jwk_variable_name
  jws-crypto: verify_crypto_object
  jws-jwk: verify_crypto_jwk_variable_name

특성

다음 표에서는 정책 특성에 대해 설명합니다.
표 2. JWT 유효성 검증 정책 특성
특성 필수 설명 데이터 유형
version 정책 버전 번호입니다. 문자열
title 해당 정책의 제목입니다. 문자열
description 아니오 정책의 설명입니다. 문자열
jwt 유효성 검증할 JWT가 포함된 컨텍스트 또는 런타임 변수입니다.

기본값은 request.headers.authorization입니다. 그러나 설정하지 않을 경우 정책은 기본적으로 request.headers.authorization 위치에서 JWT를 검색합니다.

주: 권한 부여 헤더의 형식은 다음과 같아야 합니다.
"Authorization: Bearer jwt-token"
여기서 jwt-token은 인코딩된 JWT입니다.
문자열
output-claims JWT에 포함된 전체 청구 세트가 지정된 런타임 변수입니다.

기본값은 decoded.claims입니다.

문자열
iss-claim 아니오 발행자 (iss) 청구의 유효성을 검증하는 데 사용할 Perl Compatible Regular Expressions (PCRE) . 문자열
aud-claim 아니오 대상(aud) 청구를 유효성 검증하는 데 사용할 PCRE입니다. 문자열
jwe-crypto 아니오 청구를 디코딩하는 데 사용할 암호 오브젝트(공유 키 또는 인증서)입니다. JWK 및 암호 오브젝트는 둘 다 JWT를 복호화하는 데 필요한 암호 데이터를 제공하는 올바른 방법입니다. 그러나 두 데이터 유형을 지정하면 암호 오브젝트만 사용됩니다. 문자열
jwe-jwk 아니오 JWT 복호화에 사용할 JWK가 포함된 런타임 변수입니다. JWK 및 암호 오브젝트는 둘 다 JWT를 복호화하는 데 필요한 암호 데이터를 제공하는 올바른 방법입니다. 그러나 두 데이터 유형을 지정하면 암호 오브젝트만 사용됩니다. 문자열
jws-crypto 아니오 서명을 확인하는 데 사용할 암호 오브젝트(공유 키 또는 인증서)입니다. JWK 또는 JWK 세트 및 암호 오브젝트는 모두 JWT를 확인하는 데 필요한 암호화 데이터를 제공하는 올바른 방법입니다. 그러나 두 데이터 유형을 지정하면 암호 오브젝트만 사용됩니다. 문자열
jws-jwk 아니오 서명을 확인하는 데 사용할 JWK 또는 JWK 세트가 포함된 런타임 변수입니다. JWK 또는 JWK 세트 및 암호 오브젝트는 모두 JWT를 확인하는 데 필요한 암호화 데이터를 제공하는 올바른 방법입니다. 그러나 두 데이터 유형을 지정하면 암호 오브젝트만 사용됩니다. 문자열

다음은 jwt-validate 정책의 예제입니다.
- jwt-validate:
    version: 1.0.0
    title: jwt-validate
    jwt: request.headers.authorization
    output-claims: decoded.claims
    iss-claim: "'^data.*'"
    aud-claim: "'^id.*'"
    jwe-crypto: jweCryptoObjectName
    jwe-jwk: jwe.jwk
    jws-crypto: jwsCryptoObjectName
    jws-jwk: jws.jwk

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