AI Briefing

롯데ON 통합 인증(Okta) 도입 여정

·2024.12.11 16:39

50개 이상 사내 시스템을 Okta와 자체 계정관리로 통합했다.

롯데ON은 50개 이상의 사내 시스템에 계정이 분산돼 있었고, ETL, LDAP, 그룹사 SSO를 각각 따로 운영하면서 비밀번호 동기화 지연, 개별 관리에 따른 보안 리스크, 다중 인터페이스로 인한 운영 비용 상승을 겪었다. 기존 AS-IS 솔루션MS SQL도 EOS 상태에 들어가 장애 대응이 어려워졌고, 이를 계기로 IAM(Identity and Access Management) 솔루션 도입을 검토했다.

Okta는 클라우드 기반 IAM으로, Single Sign-On, Universal Directory, Multi-Factor Authentication, Lifecycle Management를 제공한다. 롯데ON은 국내외 레퍼런스와 Gartner Access Management 리포트의 평가를 바탕으로 Okta를 선택했다.

도입 초기에는 기존 MS SQL 데이터를 Okta로 마이그레이션하고, 내부 시스템을 애플리케이션으로 등록한 뒤, LCM 정책에 따라 계정 생성·비활성화 자동화와 일배치 연동을 구성했다. 그러나 POC 과정에서 두 가지 한계가 드러났다.

  • 비밀번호 연동 불가: Okta는 암호화된 비밀번호를 외부에 직접 제공하지 못해 그룹 계정관리 시스템까지 동일한 방식으로 연결하기 어려웠다.
  • 조직 계층구조 미지원: 기존 시스템이 사용하던 조직도 hierarchy 구조를 Okta만으로는 그대로 표현할 수 없었다.

이 문제를 해결하기 위해 Okta 단독 구조 대신, 앞단에 자체 계정관리 시스템을 구축했다. Django를 도입해 인증, 권한 관리, ORM, 세션 관리 기능을 빠르게 갖추고, API 중심으로 다음 기능을 제공했다.

  • 비밀번호 변경 시 Okta와 그룹 계정관리 시스템을 동시에 갱신하는 API 호출
  • 기존 시스템의 조직 계층을 반영한 조직 API 제공
  • 실시간 사용자 데이터 조회 API 제공

애플리케이션 연동은 네 가지 방식으로 정리했다.

  1. IN(Integration Network): Okta Application Template 활용
  2. SAML: SAML 2.0 지원 벤더와 연동
  3. SDK: 지원 언어·프레임워크면 SDK로 간단히 연결
  4. API: SDK가 불가능하면 OIDC 플로우를 직접 구현

SaaS나 신규 시스템은 IN/SAML로 쉽게 붙였지만, 기존 시스템은 주로 API 방식으로 SSO를 구현했다. 사용자는 앱에서 Okta의 /authorize로 리디렉션되고, Okta 인증 후 authorization code를 받은 앱이 이를 /token에 전달해 ID TokenAccess Token을 발급받는 흐름이다. 이후 앱은 Access Token을 저장하고 사용자에게 서비스 접근을 허용한다.

세션은 Okta와 각 앱이 독립적으로 관리해야 했다. 한쪽 세션이 먼저 끝나면 불필요한 재로그인이 발생하거나, 반대로 짧은 세션 때문에 사용자 경험이 나빠질 수 있었기 때문이다. 롯데ON은 보안과 편의의 균형을 위해 다음 정책을 적용했다.

  • Maximum Okta Global Session Lifetime: 1일
  • Maximum Okta Global Idle Time: 3시간
  • Okta Global Session Cookies Persist Across Browser Sessions: 비활성

도입 이후에는 패스워드 연동 시간 최대 5시간 절감, Google/Lotte OTP에서 Okta Verify로 전환하며 비용 절감, ETL 시스템 제거에 따른 비용 절감 효과를 얻었다. 앞으로는 워크플로우 자동화와 API 기반 셀프서비스를 더 넓게 적용해 계정 관리와 운영 업무를 추가로 자동화할 계획이다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.