Azure AD 애플리케이션 프록시를 통한 원격 액세스 보안

Azure AD 애플리케이션 프록시를 통한 원격 액세스 보안

2025년 3월 14일

이 기술 및 교육 문서의 목적은 보안 분석가, IT 관리자 및 시스템 엔지니어가 온-프레미스 웹 애플리케이션에 대한 원격 액세스를 보호하기 위해 Azure AD 애플리케이션 프록시를 구현하고 구성하는 과정을 안내하는 것입니다. 사용자가 어디에서나 내부 리소스에 액세스해야 하는 하이브리드 작업 환경에서는 이러한 액세스에 대한 보안이 필수적입니다. Azure AD 애플리케이션 프록시는 복잡한 VPN이나 ​​DMZ[1] 없이 원격 사용자에게 온-프레미스 웹 애플리케이션을 게시하기 위한 안전하고 단순화된 솔루션을 제공합니다.

소개

기존에는 내부 애플리케이션에 원격으로 액세스하려면 VPN(가상 사설망)을 설정하거나 애플리케이션을 DMZ(경계 네트워크)에 노출해야 했으며 이로 인해 복잡성과 잠재적인 공격 벡터가 추가되었습니다. 원격 및 하이브리드 작업 모델의 채택이 증가함에 따라 조직에는 여전히 온프레미스에 있는 레거시 애플리케이션에 대한 액세스를 제공하기 위한 보다 안전하고 효율적인 방법이 필요합니다[2].

Azure AD 애플리케이션 프록시는 사용자가 어느 위치에서든 온-프레미스 웹 애플리케이션에 안전하게 액세스할 수 있게 해주는 Azure Active Directory(현재 Microsoft Entra ID)의 기능입니다. 이는 인증 및 권한 부여를 처리하는 Azure AD를 통해 내부 애플리케이션 트래픽을 라우팅하는 역방향 프록시 역할을 합니다. 즉, MFA(다단계 인증) 및 조건부 액세스와 같은 Azure AD 보안 기능을 활용하여 온프레미스 애플리케이션을 SaaS 애플리케이션인 것처럼 액세스할 수 있습니다[3].

이 실용적인 가이드에서는 전제 조건, 애플리케이션 프록시 커넥터 설치 및 구성, 다양한 유형의 애플리케이션 게시(웹앱, 원격 데스크톱 웹 클라이언트, SharePoint), 조건부 액세스 정책과의 통합, 원격 액세스 테스트 및 유효성 검사 방법을 다룹니다. 독자가 이러한 기능을 구현, 테스트 및 검증할 수 있도록 단계별 지침, 실제 예제 및 간결한 설명이 제공됩니다. 또한 안전하고 효율적인 원격 액세스를 자율적이고 전문적이며 안정적으로 보장하기 위한 보안 팁, 규정 준수 확인 및 모범 사례에 대해 논의합니다.

Azure AD 애플리케이션 프록시가 원격 액세스에 중요한 이유는 무엇입니까?

  • 향상된 보안: Azure AD에서 인증 및 권한 부여를 중앙 집중화하여 온-프레미스 애플리케이션에 대한 MFA, 조건부 액세스 및 ID 보호와 같은 보안 기능을 사용할 수 있습니다.
  • 단순화된 액세스: 온프레미스 애플리케이션에 대한 SSO(Single Sign-On) 환경을 제공하여 사용자가 더 쉽게 액세스할 수 있도록 합니다.
  • 복잡성 감소: 원격 액세스를 위한 VPN 또는 DMZ의 필요성을 제거하여 네트워크 아키텍처를 단순화하고 공격 표면을 줄입니다.
  • 비용 효율적: 원격 액세스를 위한 추가 하드웨어나 소프트웨어가 필요 없이 기존 Azure AD 인프라를 사용합니다.
  • 유연한 게시: 헤더 기반 응용 프로그램, SharePoint, 원격 데스크톱 웹 클라이언트 및 기타 사용자 지정 웹 응용 프로그램을 포함한 광범위한 웹 응용 프로그램의 게시를 지원합니다.

전제조건

Azure AD 애플리케이션 프록시를 구성하려면 다음 항목이 필요합니다.

  1. 라이선스: Azure AD Premium P1 또는 P2 구독(또는 Microsoft 365 E3/E5와 같이 이러한 기능을 포함하는 라이선스)[4].
  2. 관리 액세스: Azure Portal('https://portal.azure.com')에서 '글로벌 관리자' 또는 '애플리케이션 관리자' 역할을 가진 계정입니다.
  3. 커넥터용 Windows Server: 게시하려는 애플리케이션과 Azure AD에 연결되어 있는 온프레미스 네트워크 내의 Windows Server(2012 R2 이상) 서버입니다. 이 서버에는 아웃바운드 인터넷 액세스(Azure AD의 경우 포트 80 및 443, Azure AD 애플리케이션 프록시 서비스의 경우 443)가 있어야 합니다[5].
  4. 온프레미스 웹 애플리케이션: 원격으로 액세스할 수 있도록 하려는 내부 웹 애플리케이션입니다.
  5. 사용자 지정 도메인(선택 사항): 게시된 애플리케이션에 친숙한 URL을 사용하려는 경우 Azure AD에서 확인된 사용자 지정 도메인입니다.

단계별: Azure AD 애플리케이션 프록시 구성

애플리케이션 프록시를 구성하고 애플리케이션을 게시해 보겠습니다.

1. 애플리케이션 프록시 커넥터 설치 및 구성

커넥터는 연결하는 경량 에이전트입니다.Azure AD 및 온-프레미스 애플리케이션에 적용됩니다.

  1. 브라우저를 열고 Azure Portal https://portal.azure.com으로 이동합니다.
  2. 필요한 권한이 있는 계정으로 로그인하세요.
  3. 상단 검색 필드에 'Azure Active Directory'를 입력하고 결과에서 선택합니다.
  4. 왼쪽 탐색 창의 '관리' 아래에서 애플리케이션 프록시를 선택합니다.
  5. '커넥터 서비스 다운로드'를 클릭하세요.

  6. 커넥터용으로 지정한 온프레미스 Windows 서버에서 다음을 수행합니다.

    • 커넥터 설치 프로그램(AADApplicationProxyConnectorInstaller.exe)을 다운로드하고 실행합니다.
    • 설치 마법사의 지시를 따르십시오. 설치하는 동안 Azure AD 전역 관리자 자격 증명을 사용하여 로그인하라는 메시지가 표시됩니다.
    • 성공적으로 설치되면 커넥터 서비스가 자동으로 시작됩니다.
  7. Azure Portal로 돌아가서 애플리케이션 프록시 페이지에서 새로 설치된 커넥터가 '활성' 상태로 '커넥터' 목록에 나타나는지 확인합니다.

    • 설명: 고가용성 및 로드 밸런싱을 위해 커넥터를 2개 이상 설치하는 것이 좋습니다. 커넥터는 자동으로 업데이트되므로 항상 최신 버전을 유지할 수 있습니다.

2. 온프레미스 웹 애플리케이션 게시

내부 웹 애플리케이션을 게시해 보겠습니다. 이 예에서는 http://minhaappinterna.local:8080에서 액세스할 수 있는 MinhaAppInterna라는 내부 웹 애플리케이션이 있다고 가정합니다.

  1. Azure Active Directory의 왼쪽 탐색 창에서 '관리' 아래의 엔터프라이즈 애플리케이션을 선택합니다.
  2. '+ 새 애플리케이션'을 클릭합니다.
  3. '갤러리에서 찾을 수 없는 다른 애플리케이션 통합(비갤러리)'을 클릭하세요.
  4. 기본사항:
    • 이름: 의미 있는 이름을 지정합니다(예: MyInternal-ProxyApp).
    • 애플리케이션 유형: '온프레미스 애플리케이션'을 선택합니다.
  5. '추가'를 클릭하세요.

  6. 애플리케이션을 생성하면 애플리케이션 관리 페이지로 리디렉션됩니다. 왼쪽 탐색 창의 '관리'에서 애플리케이션 프록시를 선택합니다.

  7. 기본 설정:

    • 내부 URL: 애플리케이션의 내부 URL을 입력합니다(예: http://minhaappinterna.local:8080). 커넥터가 이 URL을 확인하고 액세스할 수 있는지 확인하세요.
    • 외부 URL: 이 URL은 기본 Azure AD 도메인(예: myappinternal-proxy.msappproxy.net)을 기반으로 자동 생성됩니다. 사용자 정의 도메인이 있는 경우 이를 설정할 수 있습니다.
    • 사전 인증 방법: 'Azure Active Directory'를 선택합니다(최대 보안을 위해 권장).
    • 커넥터 그룹: 커넥터가 여러 개인 경우 기본 커넥터 그룹 또는 사용자 지정 그룹을 선택합니다.
  8. 저장을 클릭합니다.

  9. 왼쪽 탐색 창의 '관리'에서 사용자 및 그룹을 선택합니다.

  10. '+사용자/그룹 추가'를 클릭하고 이 애플리케이션에 액세스할 수 있는 Azure AD 사용자 또는 그룹을 할당합니다.

    • 설명: 게시된 애플리케이션에 액세스할 수 있는 사용자를 제어하려면 사용자 및 그룹을 할당하는 것이 중요합니다. Azure AD 애플리케이션 프록시는 인증되고 권한이 부여된 사용자만 내부 애플리케이션에 연결할 수 있도록 보장합니다.

3. 게시된 애플리케이션에 대한 조건부 액세스 구성

조건부 액세스를 사용하면 애플리케이션 액세스에 대해 MFA와 같은 추가 보안 정책을 적용할 수 있습니다.

  1. Azure Active Directory의 왼쪽 탐색 창에서 보안 > 조건부 액세스를 선택합니다.
  2. + 새 정책을 클릭합니다.
  3. 기본사항:
    • 이름: 의미 있는 이름을 지정합니다(예: MFA_para_MinhaAppInternal).
  4. 책임:
    • ID 사용자 또는 워크로드: 정책의 영향을 받을 사용자 및 그룹을 선택합니다(예: Grupo_Usuarios_MinhaAppInterna).
    • 클라우드 애플리케이션 또는 작업: 'MyAppInternal-Proxy'를 선택합니다.
  5. 액세스 제어:
    • 허용: '액세스 허용' 및 '다단계 인증 필요'를 선택합니다.
  6. 정책 활성화: '활성화'를 선택합니다.
  7. 만들기를 클릭합니다.

    • 설명: 이 정책은 온프레미스 애플리케이션이 기본적으로 MFA를 지원하지 않는 경우에도 'MyInternal-ProxyApp'에 액세스하려고 시도하는 모든 사용자에게 다단계 인증을 수행하라는 메시지가 표시되도록 합니다.

4. 다른 유형의 애플리케이션 게시

애플리케이션 프록시를 사용하여 원격과 같은 다른 유형의 리소스를 게시할 수 있습니다.데스크톱 웹 클라이언트 및 SharePoint.

4.1. 원격 데스크톱 웹 클라이언트 게시

  1. 섹션 2의 단계에 따라 새로운 엔터프라이즈 애플리케이션을 생성합니다.
  2. 애플리케이션 프록시 구성에서:
    • 내부 URL: 원격 데스크톱 웹 클라이언트 서버의 URL을 입력합니다(예: https://rdweb.contoso.com/RDWeb).
    • 외부 URL: 자동으로 생성됩니다.
    • 사전 인증 방법: 'Azure Active Directory'.
    • URL 번역 헤더 유형: 백엔드 URL 헤더.
  3. 사용자/그룹을 할당합니다.

4.2. SharePoint 온프레미스 게시

  1. 섹션 2의 단계에 따라 새로운 엔터프라이즈 애플리케이션을 생성합니다.
  2. 애플리케이션 프록시 구성에서:
    • 내부 URL: SharePoint 사이트의 URL을 입력합니다(예: https://sharepoint.contoso.local).
    • 외부 URL: 자동으로 생성됩니다.
    • 사전 인증 방법: 'Azure Active Directory'.
    • URL 번역 헤더 유형: 백엔드 URL 헤더.
  3. 사용자/그룹을 할당합니다.

검증 및 테스트

애플리케이션에 안전하게 액세스할 수 있도록 원격 액세스를 테스트하는 것이 중요합니다.

1. 게시된 애플리케이션에 대한 액세스 테스트

  1. 시나리오: 회사 네트워크 외부(예: 집)의 컴퓨터에서 브라우저를 열고 MinhaAppInternal-Proxy외부 URL(예: https://minhaappinterna-proxy.msappproxy.net)로 이동합니다.
  2. 예상 작업: Azure AD 로그인 페이지로 리디렉션되어야 합니다. Azure AD 자격 증명을 입력하고 MFA를 구성한 경우 완료한 후에는 온-프레미스 MyApp으로 리디렉션되어야 합니다.
  3. 확인:
    • 애플리케이션이 올바르게 로드되고 상호 작용할 수 있는지 확인하십시오.
    • Azure AD 로그인 로그를 확인하여 애플리케이션 프록시를 통해 액세스가 인증되었고 MFA가 적용되었는지 확인하세요.

2. Azure AD 로그인 로그 확인

  1. Azure Portal에서 Azure Active Directory > 모니터링 > 인바운드 로그로 이동합니다.
  2. Application(MyAppInternal-Proxy)을 기준으로 로그를 필터링합니다.
  3. '조건부 액세스 상태'를 포함한 로그인 세부정보를 확인합니다('성공'이 표시되고 MFA가 적용되었음을 나타내야 함).

보안 팁 및 모범 사례

  • 항상 Azure AD 사전 인증 사용: Azure AD 사전 인증은 인증되고 권한이 부여된 사용자만 내부 네트워크에 연결하도록 보장하는 가장 안전한 방법입니다. 사전 인증을 처리할 수 없는 애플리케이션에 꼭 필요한 경우가 아니면 '통과'를 사용하지 마세요.
  • 조건부 액세스: 조건부 액세스를 사용하여 애플리케이션 프록시를 통해 게시된 모든 애플리케이션에 대해 MFA, 위치 제한, 장치 규정 준수 등과 같은 추가 보안 정책을 적용합니다.
  • 커넥터 그룹: 커넥터를 그룹으로 구성하여 애플리케이션을 격리하거나 더 나은 성능을 위해 커넥터를 특정 애플리케이션에 더 가깝게 만듭니다.
  • 고가용성: 고가용성과 복원성을 보장하려면 별도의 서버에 커넥터를 두 개 이상 설치하세요. 해당하는 경우 다른 지역이나 가용성 영역에 설치하는 것을 고려하세요.
  • 커넥터 유지 관리: 커넥터가 자동으로 업데이트되지만 Azure Portal에서 상태를 모니터링하여 항상 활성 상태이고 정상인지 확인하세요.
  • 커넥터 서버 보안: 커넥터가 설치된 서버를 보호합니다. 최신 상태를 유지하고, 최소 권한 원칙을 적용하고, 의심스러운 활동이 있는지 모니터링하세요.
  • 성능 최적화: 트래픽이 많거나 짧은 대기 시간이 필요한 애플리케이션의 경우 애플리케이션 서버 및 사용 가능한 대역폭과 관련하여 커넥터의 위치를 ​​고려하세요.
  • 모니터링: Azure AD 로그인 로그 및 커넥터 로그를 모니터링하여 의심스러운 활동이나 액세스 문제를 감지합니다.

일반적인 문제 해결

  • 액세스 오류(404, 500 등):
    • 내부 URL 확인: 애플리케이션 프록시에 구성된 내부 URL이 올바른지, 커넥터가 설치된 서버에서 직접 액세스할 수 있는지 확인하세요.
    • 커넥터 확인: Azure Portal에서 커넥터가 '활성'인지 확인합니다. 서버에서 커넥터 서비스를 다시 시작합니다.
    • 커넥터 그룹 확인: 애플리케이션에 할당된 커넥터 그룹이m 적어도 하나의 활성 커넥터.
    • 로컬 방화벽: 커넥터 서버 또는 애플리케이션 서버의 방화벽이 트래픽을 차단하고 있는지 확인합니다.
  • 애플리케이션이 올바르게 로드되지 않습니다(렌더링 문제):
    • 헤더 번역: 일부 애플리케이션의 경우 애플리케이션 프록시 설정에서 'URL 번역 헤더 유형'을 '백엔드 URL 헤더' 또는 '프런트엔드 URL 헤더'로 조정해야 할 수도 있습니다.
    • 인코딩된 링크: 내부 URL에 대한 하드코딩된 링크가 있는 애플리케이션에는 문제가 발생할 수 있습니다. 가능하면 애플리케이션 프록시의 '링크 변환'을 사용하거나 애플리케이션을 재구성하는 것을 고려하세요.
  • SSO 문제:
    • SSO 구성: 엔터프라이즈 애플리케이션에서 SSO 설정을 확인합니다. 페더레이션되지 않은 애플리케이션의 경우 '비밀번호 기반 SSO' 또는 '헤더 SSO'를 구성해야 할 수도 있습니다.
    • Kerberos 제한 위임(KCD): IWA(Windows 통합 인증)를 사용하는 애플리케이션의 경우 커넥터에 대한 Active Directory에서 KCD가 올바르게 구성되었는지 확인하세요.
  • 합법적인 사용자를 차단하는 조건부 액세스:
    • 조건부 액세스 정책을 주의 깊게 검토하세요. 사용자 또는 그룹이 올바르게 포함되거나 제외되는지 확인하십시오.
    • 조건부 액세스의 'What If' 도구를 사용하여 액세스를 시뮬레이션하고 정책이 시행되거나 차단되는 이유를 이해하세요.
  • 오프라인 커넥터:
    • Azure AD(아웃바운드 포트 80 및 443) 및 애플리케이션 프록시 서비스(아웃바운드 포트 443)에 대한 커넥터 서버의 네트워크 연결을 확인합니다.
    • 서비스 관련 오류는 커넥터 서버의 Windows 이벤트 로그를 확인하세요.
    • Microsoft AAD Application Proxy Connector 서비스가 실행 중인지 확인하세요.

결론

Azure AD 애플리케이션 프록시는 제로 트러스트 모델의 원칙에 맞춰 온-프레미스 웹 애플리케이션에 대한 액세스를 원격 사용자로 확장하기 위한 강력하고 안전한 도구입니다. Azure AD에서 인증 및 권한 부여를 중앙 집중화하고 복잡한 원격 액세스 인프라의 필요성을 제거함으로써 조직은 보안 아키텍처를 단순화하는 동시에 위협 보호를 강화할 수 있습니다. 보안 이점을 극대화하고 유연한 사용자 경험을 보장하려면 신중한 구현, 조건부 액세스와의 통합 및 지속적인 모니터링이 필수적입니다. 이 실용적인 가이드를 통해 보안 전문가와 IT 관리자는 Azure AD 애플리케이션 프록시를 구성, 검증 및 관리하여 중요한 애플리케이션에 대한 원격 액세스를 보호하고 조직의 보안 태세를 강화할 수 있습니다.


참고자료:

[1] 마이크로소프트 런. Microsoft Entra 애플리케이션 프록시를 사용하여 로컬 앱을 게시하세요. 사용 가능: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/overview-what-is-app-proxy [2] 마이크로소프트 런. Microsoft Entra 애플리케이션 프록시를 통한 원격 액세스를 위한 로컬 애플리케이션을 추가하세요. 사용 가능: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-add-on-Premise-application [3] 마이크로소프트 런. Microsoft Entra 애플리케이션 프록시를 사용하여 원격 데스크톱 게시. 사용 가능: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-integrate-with-remote-desktop-services [4] 마이크로소프트 런. Microsoft Entra ID 라이선스. 사용 가능: https://learn.microsoft.com/pt-br/entra/identity/licensing-azure-active-directory [5] 마이크로소프트 런. Microsoft Entra 애플리케이션 프록시 커넥터. 사용 가능: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-connectors [6] 마이크로소프트 런. Microsoft Enter ID의 조건부 액세스. 이용 가능: https://learn.microsoft.com/pt-br/entra/identity/conditional-access/overview [7] 마이크로소프트 런. Microsoft Entra 애플리케이션 프록시 커넥터 문제를 해결합니다. 사용 가능: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-troubleshoot-connectors