80 lines
3.8 KiB
Markdown
80 lines
3.8 KiB
Markdown
# 라이선스 관리자 매뉴얼 (최종본)
|
|
|
|
본 문서는 스마트어셋(SmartAsset) 시스템의 라이선스 관리 기능을 사용하는 방법을 설명합니다. 모든 라이선스 관리는 **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 비대칭 암호화 및 구독자 기반 관리 적용)
|
|
|
|
|