Skip to content

멀티테넌트 & RBAC 보안 (IAM) ​

SyncBoot의 보안 및 권한 모듈은 엔터프라이즈 환경에 맞춘 다계층 데이터 격리와 접근 제어를 제공합니다.


멀티테넌트 격리 방식 ​

운영 환경과 보안 요구사항에 따라 두 가지 격리 방식을 구성할 수 있습니다.

  1. 공유 데이터베이스 방식 (Shared Database):

    • 도메인 테이블의 tenant_id 컬럼을 기준으로, MyBatis-Plus 인터셉터가 실행되는 쿼리에 자동으로 WHERE tenant_id = ? 조건을 주입합니다.
  2. 독립 데이터베이스 방식 (Dedicated Database):

    • 요청 시점의 테넌트 식별자에 따라 Dynamic DataSource를 전환하여 물리적으로 분리된 데이터베이스에 접속합니다.

4단계 권한 제어 체계 (RBAC Matrix) ​

구분적용 대상제어 방식
1. 메뉴 접근 제어웹 관리자 콘솔 메뉴사용자 역할(Role)에 인가된 메뉴만 렌더링
2. 기능 및 버튼 제어등록, 수정, 삭제, 엑셀 다운로드v-hasPermi 디렉티브를 통한 버튼 활성화 제어
3. API 엔드포인트 제어백엔드 REST API 경로Spring Security @PreAuthorize 애노테이션 검증
4. 데이터 수준 제어행 단위(Row-Level) 및 컬럼 마스킹SQL 조건 자동 주입 및 민감정보 마스킹 애노테이션 적용

동적 데이터 마스킹 ​

개인정보 등 민감 데이터는 백엔드 응답 단계에서 지정된 마스킹 규칙에 따라 처리할 수 있습니다.

java
public class UserDetailDTO {

    private Long id;
    private String name;

    @Desensitize(type = DesensitizeType.PHONE) // 010-****-5678
    private String phoneNumber;

    @Desensitize(type = DesensitizeType.EMAIL) // qu***@empasy.com
    private String email;

    @Desensitize(type = DesensitizeType.ID_CARD) // 900101-1******
    private String residentNumber;
}