contexa-iam

관리자 콘솔

보안 모니터링, 통합 정책 관리(Policy Center), 통합 접근 관리(Access Center), Zero Trust 운영, AI 보조 정책 작성 흐름을 제공하는 웹 기반 관리 콘솔입니다.

메뉴 구조

이 페이지는 OSS contexa-iam 관리자 표면을 설명합니다. 현재 기본 메뉴 트리는 AdminMenuService가 구성하며, 최상위 그룹은 Dashboard, Policy, Access, IAM, Security 다섯 개입니다. Zero Trust 운영 화면은 별도 최상위 그룹이 아니라 Security 그룹 아래에 노출됩니다.

메뉴 그룹페이지목적조건
Dashboard/admin, /admin/, /admin/dashboard보안 지표, Zero Trust 판정 분포, 위협 이벤트항상
Policy/admin/policy-center (생성, 목록, 시뮬레이터, 매트릭스)리소스 검토, 정책 작성, 시뮬레이션, 매트릭스 확인을 포함한 통합 정책 작업항상
Access/admin/access-center (사용자, 그룹, 역할, 개요)사용자, 그룹, 역할, 유효 권한 검토를 위한 통합 접근 관리항상
IAMUsers, Groups, Roles, Permissions, Role Hierarchies, Password Policy, System Settings, Menu Management식별 엔티티, 역할 계층, 비밀번호 규칙, 관리자 메뉴/시스템 설정항상
SecuritySecurity Monitor, Blocked Users, Session Management, IP ManagementZero Trust 운영, 사건 후속 조치, 세션 제어, IP 규칙 관리항상

컨트롤러

대부분의 관리자 컨트롤러는 /admin 기본 경로 아래에서 동작하며 Thymeleaf 템플릿 뷰를 반환합니다. 일부 컨트롤러(예: PasswordChangeController)는 다른 기본 경로를 사용합니다.

컨트롤러기본 경로목적
DashboardController/admin, /admin/, /admin/dashboardZero Trust 판정 분포, 인증 통계, 위협 이벤트를 포함한 보안 개요
PolicyCenterController/admin/policy-center리소스, 빠른/수동/AI 작성, 목록, 시뮬레이터, 매트릭스를 다루는 통합 정책 관리
PolicyController/admin/policies서버 측 정책 CRUD 경로. 상세/편집 흐름은 policydetails.html을 사용하고, 현재 목록 경험은 Policy Center가 중심입니다.
PolicyBuilderController/admin/policy-builder레거시 builder 컨트롤러입니다. 현재 OSS 트리에는 독립 admin/policy-builder.html 템플릿이 없고, 일상적인 작성 흐름은 Policy Center가 중심입니다.
ResourceAdminController/admin/workbench/resources레거시 resource-workbench 경로입니다. 컨트롤러는 남아 있지만 현재 OSS 리소스 검토 UI의 중심은 Policy Center이고 독립 admin/resource-workbench.html 템플릿은 없습니다.
AccessCenterController/admin/access-center사용자, 그룹, 역할, CRUD 세부 배정, 개요 분석을 위한 통합 접근 관리
SecurityMonitorController/admin/security-monitor대시보드 드릴다운 필터를 지원하는 실시간 보안 이벤트 뷰어
UserManagementController/admin/users그룹 배정을 포함한 사용자 CRUD
GroupController/admin/groups역할 배정을 포함한 그룹 CRUD
RoleController/admin/roles권한 배정을 포함한 역할 CRUD
PermissionController/admin/permissions관리 리소스 연결을 포함한 권한 CRUD
RoleHierarchyController/admin/role-hierarchies권한 상속을 위한 역할 계층 관리
PasswordPolicyController/admin/password-policy비밀번호 정책 설정(길이, 복잡도, 특수문자)
SystemSettingsController/admin/system-settings현재 OSS 관리자 표면에서 노출되는 시스템 설정
AdminMenuController/admin/menu-management현재 관리자 메뉴 트리 관리
BlacklistController/admin/blacklist해제 워크플로우를 포함한 차단 사용자 관리
IpManagementController/admin/ip-managementCIDR 지원과 만료 기능을 포함한 IP 접근 규칙(ALLOW/DENY)
SessionManagementController/admin/session-management강제 세션 무효화 및 CSV 내보내기를 포함한 활성 세션 추적
PasswordChangeController/password-change정책 검증을 포함한 비밀번호 변경 폼

정책 센터

접근: /admin/policy-center

정책 센터는 현재 OSS 정책 작업의 통합 허브입니다. 현재 OSS 템플릿은 생성, 목록, 시뮬레이터, 매트릭스 네 가지 운영 표면을 노출합니다. 리소스 검토와 권한 정의는 생성 표면에 통합되어 있으며, 예전의 /admin/workbench/resources/admin/policy-builder 경로는 코드에 남아 있어도 기본 OSS UI는 policy-center.html입니다.

생성 표면 (리소스 + 정책 작성)

생성 표면은 리소스 검토/정의와 현재 정책 작성 모드를 함께 제공합니다.

  • 리소스 영역: 탐지된 리소스를 검토하고, 권한을 정의하고, 리소스를 제외 또는 복원하며, 선택한 리소스 맥락에서 정책 작성을 시작합니다.
  • 빠른 모드: 역할-권한 매핑 기반의 빠른 생성 흐름입니다. 기본 ALLOW 정책을 만듭니다.
  • 수동 모드: 동적 Target(URL/METHOD), Rule, Condition(SpEL)을 직접 편집하는 전체 정책 폼입니다. Policy, PolicyTarget, PolicyRule, PolicyCondition 엔티티를 직접 만듭니다.
  • AI 모드: 현재 역할, 권한, 조건, 기존 정책 맥락을 활용해 초안을 생성합니다. 생성된 초안도 일반 저장/승인/활성화 규칙을 그대로 따릅니다.

목록 표면

키워드 검색을 포함한 서버 측 페이지네이션 정책 목록입니다. 수정과 삭제는 POST 기반 폼 흐름과 상세 페이지를 통해 연결됩니다.

시뮬레이터 표면

PolicyCenterController가 노출하는 시뮬레이터 API를 통해 사용자, 권한, 조건 조합에 대한 가상 평가를 수행합니다.

매트릭스 표면

PolicyCenterControllerPolicyMatrixService가 노출하는 매트릭스 API를 통해 정책 매트릭스 화면을 구성합니다.

실시간 보안 현황

접근: /admin/security-monitor

audit_log 테이블 기반의 실시간 보안 이벤트 뷰어입니다. 모든 쿼리는 대규모 데이터셋을 처리할 수 있도록 DB 레벨 페이지네이션을 사용합니다.

대시보드 드릴다운

대시보드 링크는 사전 적용된 필터와 함께 보안 모니터로 이동합니다. 현재 대시보드는 Zero Trust 판정 카드와 보안 지표 카드를 모두 노출합니다.

대시보드 지표필터쿼리
ZT AllowZT_ALLOWeventCategory = 'SECURITY_DECISION' and decision = 'ALLOW'
ZT ChallengeZT_CHALLENGEeventCategory = 'SECURITY_DECISION' and decision = 'CHALLENGE'
ZT BlockZT_BLOCKeventCategory = 'SECURITY_DECISION' and decision = 'BLOCK'
ZT EscalateZT_ESCALATEeventCategory = 'SECURITY_DECISION' and decision = 'ESCALATE'
근무 외 접근AFTER_HOURS09:00-18:00 외 시간 또는 주말 이벤트
AI 보안 분석SECURITY_DECISIONeventCategory = 'SECURITY_DECISION'
관리자 오버라이드ADMIN_OVERRIDEeventCategory = 'ADMIN_OVERRIDE'
고유 IP 수DISTINCT_IP선택한 시간 구간의 클라이언트 IP distinct grouping
평균 위험도HIGH_RISK현재 구현은 riskScore >= 0.4인 레코드로 드릴다운합니다.
보안 오류SECURITY_ERROReventCategory = 'SECURITY_ERROR'

대시보드

대시보드(/admin, /admin/, /admin/dashboard)는 최근 24시간 동안의 audit_log 집계를 바탕으로 종합 보안 개요를 제공합니다.

구성 요소

  • 정책 현황: 전체 정책 수, 활성 리소스 수, 보호 범위
  • Zero Trust 판정: ALLOW/CHALLENGE/BLOCK/ESCALATE/DENY 분포 도넛 차트와 ALLOW/CHALLENGE/BLOCK/ESCALATE 드릴다운 카드
  • 인증 통계: 성공/실패 비율을 보여주는 반원형 게이지
  • 보안 지표: 근무 외 접근, 보안 판정 이벤트, 관리자 오버라이드, 고유 IP, 고위험 레코드, 보안 오류로 이동하는 드릴다운 링크
  • 위협 이벤트: 최근 고위험 이벤트와 보안 모니터 상세 링크
  • 차단된 사용자: Zero Trust 엔진이 최근 차단한 사용자

접근 센터

접근: /admin/access-center

사용자 -> 그룹 -> 역할 -> 권한 전체 체인을 단일 탭 UI에서 관리합니다. 현재 템플릿은 Users, Groups, Roles, Overview 네 개의 탭을 제공합니다.

Users 탭

사용자를 검색하고 그룹 및 직접 역할 배정을 관리합니다. 사용자 상세에는 그룹, 직접 역할, 그룹 상속 역할, 유효 권한이 함께 표시됩니다. 현재 클라이언트는 직접 역할 배정 시 UserRolePermission을 통해 역할별 CRUD 하위셋도 저장할 수 있습니다.

엔드포인트메서드설명
/admin/access-center/api/usersGET키워드 기반 사용자 검색
/admin/access-center/api/users/{userId}/detailGET그룹, 직접 역할, 그룹 역할, 유효 권한을 포함한 사용자 상세
/admin/access-center/api/users/{userId}/groupsPOST사용자 그룹 배정 업데이트
/admin/access-center/api/users/{userId}/rolesPOST직접 역할 배정 및 해당 역할의 CRUD 하위셋 업데이트

Groups 탭

배정된 역할과 현재 멤버를 포함한 모든 그룹을 조회합니다. 그룹-역할 쌍별 CRUD 하위셋은 현재 클라이언트가 GroupRolePermission으로 저장할 수 있습니다.

엔드포인트메서드설명
/admin/access-center/api/groupsGET전체 그룹 목록
/admin/access-center/api/groups/{groupId}/detailGET역할과 멤버를 포함한 그룹 상세
/admin/access-center/api/groups/{groupId}/rolesPOST그룹 역할 배정 및 해당 역할의 CRUD 하위셋 업데이트

Roles 탭

권한과 직접 배정된 사용자를 포함한 모든 역할을 조회합니다. 이 탭에서 역할의 권한 집합을 갱신합니다.

엔드포인트메서드설명
/admin/access-center/api/rolesGET전체 역할 목록
/admin/access-center/api/roles/{roleId}/detailGET권한과 직접 배정된 사용자를 포함한 역할 상세
/admin/access-center/api/roles/{roleId}/permissionsPOST역할 권한 배정 업데이트

Overview 탭

사용자, 그룹, 역할, 권한 수와 함께 사용자 -> 그룹 -> 역할 -> 권한 구조를 설명하는 요약 다이어그램을 보여줍니다.

ID 및 접근 관리

사용자(/admin/users), 그룹(/admin/groups), 역할(/admin/roles), 권한(/admin/permissions)에 대한 표준 CRUD 작업입니다.

접근 체인은 사용자 -> 그룹 -> 역할 -> 권한입니다. 사용자는 그룹 멤버십과 직접 역할 배정을 통해 권한을 상속받습니다.

역할 계층

접근: /admin/role-hierarchies

상위 역할은 하위 역할의 모든 권한을 자동 상속합니다. 계층은 Spring Security의 RoleHierarchy가 해석하며, CustomDynamicAuthorizationManager의 런타임 평가에서도 고려됩니다.

비밀번호 정책

접근: /admin/password-policy

등록과 비밀번호 변경 흐름에서 사용하는 비밀번호 규칙을 설정합니다.

시스템 설정

접근: /admin/system-settings

현재 OSS 관리자 표면에 노출된 시스템 전역 IAM 설정입니다.

메뉴 관리

접근: /admin/menu-management

현재 관리자 내비게이션 구조를 관리합니다.

Zero Trust 운영

실시간 보안 현황

접근: /admin/security-monitor

시간 범위 필터(1h/6h/24h/3d), 카테고리 필터, 대용량 데이터를 위한 DB 페이지네이션을 포함한 실시간 감사 로그 뷰어입니다.

차단된 사용자

접근: /admin/blacklist

Zero Trust 엔진이 차단한 사용자를 관리합니다. 상태(BLOCKED, UNBLOCK_REQUESTED, RESOLVED, TIMEOUT_RESPONDED)별 필터와 관리자 해제 워크플로우를 지원합니다.

보안 관리

IP 관리

접근: /admin/ip-management

ALLOW/DENY 유형의 IP 기반 접근 규칙을 관리합니다. IPv4/IPv6와 CIDR 표기법을 지원하며, 선택적 만료일과 on/off 토글, CSV 내보내기를 제공합니다.

세션 관리

접근: /admin/session-management

페이지네이션과 검색을 포함해 활성 사용자 세션을 모니터링합니다. 세션 ID, 사용자명, 클라이언트 IP, User Agent, 로그인 시간, 마지막 활동을 표시하며, 단일 세션 또는 사용자 전체 세션 강제 무효화를 지원합니다. CSV 내보내기도 가능합니다.

비밀번호 정책

접근: /admin/password-policy

최소/최대 길이, 대문자, 소문자, 숫자, 특수문자 규칙을 설정합니다. 등록 및 비밀번호 변경 시 동일한 정책이 적용됩니다.

관리자 콘솔 아키텍처

현재 OSS 관리자 표면은 탐색 그룹과 운영 영역을 함께 제공합니다. 아래 박스는 현재 메뉴 트리와 주요 통합 작업 공간을 반영합니다.

관리자 콘솔 내비게이션과 운영 영역
Dashboard/admin, /admin/dashboard - 보안 지표, Zero Trust 분포, 위협 이벤트
Policy Center/admin/policy-center - 통합 리소스 검토, 생성, 목록, 시뮬레이터, 매트릭스
Access Center/admin/access-center - 사용자, 그룹, 역할, 개요, CRUD 하위셋 배정
IAM PagesUsers, Groups, Roles, Permissions, Role Hierarchies, Password Policy, System Settings, Menu Management
Zero Trust OperationsSecurity 메뉴 아래의 Security Monitor와 Blocked Users가 조사와 대응 워크플로우를 제공합니다.
Security ManagementOSS 관리자 표면의 IP 관리와 세션 관리

시작 흐름

배포부터 완전한 동적 인가까지의 기본 흐름입니다.

단계작업세부 내용
1애플리케이션 배포리소스 스캐너가 모든 엔드포인트를 자동 탐색합니다.
2Policy Center 열기 (생성 표면의 통합 리소스 영역)탐색된 리소스를 인라인 편집과 함께 검토합니다.
3권한 정의인가가 필요한 리소스에서 "Define & Setup Policy"를 실행합니다.
4정책 생성빠른 모드(역할-권한 매핑), 수동 모드(Target/Rule/Condition), AI 모드(자연어) 중 하나를 사용합니다.
5검증핫 리로드로 정책이 즉시 반영됩니다. 서로 다른 사용자 역할로 테스트합니다.
6모니터링Dashboard와 Security Monitor에서 실시간 보안 가시성을 확인합니다.

설정 속성

YAML
contexa:
  iam:
    admin:
      rest-docs-path: /docs/index.html  # REST API 문서 경로