Files
vpd-permission-poc/docs/design/702-hmm-backoffice-identity/README.md

3.0 KiB

HMM 백오피스 사용자·그룹·역할·토큰 관리 전환 (#702)

상태: Implementing 추적: Redmine #702 대상: hmm-backoffice.cloud-handson.com, HMMAIPOC / ADMIN

목적

기존 KB/VPD 데모의 CB_* 사용자·그룹·역할·Bearer 토큰 모델을 HMM HR 데모의 실제 기준 테이블로 바꾼다. 직원과 조직 정보는 이미 적재된 HMM 테이블을 재사용하고, 접근 제어에만 필요한 테이블은 HMM_ACCESS_* 접두어로 추가한다.

기준 테이블과 소유권

관리 기능 기준 테이블 처리 방식
사용자 HMM_HR_EMPLOYEES 기존 직원 ID·사번·성명·소속팀·재직 상태를 직접 사용
조직 참조 HMM_ORG_TEAMS 직원 생성 시 소속팀 검증에 사용
접근 그룹 HMM_ACCESS_GROUPS, HMM_ACCESS_GROUP_MEMBERS HR 조직과 독립적인 논리 접근 그룹을 새로 관리
역할 HMM_ACCESS_ROLES, HMM_EMPLOYEE_ACCESS_ROLES, HMM_GROUP_ACCESS_ROLES 직원 직접 역할과 그룹 상속 역할을 분리
토큰 HMM_ACCESS_BEARER_TOKENS 원문은 발급 화면에서 한 번만 표시하고 SHA-256 해시만 저장
감사 HMM_ACCESS_AUDIT 사용자·그룹·역할·토큰 변경 이력 저장

HMM_ORG_TEAMS는 인사 조직 원장이므로 접근 그룹과 혼합하지 않는다. 이로써 한 직원이 여러 업무 접근 그룹에 속하면서도 인사 소속팀은 하나로 유지된다.

데이터 흐름

HMM_HR_EMPLOYEES ──< HMM_EMPLOYEE_ACCESS_ROLES >── HMM_ACCESS_ROLES
        │
        └──< HMM_ACCESS_GROUP_MEMBERS >── HMM_ACCESS_GROUPS
                                                │
                                                └──< HMM_GROUP_ACCESS_ROLES >── HMM_ACCESS_ROLES

HMM_HR_EMPLOYEES ──< HMM_ACCESS_BEARER_TOKENS
HMM_ACCESS_AUDIT records every backoffice change

화면 및 호환성

  • /usersHMM_HR_EMPLOYEES를 사용자 목록으로 표시한다. 활성/비활성은 employment_statusACTIVE/INACTIVE에 매핑한다.
  • /groupsHMM_ACCESS_GROUPS를 관리한다. HR 팀 이동 기능으로 오해되지 않도록 논리 접근 그룹임을 화면에 명시한다.
  • /roles는 HMM 접근 역할만 관리한다. 기존 VPD 객체 권한 규칙은 이번 범위에서 노출하지 않는다.
  • /tokens는 HMM 직원에게 토큰을 발급·회수한다. KB 이해당사자 원장은 참조하지 않는다.

보안·검증

  • 토큰 원문, DB 비밀번호, Wallet은 테이블·Git·로그에 저장하지 않는다.
  • DDL은 재실행 가능해야 하며 기존 HR 행을 수정하거나 삭제하지 않는다.
  • 배포 전 SQLcl로 테이블·FK·시드 역할을 확인하고, 배포 후 사용자·그룹·역할·토큰 화면을 HTTP 수준에서 확인한다.

롤백

애플리케이션은 이전 JAR로 되돌릴 수 있다. 새 HMM_ACCESS_* 테이블은 운영 데이터가 생긴 뒤에는 삭제하지 않으며, 문제 발생 시 화면 매퍼만 이전 버전으로 복구한다.