# 라이선스 관리자 매뉴얼 (최종본) 본 문서는 스마트 IMS(Smart IMS) 시스템의 라이선스 관리 기능을 사용하는 방법을 설명합니다. 모든 라이선스 관리는 **RSA 비대칭 암호화** 방식을 따르며, `tools/license_manager.cjs` CLI 도구를 통해 수행됩니다. ## 1. 사전 준비 및 구독자 설정 (중요) 라이선스 키를 활성화하기 전에 서버가 어떤 고객사(구독자)에게 속해 있는지 식별하기 위해 **구독자 ID**를 설정해야 합니다. 1. **웹 관리자 페이지 접속**: 상단 메뉴의 `라이선스 관리` 섹션으로 이동합니다. 2. **서버 환경 설정**: * 부여받은 `구독자 ID`(예: `SAMSUNG`, `TEST_SUB`)를 입력하고 **[설정 저장]**을 클릭합니다. * **주의**: 라이선스 키 발급 시 사용한 구독자 ID와 서버에 설정된 ID가 일치해야만 활성화가 가능합니다. --- ## 2. 기본 명령어 (CLI 사용법) 모든 명령은 프로젝트 루트 경로에서 `node`를 사용하여 실행합니다. ### 2.1. 라이선스 발급 (`generate`) - 제공자 전용 새로운 RSA 서명 방식의 라이선스 키를 생성합니다. 이 작업에는 `tools/keys/private_key.pem`이 필요합니다. ```bash # 기본 발급 (30일 데모용) node tools/license_manager.cjs generate monitoring demo --subscriber TEST_SUB # 발급 및 즉시 활성화 (로컬 테스트용) node tools/license_manager.cjs generate asset sub --subscriber SAMSUNG --activate # 만기일 직접 지정 발급 node tools/license_manager.cjs generate production sub --subscriber SAMSUNG --expiry 2026-12-31 # 시한부 발급 (지정된 일수 내에 활성화하지 않으면 만료됨) node tools/license_manager.cjs generate monitoring sub --subscriber TEST_SUB --activation-window 3 ``` * **모듈**: `asset`, `production`, `monitoring` * **유형**: `dev` (무제한), `sub` (구독형), `demo` (30일 체험) ### 2.2. 라이선스 검증 및 해독 (`decode`) 키를 활성화하기 전에 내용을 검증하거나, 서명 변조 여부를 확인합니다. ```bash node tools/license_manager.cjs decode <라이선스_키_문자열> ``` * **Valid Signature : YES**가 나오면 정품 키이며, **NO**가 나오면 변조되었거나 잘못된 키입니다. ### 2.3. 현황 조회 및 상세 정보 (`list`, `show`) ```bash # 전체 모듈 활성화 상태 및 최근 발급 이력 조회 node tools/license_manager.cjs list # 특정 발급 ID나 모듈의 상세 정보 확인 node tools/license_manager.cjs show 5 node tools/license_manager.cjs show monitoring ``` ### 2.4. 수동 활성화 및 삭제 (`activate`, `delete`) ```bash # 발급받은 키를 서버에 적용 (웹 UI에서도 가능) node tools/license_manager.cjs activate <라이선스_키_문자열> # 특정 모듈 비활성화 (기존 키는 삭제되지 않고 이력으로 이동) node tools/license_manager.cjs delete asset ``` --- ## 3. 보안 및 배포 가이드 보안 강화를 위해 반드시 다음 사항을 준수하십시오. ### 3.1. 개인키와 공개키의 분리 * **private_key.pem (제공자)**: 라이선스를 만드는 "인감"입니다. **절대로 고객사에 배포하지 마십시오.** `tools/` 폴더 자체를 배포에서 제외하는 것을 권장합니다. * **public_key.pem (서버)**: 라이선스가 진짜인지 확인하는 "인감 증명"입니다. 서버의 `server/public_key.pem` 경로에 반드시 위치해야 합니다. ### 3.2. 영구 보관 및 이력 * 새로운 키로 교체될 때마다 기존 키 정보는 데이터베이스의 `license_history` 테이블에 자동으로 보관됩니다. (웹 UI에서 '변경 이력' 버튼으로 확인 가능) --- 마지막 업데이트: 2026-01-22 (RSA 비대칭 암호화 및 구독자 기반 관리 적용)