🔌 API 계정 생성과 원격 워크플로우 제어¶
학습 안내
MDRM의 RESTful API를 활용하여 외부 시스템에서 워크플로우를 원격으로 제어하는 방법을 학습합니다. API 전용 계정 생성부터 인증 방식, 그리고 워크플로우 실행 및 상태 조회를 위한 주요 API 명세를 다룹니다.
1. API 계정 생성 및 설정¶
MDRM API를 호출하기 위해서는 적절한 권한을 가진 사용자 계정이 필요합니다. 보안을 위해 관리자(Admin) 계정과는 별도로 API 전용 계정을 생성하여 사용하는 것을 권장합니다.
1.1 API 호출 기본 정보 (예시)¶
본 가이드에서는 다음 환경을 기준으로 설명합니다.
| 항목 | 값 | 설명 |
|---|---|---|
| 서버 | 10.120.30.91 |
MDRM 서버 주소 |
| 계정 | mdrm_api |
API 호출 계정 |
| 암호 | password |
API 호출 계정의 암호 |
| 워크플로우 ID | 1 |
워크플로우 고유 번호 (JOB_ID) |
1.2 사용자 생성¶
- MDRM 웹 콘솔에
admin계정으로 로그인합니다. - 시스템 관리 > 사용자 관리 메뉴로 이동합니다.
- [사용자 추가] 버튼을 클릭합니다.
- 다음 정보를 입력하여 계정을 생성합니다:
- ID:
mdrm_api - 이름: API 연동 계정
- 권한:
System Admin - 비밀번호: 강력한 비밀번호 설정 (
password)
- ID:
1.3 API 계정 잠금 방지 설정 (DB)¶
API 호출용 계정은 웹 로그인이 불가능하며, 장기 미접속(90일) 시에도 계정이 잠기지 않는 특수 계정입니다.
- MDRM 컨테이너 내부 또는 DB 접속 툴을 통해 MDRM 데이터베이스에 접속합니다.
- 다음 SQL을 실행하여 계정 속성을 업데이트합니다.
1.4 인증 토큰 발급 (로그인)¶
MDRM API는 Bearer Token 인증 방식을 사용합니다. 먼저 로그인 API를 호출하여 토큰을 발급받아야 합니다.
- URL:
POST /api/v1/auth - Header:
Content-Type: application/json - Body:
{"user_id": "mdrm_api", "pwd": "password"}
토큰 발급 요청 예시:
curl -k -i 'https://10.120.30.91/api/v1/auth' \
--header 'Content-Type: application/json' \
--data '{"user_id": "mdrm_api", "pwd": "password"}'
응답 결과 (예시):
토큰 사용
응답받은 token 값(Bearer 포함)을 이후 모든 API 호출 시 Authorization 헤더에 포함해야 합니다.
2. 워크플로우 제어 API¶
외부 스케줄러(Control-M, Autosys 등)나 관제 시스템에서 MDRM 워크플로우를 트리거할 때 사용하는 주요 API입니다.
사전 요구사항
- 모든 API 요청은 HTTPS 프로토콜을 사용해야 합니다.
- Header에
Authorization: <Issued_Token>이 포함되어야 합니다.
2.1 워크플로우 목록 조회¶
등록된 워크플로우의 ID(wf_id)를 확인하기 위해 사용합니다.
- URL:
GET /services/workflow/list - Response:
2.2 워크플로우 실행 (Execute)¶
특정 워크플로우를 비동기적으로 실행합니다.
- URL:
POST /services/workflow/execute - Parameters:
wf_id(String): 실행할 워크플로우 IDsync(Boolean):false(비동기권장),true(동기)
- Example (cURL):
- Response:
2.3 실행 상태 조회 (Status)¶
실행 중인 워크플로우의 진행 상태를 확인합니다.
- URL:
GET /services/workflow/status - Parameters:
execution_id: 실행 시 반환받은 실행 ID
- Response:
2.4 워크플로우 중지/일시정지¶
비상 상황 시 실행 중인 워크플로우를 제어합니다.
- URL:
POST /services/workflow/control - Parameters:
execution_id: 실행 IDaction:stop(강제종료) /pause(일시정지) /resume(재개)
3. 보안 권장사항¶
API 사용 시 다음 보안 수칙을 준수하십시오.
- IP 접근 제어 (ACL): MDRM 서버의 방화벽(Firewall) 또는
iptables를 통해 API를 호출하는 외부 시스템(관제, 스케줄러)의 IP만 허용하십시오. - SSL 인증서 적용: 평문 통신을 방지하기 위해 공인 인증서 또는 사설 인증서를 적용하여 HTTPS 통신을 강제하십시오.
- 최소 권한 부여: API 전용 계정에는 시스템 설정 변경 권한을 제외하고, 워크플로우 실행 및 조회 권한만 부여하십시오.