피드로 돌아가기
MongoDB-backed ASP.NET Core Identity, without the EF Core detour
Dev.toDev.to
Backend

EF Core 제거를 통한 MongoDB 직결 Identity 스토어 구현

MongoDB-backed ASP.NET Core Identity, without the EF Core detour

Michael Jordan2026년 6월 24일3intermediate

Context

MongoDB 환경에서 ASP.NET Core Identity 도입 시 EF Core를 통한 RDBMS 추상화 계층 강제 사용으로 인한 오버헤드 발생. 단일 데이터 스토어 환경임에도 불필요한 두 번째 데이터 액세스 스택을 추가해야 하는 아키텍처적 비효율성 존재.

Technical Solution

  • MongoDB.Driver를 직접 사용하는 Store Provider 구현으로 EF Core 의존성 완전 제거
  • Generic Type 설계를 통한 Primary Key 타입(Guid, string 등)의 유연한 선택 구조 확보
  • Distributed Lock 기반의 스키마 마이그레이션 로직으로 다중 인스턴스 환경 내 Race Condition 방지
  • NormalizedUserName 및 NormalizedEmail 등에 대한 Unique Index 자동 생성으로 데이터 무결성 보장
  • Identity의 ConcurrencyStamp를 활용한 Optimistic Concurrency 제어로 동시성 쓰기 충돌 해결
  • PII 보호를 위한 ProtectPersonalData 기능을 의도적으로 제외하여 런타임 예외를 통한 보안 설정 누락 방지

- MongoDB 기반 Identity 구축 시 EF Core 도입 전 Direct Driver Provider 검토 - 다중 Pod 배포 환경에서 인덱스 생성 및 마이그레이션 시 Distributed Lock 적용 여부 확인 - 데이터 정합성을 위해 Normalized 필드에 대한 Unique Index 설정 및 기존 데이터 중복 제거 선행 - PII 암호화 요구사항 존재 시 Application Layer 또는 Database Level Encryption 별도 설계

원문 읽기