Microsoft Entra 애플리케이션 프록시를 사용하여 앱에 원격으로 액세스하는 경우 보안 고려 사항

이 문서에서는 Microsoft Entra 애플리케이션 프록시를 사용할 때 사용자와 애플리케이션을 안전하게 유지하는 구성 요소에 대해 설명합니다.

다음 다이어그램은 Microsoft Entra ID를 통해 온-프레미스 애플리케이션에 안전하게 원격으로 액세스할 수 있는 방법을 보여 줍니다.

Microsoft Entra 애플리케이션 프록시를 통한 보안 원격 액세스의 다이어그램

보안 이점

Microsoft Entra 애플리케이션 프록시는 많은 보안 이점을 제공합니다. 이점 목록은 다음과 같습니다.

  • 인증된 액세스
  • 조건부 액세스
  • 트래픽 종료
  • 모든 아웃바운드 액세스
  • 클라우드 규모 분석 및 기계 학습
  • 서비스로서의 원격 액세스
  • Microsoft DDoS(분산 서비스 거부) 보호 서비스

인증된 액세스

Microsoft Entra 사전 인증을 사용하는 경우 인증된 연결만 네트워크에 액세스할 수 있습니다.

Microsoft Entra 애플리케이션 프록시는 모든 인증에 대해 Microsoft Entra STS(보안 토큰 서비스)를 사용합니다. 인증된 ID만 백 엔드 애플리케이션에 액세스할 수 있기 때문에 사전 인증은 기본적으로 상당한 수의 익명 공격을 차단합니다.

통과를 사전 인증 방법으로 선택하는 경우 이 이점이 없습니다.

조건부 액세스

네트워크 연결이 설정되기 전에 다양한 정책 제어를 적용합니다.

조건부 액세스를 사용하면 사용자가 애플리케이션에 액세스할 수 있는 방법에 대한 제한을 정의할 수 있습니다. 위치, 인증 강도 및 사용자 위험 프로필에 따라 로그인을 제한하는 정책을 사항을 만들 수 있습니다.

조건부 액세스를 사용하여 다단계 인증 정책을 구성하고 사용자 인증에 다른 보안 계층을 추가할 수도 있습니다. 또한 애플리케이션을 Microsoft Entra 조건부 액세스를 통해 클라우드용 Microsoft Defender 앱으로 라우팅하여 액세스 및 세션 정책을 통해 실시간 모니터링 및 제어를 제공할 수도 있습니다.

트래픽 종료

모든 트래픽은 클라우드에서 종료됩니다.

Microsoft Entra 애플리케이션 프록시가 역방향 프록시이기 때문에 백 엔드 애플리케이션으로 전송되는 모든 트래픽은 서비스에서 종료됩니다. 세션은 백 엔드 서버에서만 다시 설정될 수 있습니다. 즉, 백 엔드 서버가 직접 HTTP 트래픽에 노출되지 않습니다. 이 구성은 대상 공격으로부터 더 잘 보호된다는 것을 의미합니다.

모든 액세스가 아웃바운드임

회사 네트워크에 대한 인바운드 연결을 열 필요가 없습니다.

프라이빗 네트워크 커넥터는 Microsoft Entra 애플리케이션 프록시 서비스에 대한 아웃바운드 연결만 사용합니다. 들어오는 연결에 대해 방화벽 포트를 열 필요가 없습니다. 기존 프록시에는 경계 네트워크(DMZ, 완역 영역 또는 스크린된 서브넷이라고도 함)가 필요하며 네트워크 에지에서 인증되지 않은 연결에 대한 액세스를 허용해야 합니다. 애플리케이션 프록시를 사용하면 모든 연결이 아웃바운드이고 보안 채널을 통해 수행되므로 경계 네트워크가 필요하지 않습니다.

커넥터에 대한 자세한 내용은 Microsoft Entra 프라이빗 네트워크 커넥터 이해(Understand Microsoft Entra Private Network Connector)를 참조 하세요.

클라우드 규모 분석 및 기계 학습

최첨단 보안 보호를 가져옵니다.

애플리케이션 프록시는 Microsoft Entra ID의 일부이므로 Microsoft 보안 대응 센터 및 디지털 범죄 단위의 데이터와 함께 Microsoft Entra ID Protection을 사용합니다. 따라서 손상된 계정을 사전에 식별하고 위험도 높은 로그인으로부터 보호를 제공합니다. 어떤 로그인 시도가 위험이 높은지 판단하기 위해 여러 요소를 고려합니다. 이러한 요소에는 감염 디바이스 플래그,네트워크 익명화, 불규칙 또는 임의 위치 등이 포함됩니다.

SIEM(보안 정보 및 이벤트 관리) 시스템과 통합을 위해 이러한 많은 보고서 및 이벤트가 API를 통해 제공됩니다.

서비스로서의 원격 액세스

온-프레미스 서버의 유지 관리 및 패치 적용에 대해 걱정할 필요가 없습니다.

패치가 적용되지 않은 소프트웨어는 여전히 다수의 공격 대상입니다. Microsoft Entra 애플리케이션 프록시는 Microsoft에서 소유하고 있는 인터넷 규모 서비스이므로 항상 최신 보안 패치 및 업그레이드를 받을 수 있습니다.

Microsoft Entra 애플리케이션 프록시에 의해 게시된 애플리케이션의 보안을 개선하기 웹 크롤러 로봇이 애플리케이션을 인덱싱하고 보관하지 못하도록 합니다. 웹 크롤러 로봇이 게시된 앱에 대한 로봇의 설정을 검색하려고 할 때마다 애플리케이션 프록시가 포함된 User-agent: * Disallow: /robots.txt 파일로 회신합니다.

Microsoft DDoS(분산 서비스 거부) 보호 서비스

애플리케이션 프록시를 통해 게시된 애플리케이션은 DDoS(분산 서비스 거부) 공격으로부터 보호됩니다. Microsoft는 모든 데이터 센터에서 이 보호를 자동으로 사용하도록 설정합니다. Microsoft DDoS 보호 서비스는 일반적인 네트워크 수준 공격에 대한 상시 트래픽 모니터링 및 실시간 완화를 제공합니다.

기본적인 이해

Microsoft Entra 애플리케이션 프록시는 두 부분으로 구성됩니다.

  • 클라우드 기반 서비스: 이 서비스는 Microsoft 클라우드에서 실행되며 외부 클라이언트/사용자 연결이 이루어지는 위치입니다.
  • 온-프레미스 커넥터: 온-프레미스 구성 요소인 커넥터는 Microsoft Entra 애플리케이션 프록시 서비스에서 요청을 수신하고 내부 애플리케이션에 대한 연결을 처리합니다.

커넥터와 애플리케이션 프록시 서비스 간의 흐름은 다음과 같은 경우에 설정됩니다.

  • 먼저 커넥터를 설정합니다.
  • 커넥터는 애플리케이션 프록시 서비스에서 구성 정보를 가져옵니다.
  • 사용자는 게시된 애플리케이션에 액세스합니다.

참고 항목

모든 통신은 TLS를 통해 발생하며 항상 애플리케이션 프록시 서비스에 대한 커넥터에서 발생합니다. 서비스는 아웃바운드 전용입니다.

커넥터는 클라이언트 인증서를 사용하여 거의 모든 호출에 대해 애플리케이션 프록시 서비스에 인증합니다. 이 프로세스에 대한 유일한 예외는 클라이언트 인증서가 설정되는 초기 설치 단계입니다.

커넥터 설치

커넥터를 처음 설정할 때 다음과 같은 흐름 이벤트가 발생합니다.

  1. 커넥터 설치 과정의 일부로 서비스에 커넥터 등록이 발생합니다. 사용자에게 Microsoft Entra 관리자 자격 증명을 입력하라는 메시지가 표시됩니다. 이 인증에서 얻은 토큰이 Microsoft Entra 애플리케이션 프록시 서비스에 제공됩니다.
  2. 애플리케이션 프록시 서비스는 토큰을 평가합니다. 사용자가 테넌트의 전역 관리자인지 확인합니다. 사용자가 관리자가 아닌 경우 프로세스가 종료됩니다.
  3. 커넥터는 클라이언트 인증서 요청을 생성하고 토큰과 함께 애플리케이션 프록시 서비스에 전달합니다. 서비스에서 차례로 토큰을 확인하고 클라이언트 인증서 요청에 서명합니다.
  4. 커넥터는 애플리케이션 프록시 서비스와의 향후 통신을 위해 클라이언트 인증서를 사용합니다.
  5. 커넥터는 클라이언트 인증서를 사용하여 서비스에서 시스템 구성 데이터의 초기 끌어오기를 수행하며 이제 요청을 받을 준비가 되었습니다.

구성 설정 업데이트

애플리케이션 프록시 서비스에서 구성 설정을 업데이트할 때마다 다음 흐름 이벤트가 발생합니다.

  1. 커넥터는 클라이언트 인증서를 사용하여 애플리케이션 프록시 서비스 내의 구성 엔드포인트에 연결합니다.
  2. 클라이언트 인증서의 유효성이 검사됩니다.
  3. 애플리케이션 프록시 서비스는 구성 데이터를 커넥터에 반환합니다(예: 커넥터가 속해야 하는 커넥터 그룹).
  4. 커넥터는 현재 인증서가 180일 이상 지난 경우 새 인증서 요청을 생성합니다.

게시된 애플리케이션 액세스

사용자가 게시된 애플리케이션에 액세스할 때 애플리케이션 프록시 서비스와 프라이빗 네트워크 커넥터 간에 다음 이벤트가 발생합니다.

  1. 서비스가 앱에 대해 사용자를 인증
  2. 서비스에서 커넥터 큐에 요청 배치
  3. 커넥터에서 큐의 요청 처리
  4. 커넥터에서 응답 대기
  5. 서비스에서 사용자에게 데이터 스트리밍

이러한 단계 각각에서 수행하는 작업에 대해 자세히 알아보려면 계속 읽어보세요.

1. 서비스가 앱에 대해 사용자를 인증

애플리케이션이 통과를 사전 인증 방법으로 사용하는 경우 이 섹션의 단계를 건너뜁습니다.

사용자가 Microsoft Entra STS로 리디렉션되어 애플리케이션이 Microsoft Entra ID로 사전 인증되도록 구성된 경우 인증합니다. 다음 단계를 수행합니다.

  1. 조건부 액세스 정책 요구 사항에 대한 애플리케이션 프록시 검사. 이 단계에서는 사용자가 애플리케이션에 할당되도록 합니다. 2단계 인증이 필요한 경우 인증 시퀀스는 사용자에게 또 다른 인증 방법을 지정하라는 메시지를 표시합니다.
  2. Microsoft Entra STS는 애플리케이션에 대해 서명된 토큰을 발급하고 사용자를 애플리케이션 프록시 서비스로 다시 리디렉션합니다.
  3. 애플리케이션 프록시는 토큰이 올바른 애플리케이션에 발급되고 서명되었으며 유효한지 확인합니다.
  4. 애플리케이션 프록시는 애플리케이션에 대한 성공적인 인증을 나타내기 위해 암호화된 인증 쿠키를 설정합니다. 쿠키에는 Microsoft Entra ID의 토큰을 기반으로 하는 만료 타임스탬프가 포함됩니다. 쿠키에는 인증의 기반이 되는 사용자 이름도 포함됩니다. 쿠키는 애플리케이션 프록시 서비스에만 알려진 프라이빗 키로 암호화됩니다.
  5. 애플리케이션 프록시는 사용자를 원래 요청된 URL로 다시 리디렉션합니다.

사전 인증 단계의 일부가 실패하면 사용자의 요청이 거부되고 사용자에게 문제의 원인을 나타내는 메시지가 표시됩니다.

2. 서비스에서 커넥터 큐에 요청 배치

커넥트 애플리케이션 프록시 서비스에 대한 아웃바운드 연결을 열어 둡다. 요청이 들어오면 서비스는 커넥터에서 선택하도록 열려 있는 연결 중 하나에 있는 요청을 큐에 넣습니다

요청에는 요청 헤더, 암호화된 쿠키의 데이터, 요청을 하는 사용자 및 요청 ID가 포함됩니다. 암호화된 쿠키의 데이터는 요청과 함께 전송되지만 인증 쿠키 자체는 전송되지 않습니다.

3. 커넥터에서 큐의 요청 처리

요청에 따라 애플리케이션 프록시는 다음 작업 중 하나를 수행합니다.

  • 요청이 간단한 작업인 경우(예: RESTful API GET 요청과 마찬가지로 본문 내에 데이터가 없는 경우) 커넥터는 대상 내부 리소스에 연결한 다음 응답을 기다립니다.

  • 요청에 본문에 연결된 데이터(예: RESTful API POST 작업)가 있는 경우 커넥터는 클라이언트 인증서를 사용하여 애플리케이션 프록시 인스턴스에 아웃바운드 연결을 만듭니다. 이 연결을 만들어서 데이터를 요청하고 내부 리소스에 대한 연결을 엽니다. 커넥터에서 요청을 받으면 애플리케이션 프록시 서비스가 사용자의 콘텐츠 수락을 시작하고 커넥터에 데이터를 전달합니다. 그러면 커넥터가 데이터를 내부 리소스에 전달합니다.

4. 커넥터에서 응답 대기

백 엔드로 모든 콘텐츠의 요청 및 전송이 완료된 후에 커넥터가 응답을 기다립니다.

응답을 받은 후 커넥터는 애플리케이션 프록시 서비스에 아웃바운드 연결을 만들어 헤더 세부 정보를 반환하고 반환 데이터 스트리밍을 시작합니다.

5. 서비스에서 사용자에게 데이터 스트리밍 

애플리케이션의 일부 처리는 현재 발생합니다. 예를 들어 애플리케이션 프록시는 헤더 또는 URL을 변환합니다.

다음 단계