← 목록으로
PROJECT · 전체

Okta API 기반 커스텀 SSO/SLO 필터 개발

SSO/SLO(Okta)Java8SpringBootLinux(RedHat)

1. 도입 배경 및 과제 (Background & Problem)

사내 메시징 관리 솔루션의 레거시(Legacy) 버전과 최신 Okta에서 제공하는 플러그인(Plugin) 간의 JDK 호환성 충돌 이슈가 발생했습니다. 이로 인해 기성 라이브러리에 의존하지 않고 별도의 HTTP 통신 소스를 직접 개발하여 SSO(Single Sign-On) 로그인을 연동해야 하는 중대한 아키텍처 과제가 부여되었습니다.

2. 기술적 구현 및 적용 (Technical Implementation)

보안 및 비즈니스 로직의 우선순위를 고려하여, 애플리케이션 진입점인 스프링 시큐리티(Spring Security) 필터(Filter) 체인이 동작하기 직전에 Okta 인증 점검이 선행되도록 커스텀 필터(Custom Filter) 단계를 추가 설계했습니다.

이후 구현체 구체화 과정에서 향후 다른 벤더사의 SSO Agent 요구사항이 추가될 것에 대비해, 인증 수행에 필요한 필수 기능을 서비스 인터페이스(Service Interface)로 추상화하여 구현함으로써 높은 시스템 호환성 및 확장성(Scalability)을 확보했습니다.

3. 성과 및 유용성 (Result & Benefit)

플러그인 버전 충돌이라는 인프라적 제약을 유연한 애플리케이션 아키텍처(Application Architecture) 설계로 극복했습니다. 이 커스텀 필터 구조를 통해 향후 새로운 인증 프로토콜이나 SSO 솔루션 도입 시에도 추가적인 코어 코드 수정 없이 인터페이스 단위 대응만으로 즉시 적용 가능한 유연한 인증 체계를 완성했습니다.

📎 Flow Diagram: resources/diagrams/sso-filter.html

탭: 메뉴 접근 권한(RBAC) 인터페이스 및 데이터 동기화 적용

1. 도입 배경 및 과제 (Background & Problem)

고객사 운영 환경에서 계정별로 메뉴 접근 권한(RBAC)을 철저히 분리해야 하는 강력한 요구사항이 있었습니다. 기존 레거시 기능 내 다수의 권한 분리 버그가 발견되어, 해당 기능을 재사용하면서도 결함을 근본적으로 차단하기 위한 통제 레이어를 포스트(Post) 인터페이스 단계에 추가해야 했습니다.

2. 기술적 구현 및 적용 (Technical Implementation)

인사 정보 및 권한 최신화를 위해 스프링 배치(Spring Batch)를 활용, Okta 측에서 넘어오는 응답(Response) 데이터와 내부 DB 특정 테이블 간의 계정 정보 동기화(Sync) 작업을 주기적으로 스케줄링(Scheduling)했습니다.

실시간 접근 제어의 경우, 동기화된 권한 DB를 기준으로 확인 로직을 구성하되 인터셉터(Interceptor) 내에 분기 처리를 적용했습니다. 핵심 로직과 무관한 정적 리소스(Resource)나 백그라운드 Ajax 호출의 경우 antMatch 패턴을 통해 인증 필터를 안전하게 우회하도록 설계함으로써 기존 운영 소스의 사이드 이펙트(Side-Effect)를 무결점으로 방어했습니다.

3. 성과 및 유용성 (Result & Benefit)

Spring Batch를 통한 자동화된 다중 동기화 로직과 Interceptor를 통한 타이트하고 즉각적인 메뉴 접근 제어가 완벽히 결합되었습니다. 우회 필터링 등 방어적 설계(Defensive Architecture)를 적용하여 안정성을 극대화한 덕분에, 소스 적용 즉시 고객사에 버그 없이 원활하게 안정적인 권한 통제 운영 환경을 배포할 수 있었습니다.

📎 Flow Diagram: resources/diagrams/rbac-flow.html