HTTP > JWT 요청 만들기 모듈

Adobe Workfront Fusion HTTP > JWT 요청 만들기 모듈은 URL에 HTTP(S) 요청을 보내고 모든 호출 시 모듈이 서명하는 JSON 웹 토큰(JWT)을 사용하여 이를 승인합니다. 그런 다음 표준 HTTP > 요청 만들기 모듈과 같은 방식으로 응답이 처리됩니다.

이 모듈은 표준 요청 만들기 모듈처럼 동작하며, 한 가지 주요 차이점은 사용자가 제공한 클레임에서 JWT에 자동으로 서명하고 요청에 기본적으로 Authorization: Bearer <token>으로 추가하는 것입니다.

이 모듈을 사용하여 서명된 JWT가 인증에 필요한 모든 API(예: 별도의 단계에서 토큰을 만들지 않고, HMAC(공유 암호) 또는 RSA/ECDSA(개인 키)로 서명된 단기 전달자 토큰이 필요한 서비스)를 호출합니다.

API에서 OAuth 2.0, 기본 인증, API 키 또는 클라이언트 인증서를 사용하는 경우 일치하는 전용 HTTP 모듈을 대신 사용하십시오.

NOTE
현재 전용 커넥터가 없는 Adobe 제품에 연결하는 경우 Adobe Authenticator 모듈을 사용하는 것이 좋습니다.
자세한 내용은 Adobe Authenticator 모듈을 참조하세요.

액세스 요구 사항

이 문서의 기능에 대한 액세스 요구 사항을 보려면 확장하십시오.
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header
Adobe Workfront 패키지

모든 Adobe Workfront 워크플로 패키지 및 모든 Adobe Workfront 자동화 및 통합 패키지

Workfront Ultimate

Workfront Prime 및 Select 패키지 및 Workfront Fusion 추가 구매.

Adobe Workfront 라이선스

표준

작업 이상

Adobe Workfront Fusion 라이선스

운영 기반: 운영 기반 라이센스가 있는 조직에서 사용 가능

커넥터 기반(이전): 작업 자동화 및 통합을 위한 Workfront Fusion

제품 조직에 Workfront 자동화 및 통합이 포함되지 않은 Select 또는 Prime Workfront 패키지가 있는 경우 Adobe Workfront Fusion을 구매해야 합니다.

이 테이블의 정보에 대한 자세한 내용은 설명서의 액세스 요구 사항을 참조하십시오.

Adobe Workfront Fusion 라이선스에 대한 자세한 내용은 Adobe Workfront Fusion 라이선스를 참조하십시오.

JWT 연결 만들기

모듈에는 JWT 연결이 필요합니다. 비밀 또는 개인 키가 시나리오에 표시되지 않아도 되도록 연결이 서명 자료를 저장합니다.

Fusion에서 JWT 연결 만들기

  1. 시나리오에 HTTP > JWT 요청 만들기 모듈을 추가합니다.

  2. 연결 필드 옆에 있는 추가​를 클릭합니다.

  3. 연결 필드를 구성합니다.

    table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header
    연결 이름 연결의 이름을 입력합니다.
    알고리즘

    연결에 대한 서명 알고리즘을 선택합니다.

    • HS256
    • HS384
    • HS512
    • RS256
    • RS384
    • RS512
    • PS256
    • PS384
    • PS512
    • ES256
    • ES384
    • ES512
    Secret

    서명 키를 입력합니다.

    • HS* 알고리즘의 경우 공유 암호 문자열을 사용하십시오.
    • RS*, PS* 및 ES* 알고리즘의 경우 PEM으로 인코딩된 개인 키를 사용하십시오.
  4. 연결을 만들고 모듈로 돌아가려면 계속​을 클릭하세요.

IMPORTANT
JWT 연결은 하나의 알고리즘으로만 서명합니다. 시나리오에 둘 이상의 서명 알고리즘이 필요한 경우 각 알고리즘에 대해 별도의 연결을 만듭니다. 이는 기존의 독립형 JWT 앱 동작과 일치합니다.

HTTP > JWT 요청 만들기 모듈과 해당 필드

HTTP > JWT 요청 만들기 모듈을 구성할 때 Adobe Workfront Fusion은 아래 나열된 필드를 모듈 UI에 표시되는 순서와 동일한 순서로 표시합니다. 모듈의 굵은 글씨 제목은 필수 필드를 나타냅니다. 고급으로 표시된 필드는 고급 설정 표시​를 선택하지 않으면 숨겨집니다.

연결
기존 JWT 연결을 선택하거나 새 연결을 만듭니다.
URL
요청에 대한 대상 URL입니다.
메서드
GET, POST, PUT, PATCH 또는 DELETE과 같은 HTTP 메서드입니다.
헤더
키/값 형식의 사용자 지정 요청 헤더입니다.
쿼리 문자열
키/값 형식의 쿼리-문자열 매개 변수.
Body type
요청 본문을 인코딩하는 방법입니다. 옵션에는 Raw, application/x-www-form-urlencoded 및 multipart/form-data가 포함됩니다.
구문 분석 응답
활성화된 경우 Fusion은 응답 콘텐츠 유형을 기반으로 응답 본문을 구문 분석합니다.
JWT 페이로드(클레임)
JWT 페이로드에 클레임으로 포함된 키/값 쌍입니다. 예약된 클레임 exp, iat 및 nbf은(는) Unix Epoch 이후 초 단위의 NumericDate여야 합니다. 클레임 값은 JSON 유형을 유지하므로 숫자는 숫자를 유지하고 부울은 부울을 유지합니다.
시간 초과 (고급)
요청 시간 제한(초)을 지정합니다(1-300). 기본값은 40초입니다.
재시도 횟수 (고급)
재시도 가능한 오류로 인해 요청이 실패할 경우 요청을 재시도해야 하는 횟수를 지정합니다.
추가 재시도 상태 코드 (고급)
다시 시도 가능한 것으로 처리되어야 하는 추가 HTTP 상태 코드를 지정합니다.
다른 HTTP 모듈과 쿠키 공유 (고급)
이 옵션을 활성화하면 시나리오의 모든 HTTP 모듈과 서버의 쿠키를 공유할 수 있습니다.
자체 서명된 인증서 (고급)
자체 서명된 인증서를 사용하여 TLS를 사용하려면 인증서를 업로드하십시오.
확인되지 않은(자체 서명된) 인증서를 사용하는 연결을 거부합니다. (고급)
확인되지 않은 TLS 인증서를 사용하는 연결을 거부하려면 이 옵션을 활성화합니다.
Follow redirect (고급)
3xx 응답이 있는 URL 리디렉션을 따르려면 이 옵션을 활성화하십시오.
배열과 동일한 쿼리 문자열 키를 여러 개 직렬화할 수 없음 (고급)
기본적으로 Workfront Fusion은 배열과 동일한 URL 쿼리 문자열 매개 변수 키에 대해 여러 값을 처리합니다. 예를 들어 www.test.com?foo=bar&foo=baz은(는) www.test.com?foo[0]=bar&foo[1]=baz(으)로 변환됩니다. 이 기능을 비활성화하려면 이 옵션을 활성화합니다.
Request compressed content (고급)
웹 사이트의 압축된 버전을 요청하려면 이 옵션을 활성화하십시오. 압축된 콘텐츠를 요청하기 위해 Accept-Encoding 헤더를 추가합니다.
Use Mutual TLS (고급)
HTTP 요청에서 상호 TLS를 사용하려면 이 옵션을 활성화하십시오.
Sign Options (고급)

요청에 추가하려는 각 서명 옵션에 대해 항목 추가를 클릭하고 매개 변수의 이름과 값을 입력하십시오.

JWT 서명자에게 전달된 추가 옵션(예: expiresIn, issuer, audience, subject 및 keyid). expiresIn과(와) 같은 기간 값은 jsonwebtoken 라이브러리에서 해석됩니다. 일반 숫자는 밀리초로 처리되므로 "1h" 또는 "3600s"과(와) 같은 단위 문자열을 명시적으로 사용하십시오. 알고리즘은 연결에서 가져오며 여기에서 재정의할 수 없습니다.

Header Name (고급)
서명된 JWT를 받는 요청 헤더의 이름을 입력하거나 매핑합니다. 기본값: Authorization. 점선 이름은 거부되고 요청 로그에서 마스킹할 수 없으므로 헤더 이름에는 점(.)을 사용할 수 없습니다.
토큰 유형 (고급)
토큰 앞에 배치된 인증 체계를 입력하거나 매핑합니다(예: Bearer). 접두사 없이 원시 토큰을 전송하려면 이 항목을 비워 둡니다.

토큰 빌드 방법

  1. 모듈은 JWT 페이로드(클레임) 필드에 있는 클레임을 수집합니다.
  2. exp와 같은 예약된 클레임, iat, 및 nbf NumericDate 값으로 변환됩니다.
  3. 모듈은 서명 옵션을 적용하고 연결의 알고리즘을 사용하여 토큰에 서명합니다.
  4. 서명된 토큰이 헤더 이름에 정의된 요청 헤더에 배치되었습니다.
  5. 토큰 형식이 설정되면 모듈은 토큰 앞에 접두사를 추가합니다. 예: 전달자 키….
  6. 요청이 전송되며 응답은 표준 HTTP > 요청 만들기 모듈과 동일한 방식으로 처리됩니다.

서명된 토큰은 디버그 및 오류 로그에 자동으로 마스킹되어 노출되지 않습니다.

예

연결

  • 알고리즘: HS256
  • 암호: my-shared-secret

모듈 설정

  • URL: https://api.example.com/v1/orders

  • 메서드: GET

  • JWT 페이로드(클레임):

    • sub = service-account-42
    • iss = make-integration
  • 서명 옵션:

    • expiresIn = 1h
  • 헤더 이름: Authorization

  • 토큰 형식: Bearer

결과

모듈은 다음과 유사한 헤더가 있는 요청을 전송합니다.

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

FAQ / 과제

왜 내 토큰이 그렇게 빨리 만료되었습니까?

expiresIn에 대해 3600과(와) 같은 기본 번호를 입력했을 수 있습니다. jsonwebtoken 라이브러리는 일반 숫자를 밀리초로 해석합니다. 대신 "1h" 또는 "3600s"과(와) 같은 단위 문자열을 사용하십시오.

토큰은 언제 생성됩니까?

모듈은 연결을 만들 때가 아니라 모듈이 실행될 때마다 새로운 JWT에 서명합니다. 연결에서 서명 자료와 알고리즘만 저장하므로 iat 및 exp과(와) 같은 클레임은 해당 모듈 실행 순간을 반영합니다.

요청이 동일한 모듈 실행 내에서 다시 시도하는 경우, Fusion은 각 시도에 대해 새 토큰에 서명하는 대신 해당 재시도에 대해 서명된 동일한 토큰을 다시 사용합니다. 이 때문에 expiresIn 값이 너무 짧으면 다시 시도하기 전에 만료되어 이미 만료된 토큰을 다시 보낼 수 있습니다. 이를 방지하려면 "1h" 또는 "3600s"과(와) 같은 명확한 단위 문자열을 사용하고 토큰 수명이 지나치게 짧지 않도록 하십시오.

요청에 따라 알고리즘을 변경할 수 있습니까?

아니요. 알고리즘은 연결에 의해 수정됩니다. 다른 알고리즘이 필요한 경우 다른 JWT 연결을 만듭니다.

사용자 지정 헤더로 토큰을 보낼 수 있습니까?

예. 헤더 이름 필드를 사용자 지정 이름으로 설정하되 점(.)을 포함할 수 없습니다.

Bearer 없이 원시 토큰을 보낼 수 있습니까?

예. 토큰 형식을 비워 둡니다.

토큰이 로그에 표시됩니까?

아니요. 서명된 토큰은 디버그 및 오류 로그에 자동으로 마스킹됩니다.

NOTE
기술 참고: 서명은 jsonwebtoken 라이브러리를 사용하고 독립 실행형 JWT 앱의 서명 동작을 미러링하므로 동일한 입력이 독립 실행형 JWT 앱과 동일한 토큰을 생성합니다.
recommendation-more-help
workfront-fusion-help-workfront-fusion