smart_ims/docs/LICENSE_SERVER_SETUP.md
2026-01-22 23:42:55 +09:00

2.5 KiB

라이선스 중앙 인증 서버 설정 가이드

본 시스템은 고객 서버에서 라이선스 활성화 시, 중앙 관리 서버(Developer's DB)에 접속하여 키의 유효성을 2차 검증하는 기능을 제공합니다. 이를 위해 중앙 DB 서버에 테이블을 생성하고, 고객 서버의 설정 파일(.env)에 접속 정보를 입력해야 합니다.

1. 중앙 DB 테이블 생성 (Developer Server)

중앙 라이선스 DB(MySQL)에 접속하여 아래 SQL을 실행하여 issued_licenses 테이블을 생성하십시오. 이 테이블은 생성된 모든 라이선스 키를 저장합니다.

CREATE TABLE IF NOT EXISTS issued_licenses (
    id INT AUTO_INCREMENT PRIMARY KEY,
    license_key TEXT NOT NULL,
    module_code VARCHAR(50) NOT NULL,
    license_type VARCHAR(20) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    used_at TIMESTAMP NULL,
    is_revoked BOOLEAN DEFAULT FALSE,
    INDEX idx_license_key (license_key(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2. 고객 서버 설정 (Client Server)

고객사에 배포되는 서버의 .env 파일에 아래와 같이 중앙 라이선스 DB 접속 정보를 추가해야 합니다. 이 정보가 없으면 로컬 검증만 수행합니다.

주의: 고객 서버에서 외부(중앙 DB)로 접속이 가능하도록 방화벽 설정(3306 포트 등)이 되어야 합니다.

# Central License Verification DB
LICENSE_DB_HOST=your-central-db-ip.com
LICENSE_DB_PORT=3306
LICENSE_DB_USER=license_readonly_user
LICENSE_DB_PASSWORD=your_secure_password
LICENSE_DB_NAME=your_license_db

보안 권장사항: LICENSE_DB_USERissued_licenses 테이블에 대한 SELECT 권한만 부여된 계정을 사용하십시오.

3. 작동 원리

  1. 키 생성: 개발자가 tools/license_manager.cjs generate 명령을 실행하면, 로컬 키 생성과 동시에 중앙 DB(issued_licenses)에 키가 저장됩니다. (개발자 PC에도 .env 설정 필요)
  2. 활성화 시도: 고객이 라이선스 키를 입력하면, 서버는 먼저 로컬에서 서명을 검증합니다.
  3. 원격 검증: 로컬 검증이 통과되면, 서버는 .env에 설정된 중앙 DB에 잠시 접속하여 해당 키가 존재하는지 확인합니다.
  4. 결과 처리: 중앙 DB에 키가 존재하면 활성화가 완료되고, DB 연결은 즉시 해제됩니다.

이 방식을 통해 임의로 키를 생성해내더라도 중앙 DB에 등록되지 않은 키는 사용할 수 없게 됩니다.