Microsoft Entra로 레거시 SSO 현대화, 코드를 다시 작성하지 않고 온프렘 앱 보호

발행: (2026년 3월 16일 오후 02:23 GMT+9)
7 분 소요
원문: Dev.to

I’m happy to translate the article for you, but I need the full text of the post in order to do so. Could you please paste the article’s content (or the portions you’d like translated) here? I’ll keep the source line exactly as you provided and preserve all formatting, markdown, and technical terms while translating the rest into Korean.

문제

  • 레거시 플랫폼(SiteMinder, PingFederate 등)은 라이선스 비용과 지원 비용이 많이 듭니다.
  • 애플리케이션은 종종 Oracle WebLogic, Tomcat, Apache, JBoss 등에서 호스팅됩니다.
  • 현대 프로토콜(OAuth2, OpenID Connect, SAML)이 아니라 HTTP‑헤더 기반 인증을 사용합니다.
  • 이러한 앱을 마이크로서비스로 재구성하는 것은 복잡하고 시간도 많이 들며 위험이 큽니다.

핵심 문제점

  • 레거시 IAM 플랫폼의 높은 라이선스 비용.
  • 애플리케이션 재작성에 소요되는 시간.

더 나은 접근 방식

기존 인증 계약을 유지하면서 identity control plane을 현대화합니다.
Microsoft Entra Application Proxyheader‑based SSO를 사용하면 다음을 수행할 수 있습니다:

  1. 애플리케이션 코드를 변경하지 않고 인증을 Entra로 마이그레이션합니다.
  2. 레거시 접근 관리 플랫폼을 점진적으로 폐기하고 비용이 많이 드는 갱신 주기를 피합니다.

작동 방식

단계설명
1. 사용자 인증사용자는 Microsoft Entra ID로 로그인합니다.
2. 클레임 발급Entra는 신원 클레임을 발급합니다(예: upn, groups).
3. 헤더 변환Application Proxy가 해당 클레임을 HTTP 헤더로 매핑합니다.
4. 전달헤더가 삽입되어 온‑프레미스 앱으로 전달됩니다.
5. 레거시 앱 사용앱은 항상 기대하던 동일한 헤더를 읽습니다(예: SM_USER=john.doe, SM_ROLE=Admin).

앱 관점에서는 변경 사항이 없습니다.

Typical Integration Steps

  1. Publish the on‑premises app via Microsoft Entra Application Proxy.
  2. Enable pre‑authentication with Entra ID.
  3. Configure header‑based SSO and map identity claims to the required headers.

Note: The exact integration details may vary by platform (WebLogic, Tomcat, JBoss, etc.).

Example Platforms

  • WebLogic applications
  • Tomcat or JBoss applications

Optional: Header Translation Layer

Some apps expect very specific legacy headers (e.g., SM_USER, SM_ROLE).
You can add a lightweight Servlet Filter that translates modern Entra headers into those legacy names.

// Example WebLogic filter (simplified)
public class EntraHeaderFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        // Translate Entra headers to SiteMinder‑compatible ones
        String user = request.getHeader("X-ENTRA-USER");
        if (user != null) {
            request = new HeaderMapRequestWrapper(request);
            ((HeaderMapRequestWrapper) request).addHeader("SM_USER", user);
        }

        // Add other translations as needed...
        chain.doFilter(request, response);
    }
}

Register the filter in web.xml:

    EntraHeaderFilter
    com.example.EntraHeaderFilter

    EntraHeaderFilter
    /*

그룹 멤버십 관리

레거시 애플리케이션은 종종 그룹 멤버십에 의존하지만, ID 토큰에는 크기 제한이 있습니다.
실용적인 패턴:

  • 작은 집합의 역할 헤더를 정의합니다(예: Admin, Approver, Reviewer).
  • Entra에서 사용자/그룹을 이러한 역할에 할당합니다.
  • 단일 헤더로 전달합니다:
X-ENTRA-ROLES=Admin,Approver

보안 제어

헤더 기반 인증은 엄격히 제어되어야 합니다:

  • 신뢰할 수 있는 인프라(Application Proxy)만 인증 헤더를 삽입하도록 허용해야 합니다.
  • 권장 제어:
    • 백엔드 접근을 Application Proxy 커넥터 IP로 제한합니다.
    • 애플리케이션 서버에 대한 직접 인터넷 접근을 차단합니다.
    • Entra 사전 인증을 적용합니다.
    • 조건부 액세스와 MFA를 활성화합니다.

올바르게 구현될 경우, 이 아키텍처는 레거시 게이트웨이에 비해 보안 태세를 향상시킬 수 있습니다.

혜택

혜택설명
비용 절감고가의 레거시 IAM 라이선스를 제거합니다.
코드 변경 없음애플리케이션 로직을 다시 작성할 필요가 없습니다.
중앙 집중식 아이덴티티SSO, MFA, 조건부 액세스를 위해 Microsoft Entra를 활용합니다.
간소화된 인프라액세스‑게이트웨이 구성 요소 수를 줄입니다.
보안 강화최신 인증, 조건부 정책, 그리고 공격 표면 감소.
빠른 현대화수백 개의 레거시 앱을 최소 위험으로 현대적인 아이덴티티 생태계로 이동합니다.

Closing Thought

많은 조직은 아이덴티티 현대화가 레거시 애플리케이션의 전면 재작성을 필요로 한다고 가정합니다. 가장 빠르고 위험이 적은 경로는 인증 레이어를 현대화하면서 기존 아이덴티티 계약을 유지하는 것입니다. Microsoft Entra Application Proxy, 헤더 기반 SSO, 그리고 선택적인 호환성 필터를 결합함으로써 기업은 대규모 재개발 없이 레거시 워크로드를 현대적인 아이덴티티 프레임워크로 전환할 수 있습니다.

기업 아이덴티티 아키텍처를 현대화하는 책임이 있다면, 이 접근 방식은 수년간의 엔지니어링 노력과 상당한 라이선스 비용을 절감할 수 있습니다.

IAM 플랫폼 비용 절감

IAM 플랫폼 비용을 d백만 달러 절감합니다.

Upcoming Follow‑Up Article

In the next article, I will walk through the detailed configuration steps for implementing this architecture in enterprise Java environments, covering:

  • Configuring WebLogic as a SAML Service Provider with Microsoft Entra
  • Implementing servlet‑based request interception for Tomcat and JBoss applications
  • Mapping Entra identity claims to legacy header contracts
0 조회
Back to Blog

관련 글

더 보기 »

트라비고

Gemini와 함께 말하는 속도만큼 빠르게 여행하세요! 라이브 에이전트가 몰입형 스토리텔링 및 3D 내비게이션과 만나는 곳. 이 프로젝트는 Gemini Live Ag...에 진입하기 위해 만들어졌습니다.