보안 관리
목차
개요
System 그룹의 보안 관리 항목은 사용자 계정, 보안 정책(역할 외 추가 권한 그룹), API 인증 토큰(외부 시스템이 플랫폼 API 를 호출할 때 사용하는 키) 세 가지를 관리합니다. 모든 메뉴는 ADMIN 권한을 가진 시스템 관리자만 접근할 수 있습니다.
이 화면은 다음 작업에 사용됩니다.
- 신규 운영자 계정 발급·기존 사용자 정보 수정·삭제
- 사용자별 보안 정책 부여
- 외부 시스템(MES·ERP 등)이 플랫폼 API 를 호출할 수 있도록 토큰 발급·IP 제한·배포
경로: 왼쪽 메뉴 > System > 사용자 / 보안 정책 / API 토큰
화면 구성 — 3개 하위 메뉴
| 하위 메뉴 | URL | 용도 |
|---|---|---|
| 사용자 | /user/index | 시스템에 로그인할 수 있는 사용자 계정 관리 |
| 보안 정책 | /security/index | 사용자에게 부여할 수 있는 권한 그룹(보안 정책) 관리 |
| API 인증 토큰 | /token/index | 외부 API 호출용 인증 토큰 발급·IP 제한·배포 |
각 하위 메뉴는 목록 화면(index.jsp)과 양식 화면(form.jsp)으로 구성되어, 목록에서 항목을 추가/수정 클릭 시 양식 화면으로 전환됩니다.
사용자 화면
경로: 보안 > 사용자 (/user/index)
상단에는 페이지 제목 "사용자" 와 우측 사용자 추가 빨강 버튼이 있습니다.
사용자 목록 테이블
┌──────────────────────────────────── 목록 ────────────────────────────────────┐
│ - │ 로그인 ID │ 이름 │ 팀명 │ 이메일 │ 전화 │ 역할 │ 보안정책 │ 등록일 │ 마지막 수정일 │ 액션 │
└─────────────────────────────────────────────────────────────────────────────┘
| 컬럼 | 폭 | 정렬 | 표시 |
|---|---|---|---|
| 체크/선택 | 40px | 가운데 | 행 선택 (운영 환경에 따라 활성/비활성) |
| 로그인 ID | 120px | 가운데 | 사용자가 로그인할 때 사용하는 ID |
| 이름 | 100px | 가운데 | 표시 이름 |
| 팀명 | 자동 | 가운데 | 소속 팀(address 필드 — 양식에선 "팀명" 라벨로 표시) |
| 이메일 | 200px | 가운데 | 이메일 주소 |
| 전화 | 200px | 가운데 | 휴대폰 번호 |
| 역할 | 80px | 가운데 | ADMIN / API / USER 중 하나 |
| 보안정책 | 120px | 가운데 | 부여된 보안 정책명 (없으면 비어 있음) |
| 등록일 | 150px | 가운데 | 계정 등록 시각 |
| 마지막 수정일 | 150px | 가운데 | 정보 마지막 수정 시각 |
| 액션 | 80px | 가운데 | 수정·삭제 버튼 |
사용자 추가/수정 양식
상단의 사용자 추가 버튼 또는 목록의 액션 버튼으로 양식 화면으로 이동합니다.
1) 로그인 fieldset
| 입력 | path | 폭 | 비고 |
|---|---|---|---|
| 로그인 ID | user_id | 200px | 영문/숫자/언더스코어 권장 |
| 패스워드 | password | 200px | 신규 등록 시(mode='I')에만 표시. 수정 모드에서는 보안상 입력 필드 숨김 — 비밀번호 변경은 별도 흐름 |
| 역할 | role | 200px | 셀렉터 — ADMIN/API/USER (변경 시 보안 필드 자동 토글) |
| 보안 | security_id | 200px | 셀렉터 — 등록된 보안 정책 중 선택 (역할이 API 등 특정 케이스일 때 보임. toggleSecurityField()) |
2) 기본 정보 fieldset
| 입력 | path | 폭 | placeholder |
|---|---|---|---|
| 이름 | name | 200px | — |
| 이메일 | email | 200px | — |
| 휴대폰 | phone | 200px | "휴대폰번호는 숫자만 입력하여 주십시오. 예) 0104125678" |
| 팀명 | address | 450px | — |
3) 추가 속성 fieldset
| 입력 | path | 폭 |
|---|---|---|
| 노트 | attr_01 | 800px × 150px (텍스트 영역) |
폼 제출
| 버튼 | 위치 | 동작 |
|---|---|---|
| 목록(☰) | 좌측 | index() — 사용자 목록 화면으로 돌아가기 |
| 저장 | 우측 (파랑, 100px) | saveEvent() — 입력 검증 후 저장 |
사용자 역할 의미
| 역할 | 라벨 | 설명 |
|---|---|---|
| ADMIN | 시스템 관리자 | 모든 메뉴 접근. 사용자·보안 정책·시스템 설정 변경 가능 |
| API | API 개발자 | API 호출용 계정. 보안 정책 필수 부여 |
| USER | 일반 사용자 | 조회 중심 메뉴만 접근. 변경 권한 없음 |
역할 변경은 즉시 반영되지만, 사용자가 이미 로그인 중이면 다음 로그인 시 새 역할이 적용됩니다.
보안 정책 화면
경로: 보안 > 보안 정책 (/security/index)
상단에는 페이지 제목 "보안 정책" 과 우측 보안 추가 빨강 버튼이 있습니다.
보안 정책 목록 테이블
┌────────────────────────────── 목록 ──────────────────────────────┐
│ - │ 보안 ID │ 보안명 │ 설명 │ 등록일 │ 마지막 수정일 │ 액션 │
└──────────────────────────────────────────────────────────────────┘
| 컬럼 | 폭 | 표시 |
|---|---|---|
| 체크/선택 | 40px | 행 선택 |
| 보안 ID | 150px | 시스템이 부여한 식별자 (예: SECURITY_00001) |
| 보안명 | 250px | 사람이 읽기 쉬운 이름 (영문/숫자/_만 허용) |
| 설명 | 자동 | 정책 용도 메모 |
| 등록일 | 150px | 정책 등록 시각 |
| 마지막 수정일 | 150px | 정책 마지막 수정 시각 |
| 액션 | 80px | 수정·삭제 버튼 |
보안 정책 양식
1) 기본정보 fieldset
| 입력 | path | 폭 | 비고 |
|---|---|---|---|
| 보안 ID | security_id | 200px | 읽기 전용 — 시스템 자동 부여 |
| 보안 명 | security_name | 300px | placeholder: SECURITY_NAME_00001 (영문 및 숫자, _ 만 입력) |
| 설명 | security_desc | 500px | 자유 텍스트 |
2) 권한 fieldset
권한 상세(에셋 단위 오브젝트 권한 부여 UI)는 2026-03-21 자로 비활성화되었습니다. 현재 보안 정책은 이름 + 설명 만 등록·관리하며, 실제 권한 적용은 사용자의 역할(ADMIN/API/USER)을 기준으로 동작합니다.
폼 제출
| 버튼 | 위치 | 동작 |
|---|---|---|
| 목록(☰) | 좌측 | 보안 정책 목록 화면으로 돌아가기 |
| 저장 | 우측 (파랑, 100px) | 입력 검증 후 저장 |
API 인증 토큰 화면
경로: 보안 > API 인증 토큰 (/token/index)
API 인증 토큰은 외부 프로그램(MES/ERP/연동 도구 등)이 플랫폼 API 를 호출할 때 사용하는 키입니다. 토큰별로 사용 가능한 IP 대역을 제한할 수 있어 보안성을 높일 수 있습니다.
토큰 목록 테이블
상단에는 페이지 제목 "API 인증 토큰" 과 우측 API 토큰 추가·새로고침 두 빨강 버튼이 있습니다. 목록 패널의 헤더 우측에는 API 토큰 배포 버튼(120px)이 있습니다.
| 컬럼 | 폭 | 표시 |
|---|---|---|
| 체크/선택 | 40px | 행 선택 |
| 인증 토큰 | 380px | 발급된 토큰 문자열 (16자리 이상) |
| 로그인 ID | 200px | 토큰을 발급받은 사용자 ID |
| 접근 가능한 IP | 200px | 토큰 사용이 허용된 IP 패턴 |
| 설명 | 자동 | 토큰 용도 |
| 액션 | 80px | 수정·삭제 버튼 |
토큰 추가/수정 양식
상단의 API 토큰 추가 버튼으로 양식 화면으로 이동합니다.
안내 메시지(파란 박스)
ℹ️ API 인증 토큰 도움말
API 인증 토큰은 API를 통해 플랫폼에 명령과 데이터 조회 등에 사용할 수 있는 보안 토큰입니다.
• 접근 가능한 IP는 단일 IP 및 IP 대역, 모두 허용으로 등록할 수 있습니다.
(예) 192.168.0.110, 192.168.10.*, 192.*, *
• 토큰은 영문 또는 숫자, 특수문자를 포함하여 16자리 이상으로 등록하여 주십시오.
1) 인증 정보 fieldset
| 입력 | path | 폭 | 설명 |
|---|---|---|---|
| 로그인 ID | login_id | 200px | 토큰을 발급받을 사용자 ID (사용자 화면에 등록된 계정) |
| 접근 가능한 IP | ip | 400px | 단일 IP 또는 와일드카드 패턴 (아래 IP 패턴 참고) |
| 인증 토큰 | token | 700px | 직접 입력하거나 우측 API 토큰 자동 생성 버튼으로 무작위 생성 |
| API 토큰 자동 생성 | (버튼) | 자동 | generate() — 16자리 이상 안전 토큰 자동 생성 |
2) 추가 속성 fieldset
| 입력 | path | 폭 | 설명 |
|---|---|---|---|
| 설명 | description | 700px × 100px (텍스트 영역) | 어떤 시스템·연동에 사용할지 메모 |
폼 제출
| 버튼 | 위치 | 동작 |
|---|---|---|
| 목록(☰) | 좌측 | 토큰 목록 화면으로 돌아가기 |
| 저장 | 우측 (파랑, 100px) | 입력 검증 후 저장 |
API 토큰 배포
토큰을 저장만 했을 때는 인증 서버에 아직 적용되지 않은 상태입니다. 등록·수정·삭제한 토큰을 실제로 사용하려면 API 토큰 배포 버튼을 눌러야 합니다.
| 항목 | 설명 |
|---|---|
| 버튼 위치 | 토큰 목록 패널의 헤더 우측 |
| 버튼 라벨 | "API 토큰 배포" |
| 툴팁 | "등록 및 수정, 삭제된 토큰을 사용할 수 있도록 인증서버에 배포합니다." |
| 동작 | deployToken() — 변경된 토큰 일괄을 인증 서버에 배포 |
운영 안전 절차: 새 토큰을 등록하면 즉시 외부에서 사용되도록 API 토큰 배포 를 잊지 마세요. 반대로 사용 중인 토큰을 삭제하면 배포 직후부터 외부 호출이 차단됩니다.
접근 가능한 IP 패턴
| 패턴 | 의미 |
|---|---|
192.168.0.110 | 정확한 단일 IP만 허용 |
192.168.10.* | 192.168.10.0 ~ 192.168.10.255 대역 허용 |
192.168.* | 192.168.0.0 ~ 192.168.255.255 대역 허용 |
192.* | 192.0.0.0 ~ 192.255.255.255 대역 허용 |
* | 모든 IP 허용 (보안상 권장하지 않음) |
운영 환경에서는 가능한 한 단일 IP 또는 C 클래스(
x.x.x.*) 대역으로 제한하시기 바랍니다.
활용 시나리오
| 시나리오 | 절차 |
|---|---|
| 신규 운영자 계정 발급 | 사용자 → 사용자 추가 → 로그인 ID·패스워드·이름·이메일·역할(USER) 입력 → 저장 |
| 외부 분석가에게 API 권한 부여 | 1) 보안 정책 → API 분석 정책 등록 2) 사용자 → 새 사용자 추가, 역할 API + 보안 정책 부여 3) API 인증 토큰 → 그 사용자에 토큰 발급, IP 제한 |
| MES 연동 API 토큰 발급 | API 인증 토큰 → 추가 → 로그인 ID(연동 전용 계정) + IP 패턴 + 자동 생성 → 저장 → API 토큰 배포 |
| 사용 중인 토큰 회전 | 새 토큰 발급 → 외부 시스템에 새 토큰 적용 → 기존 토큰 삭제 → 배포 |
| 퇴사자 계정 비활성 | 사용자 목록 → 해당 사용자 액션 → 삭제 (또는 역할을 USER 로 강등 후 패스워드 변경) |
자주 묻는 질문
Q. 사용자 수정 화면에 패스워드 입력란이 안 보입니다.
A. 정상 동작입니다. 신규 등록 시(mode='I')에만 패스워드 필드가 표시됩니다. 비밀번호 변경은 사용자가 직접 로그인 후 사용자 메뉴 → "비밀번호 변경" 으로 진행해야 합니다. 관리자가 강제로 초기화해야 한다면 사용자를 삭제 후 재등록하시거나 별도의 비밀번호 초기화 절차를 사용하세요.
Q. 보안 정책의 ID 가 자동 부여되는데 직접 정할 수 없나요?
A. 보안 ID 는 시스템이 자동 부여합니다(읽기 전용). 사람이 식별하는 이름은 보안 명 필드에 영문·숫자·_ 만 사용해 등록하세요.
Q. 보안 정책의 권한 상세가 비어 있습니다. A. 에셋 단위 권한 부여 UI 는 2026-03-21 부로 비활성화되었습니다. 현재 권한은 사용자 역할(ADMIN/API/USER)에 따라 결정됩니다. 보안 정책은 이름·설명을 통한 그룹 분류 용도로 사용됩니다.
Q. API 토큰을 등록했는데 외부에서 호출이 안 됩니다. A. 토큰을 등록·수정·삭제한 후에는 반드시 API 토큰 배포 버튼을 누르셔야 합니다. 또한 호출 측 IP 가 토큰의 "접근 가능한 IP" 패턴에 포함되는지 확인하세요.
Q. 토큰의 "접근 가능한 IP" 를 변경했습니다. 즉시 반영되나요? A. 변경 후 API 토큰 배포 를 눌러야 인증 서버에 반영됩니다. 배포 완료까지는 외부 호출이 이전 IP 정책으로 동작합니다.
Q. 토큰 자동 생성 시 어떤 형식의 토큰이 만들어지나요? A. 영문·숫자·특수문자 16자리 이상의 안전한 토큰이 무작위로 생성됩니다. 보안상 직접 단순한 토큰을 입력하시지 말고 자동 생성을 사용하시기 바랍니다.
Q. API 사용자(역할 API)에는 왜 보안 정책이 필수인가요? A. API 호출이 어떤 권한 그룹에 속하는지 명시하기 위함입니다. 추후 권한 정책이 강화될 때를 대비해 그룹 단위로 관리합니다.
Q. 비밀번호 정책(길이, 복잡도)을 강제로 적용할 수 있나요? A. 운영 환경 설정에 따라 다르며 화면에서 직접 변경하시는 항목은 아닙니다. 정책 변경이 필요하면 시스템 설정으로 관리자에게 문의하세요.
Q. 사용자 동시 로그인을 막을 수 있나요? A. 기본적으로 동시 로그인이 허용됩니다. 운영 환경 설정으로 단일 세션만 허용하도록 변경할 수 있으니 관리자에게 문의하세요.
Q. 토큰 사용 이력을 어디서 볼 수 있나요? A. 토큰 사용 이력은 진단 화면의 SERVER 애플리케이션 로그에서 확인할 수 있습니다. 인증 실패는 ERROR 레벨로 기록됩니다.