Files
vpd-permission-poc/docs/reports/2026-07-23-hmm-leave-team-vpd-verification.md

2.5 KiB
Raw Blame History

HMM 휴가 팀 계층 VPD 적용·검증 보고서

  • 일자: 2026-07-23
  • Redmine: #707
  • 브랜치: hmm-backoffice
  • 대상 DB: HMMAIPOC ADMIN
  • 대상 서비스: https://hmm-backoffice.cloud-handson.com

적용 결과

database/adb/72_hmm_leave_team_vpd.sql을 적용해 다음 구성을 활성화했다.

구성 결과
신뢰 컨텍스트 HMM_ACCESS_CTX
토큰 검증 패키지 HMM_ACCESS_CTX_PKG / VALID
정책 함수 HMM_LEAVE_VPD_FILTER / VALID
휴가 잔여 정책 HMM_LEAVE_BALANCES.HMM_LEAVE_SCOPE_POLICY / ENABLE=YES
휴가 신청 정책 HMM_LEAVE_REQUESTS.HMM_LEAVE_SCOPE_POLICY / ENABLE=YES
팀장 역할 E1001 → HMM_HR_MANAGER
팀원 역할 E1002~E1007 → HMM_HR_VIEWER
저장 권한 두 객체 × ALL, MANAGED_TEAM, SELF = 6건

실제 행 접근 검증

ADMIN에는 EXEMPT ACCESS POLICY가 있으므로 이를 결과 검증에 사용하지 않았다. 별도의 비면제 임시 DB 사용자를 만들고, SHA-256 해시만 DB에 저장한 임시 E1001/E1002 토큰으로 조회한 뒤 사용자와 토큰을 즉시 제거했다.

검증 세션 휴가 잔여 휴가 신청 교차 사용자 조건 조회
컨텍스트 없음 0 0 -
E1001 팀장 7 8 직접 보고 팀원 포함
E1002 팀원 1 1 E1003 신청 0
무효 토큰 0 - 컨텍스트 초기화·차단

결과: VPD_VERIFY=PASS

애플리케이션 검증

  • Maven: 105 tests, 0 failures, 0 errors
  • 배포 JAR SHA-256: 1b10582e72e4639902ea8f65156af1067941af3ef50cde1d9f767c88f048fb85
  • systemd: vpd-backoffice.service active
  • 공개 로그인: HTTP 200
  • 실제 브라우저 전수 검사:
    • 관리 화면 26개: 실패 0
    • HMM 정형 원장 6개: 실패 0
    • ORA-*, 데이터 처리 오류, KB/POC 잔존 문구: 0
    • page error: 0
    • console error: 0

특히 /roles, /permissions, /vpd-policies, /vpd-filter-runtime에서 HMM 역할 3개, 휴가 원장 권한 6개, 정책 2개와 HMM_LEAVE_VPD_FILTER가 표시되는 것을 화면으로 확인했다.

보안 정리

  • DB 비밀번호, 토큰 원문, 해시는 Git·Redmine·보고서에 기록하지 않았다.
  • 임시 비면제 DB 사용자는 검증 종료 시 DROP USER ... CASCADE로 제거했다.
  • 임시 토큰 2건은 검증 종료 시 삭제했다.
  • HR 관리자 역할은 전체 접근 규칙만 준비하고 데모 사용자에게 자동 부여하지 않았다.