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 모듈을 대신 사용하십시오.
액세스 요구 사항
| 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 연결 만들기
-
시나리오에 HTTP > JWT 요청 만들기 모듈을 추가합니다.
-
연결 필드 옆에 있는 추가를 클릭합니다.
-
연결 필드를 구성합니다.
table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header 연결 이름 연결의 이름을 입력합니다. 알고리즘 연결에 대한 서명 알고리즘을 선택합니다.
HS256HS384HS512RS256RS384RS512PS256PS384PS512ES256ES384ES512
Secret 서명 키를 입력합니다.
HS*알고리즘의 경우 공유 암호 문자열을 사용하십시오.RS*,PS*및ES*알고리즘의 경우 PEM으로 인코딩된 개인 키를 사용하십시오.
-
연결을 만들고 모듈로 돌아가려면 계속을 클릭하세요.
HTTP > JWT 요청 만들기 모듈과 해당 필드
HTTP > JWT 요청 만들기 모듈을 구성할 때 Adobe Workfront Fusion은 아래 나열된 필드를 모듈 UI에 표시되는 순서와 동일한 순서로 표시합니다. 모듈의 굵은 글씨 제목은 필수 필드를 나타냅니다. 고급으로 표시된 필드는 고급 설정 표시를 선택하지 않으면 숨겨집니다.
토큰 빌드 방법
- 모듈은 JWT 페이로드(클레임) 필드에 있는 클레임을 수집합니다.
exp와 같은 예약된 클레임,iat, 및nbfNumericDate 값으로 변환됩니다.- 모듈은 서명 옵션을 적용하고 연결의 알고리즘을 사용하여 토큰에 서명합니다.
- 서명된 토큰이 헤더 이름에 정의된 요청 헤더에 배치되었습니다.
- 토큰 형식이 설정되면 모듈은 토큰 앞에 접두사를 추가합니다. 예:
전달자 키…. - 요청이 전송되며 응답은 표준 HTTP > 요청 만들기 모듈과 동일한 방식으로 처리됩니다.
서명된 토큰은 디버그 및 오류 로그에 자동으로 마스킹되어 노출되지 않습니다.
예
연결
- 알고리즘:
HS256 - 암호:
my-shared-secret
모듈 설정
-
URL:
https://api.example.com/v1/orders -
메서드:
GET -
JWT 페이로드(클레임):
sub=service-account-42iss=make-integration
-
서명 옵션:
expiresIn=1h
-
헤더 이름:
Authorization -
토큰 형식:
Bearer
결과
모듈은 다음과 유사한 헤더가 있는 요청을 전송합니다.
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
FAQ / 과제
왜 내 토큰이 그렇게 빨리 만료되었습니까?
expiresIn에 대해 3600과(와) 같은 기본 번호를 입력했을 수 있습니다. jsonwebtoken 라이브러리는 일반 숫자를 밀리초로 해석합니다. 대신 "1h" 또는 "3600s"과(와) 같은 단위 문자열을 사용하십시오.
토큰은 언제 생성됩니까?
모듈은 연결을 만들 때가 아니라 모듈이 실행될 때마다 새로운 JWT에 서명합니다. 연결에서 서명 자료와 알고리즘만 저장하므로 iat 및 exp과(와) 같은 클레임은 해당 모듈 실행 순간을 반영합니다.
요청이 동일한 모듈 실행 내에서 다시 시도하는 경우, Fusion은 각 시도에 대해 새 토큰에 서명하는 대신 해당 재시도에 대해 서명된 동일한 토큰을 다시 사용합니다. 이 때문에 expiresIn 값이 너무 짧으면 다시 시도하기 전에 만료되어 이미 만료된 토큰을 다시 보낼 수 있습니다. 이를 방지하려면 "1h" 또는 "3600s"과(와) 같은 명확한 단위 문자열을 사용하고 토큰 수명이 지나치게 짧지 않도록 하십시오.
요청에 따라 알고리즘을 변경할 수 있습니까?
아니요. 알고리즘은 연결에 의해 수정됩니다. 다른 알고리즘이 필요한 경우 다른 JWT 연결을 만듭니다.
사용자 지정 헤더로 토큰을 보낼 수 있습니까?
예. 헤더 이름 필드를 사용자 지정 이름으로 설정하되 점(.)을 포함할 수 없습니다.
Bearer 없이 원시 토큰을 보낼 수 있습니까?
예. 토큰 형식을 비워 둡니다.
토큰이 로그에 표시됩니까?
아니요. 서명된 토큰은 디버그 및 오류 로그에 자동으로 마스킹됩니다.
jsonwebtoken 라이브러리를 사용하고 독립 실행형 JWT 앱의 서명 동작을 미러링하므로 동일한 입력이 독립 실행형 JWT 앱과 동일한 토큰을 생성합니다.