피드로 돌아가기
Spring Security 7: MFA, Modular Config, and What Breaks
Dev.toDev.to
Security

Spring Security 7: MFA 내재화 및 설정 구조의 Modularization 실현

Spring Security 7: MFA, Modular Config, and What Breaks

Md Jamilur Rahman2026년 6월 19일6intermediate

Context

기존 Spring Security는 MFA 구현을 위해 외부 라이브러리 의존 또는 개별 커스텀 구현이 필수적인 구조적 한계를 보유함. 또한 SecurityFilterChain 정의 시 기존 Boot 기본 설정을 모두 대체해야 하는 All-or-Nothing 방식의 설정 구조로 인해 설정 누락에 따른 보안 취약점 발생 가능성이 높았음.

Technical Solution

  • FactorGrantedAuthority 및 AllRequiredFactorsAuthorizationManager 도입을 통한 애플리케이션 레벨의 표준 MFA 인증 체계 구축
  • 인증 시점(Duration) 기반의 시간 제한 룰을 적용하여 중요 기능 접근 전 재인증을 강제하는 정교한 보안 정책 설계
  • SecurityFilterChain 전체 교체 방식에서 Customizer 기반의 부분 변경 구조로 전환하여 Boot 기본 설정의 보존 및 유지보수성 향상
  • .and() DSL 제거 및 Lambda 스타일 강제를 통한 설정 가독성 확보 및 체이닝 오류 방지
  • OAuth 2.1 스펙 준수를 위한 Password Grant 제거 및 PKCE(Proof Key for Code Exchange) 기본 적용을 통한 보안 강화

- OAuth2 Password Grant 사용 중인 레거시 클라이언트를 Authorization Code Flow로 전환 - SecurityFilterChain 빈 정의 대신 Customizer<HttpSecurity>를 통한 부분 설정 적용 검토 - Open Rewrite를 활용하여 .and() DSL에서 Lambda 스타일로의 자동 마이그레이션 수행 - 중요 API 엔드포인트에 Duration 기반 MFA 재인증 로직 적용 여부 검토

원문 읽기