피드로 돌아가기
Filament v5 Multi-Tenancy: The Complete Implementation Guide
Dev.toDev.to
Backend

Many-to-Many 기반 Shared Database 구조를 통한 Filament v5 Multi-Tenancy 구현

Filament v5 Multi-Tenancy: The Complete Implementation Guide

Hafiz2026년 5월 4일13intermediate

Context

SaaS 애플리케이션의 핵심인 다중 고객 데이터 격리 요구사항 해결 필요. 기존의 단순 Global Scope 방식은 사용자가 여러 조직에 소속되어 컨텍스트를 전환해야 하는 복잡한 Many-to-Many 관계를 처리하는 데 한계 존재.

Technical Solution

  • Shared Database 아키텍처 기반의 Team-User 다대다 관계 설계를 통한 데이터 격리 구현
  • HasTenants 인터페이스 구현을 통한 User별 접근 가능 Tenant 목록의 동적 관리
  • canAccessTenant 메서드 정의를 통한 URL 파라미터 조작 방지 및 요청 단위의 Security Gate 구축
  • Filament 내장 Tenancy 시스템을 활용한 Resource 단위의 자동 Scoping 적용으로 쿼리 누수 차단
  • Tenant Registration 설정을 통한 미소속 사용자의 진입 경로 및 팀 생성 워크플로우 강제
  • Pivot Table 내 role 컬럼 정의를 통한 Tenant 내 사용자 권한 제어 기반 마련

- User 모델에 canAccessTenant 로직을 구현하여 URL 기반의 권한 우회 가능성 차단 - 관계형 데이터를 로드하는 Form Component의 경우 수동 Scoping 적용 여부 검토 - 사용자가 소속된 팀이 없을 때를 대비한 Tenant Registration 페이지 설정 필수 확인 - 단순 One-to-Many 관계일 경우 Tenancy 시스템 대신 Global Scope 사용 고려

원문 읽기