Microsoft Entra 애플리케이션 프록시를 사용하여 앱에 원격으로 액세스하는 경우 보안 고려 사항
이 문서에서는 Microsoft Entra 애플리케이션 프록시를 사용할 때 사용자와 애플리케이션을 안전하게 유지하는 구성 요소에 대해 설명합니다.
다음 다이어그램은 Microsoft Entra ID를 통해 온-프레미스 애플리케이션에 안전하게 원격으로 액세스할 수 있는 방법을 보여 줍니다.
보안 이점
Microsoft Entra 애플리케이션 프록시는 많은 보안 이점을 제공합니다. 이점 목록은 다음과 같습니다.
- 인증된 액세스
- 조건부 액세스
- 트래픽 종료
- 모든 아웃바운드 액세스
- 클라우드 규모 분석 및 기계 학습
- 서비스로서의 원격 액세스
- Microsoft DDoS(분산 서비스 거부) 보호 서비스
인증된 액세스
Microsoft Entra 사전 인증을 사용하는 경우 인증된 연결만 네트워크에 액세스할 수 있습니다.
Microsoft Entra 애플리케이션 프록시는 모든 인증에 대해 Microsoft Entra STS(보안 토큰 서비스)를 사용합니다. 사전 인증은 인증된 ID만 백 엔드 애플리케이션에 액세스할 수 있기 때문에 본질적으로 많은 수의 익명 공격을 차단합니다.
사전 인증 방법으로 통과를 선택하면 이러한 이점을 활용할 수 없습니다.
조건부 액세스
네트워크 연결이 설정되기 전에 다양한 정책 제어를 적용합니다.
조건부 액세스를 사용하면 사용자가 애플리케이션에 액세스할 수 있는 방법에 대한 제한을 정의할 수 있습니다. 위치, 인증 강도 및 사용자 위험 프로필에 따라 로그인을 제한하는 정책을 사항을 만들 수 있습니다.
또한 조건부 액세스를 사용하여 다단계 인증 정책을 구성하고 사용자 인증에 또 다른 보안 계층을 추가할 수 있습니다. 또한 액세스 및 세션 정책을 사용하여 Microsoft Entra 조건부 액세스를 통해 애플리케이션을 Microsoft Defender for Cloud Apps로 라우팅하면 실시간 모니터링 및 제어를 제공할 수 있습니다.
트래픽 종료
모든 트래픽은 클라우드에서 종료됩니다.
Microsoft Entra 애플리케이션 프록시가 역방향 프록시이기 때문에 백 엔드 애플리케이션으로 전송되는 모든 트래픽은 서비스에서 종료됩니다. 백 엔드 서버에서만 세션을 다시 설정할 수 있습니다. 즉, 백 엔드 서버는 직접 HTTP 트래픽에 노출되지 않습니다. 구성은 대상 공격으로부터 더 잘 보호된다는 것을 의미합니다.
모든 액세스가 아웃바운드임
회사 네트워크에 대한 인바운드 연결을 열 필요가 없습니다.
개인 네트워크 커넥터는 Microsoft Entra 애플리케이션 프록시 서비스에 대한 아웃바운드 연결만 사용합니다. 들어오는 연결을 위해 방화벽 포트를 열 필요가 없습니다. 전통적인 프록시에서는 경계 네트워크(DMZ, 완충 영역 또는 스크린된 서브넷이라고도 함)가 필요하고 네트워크 에지에서 인증되지 않은 연결에 대한 액세스를 허용해야 했습니다. 애플리케이션 프록시를 사용하는 경우에는 모든 연결은 아웃바운드이고 보안 채널을 통해 발생하기 때문에 경계 네트워크가 필요하지 않습니다.
커넥터에 대한 자세한 내용은 Microsoft Entra 개인 네트워크 커넥터 이해를 참조하세요.
클라우드 규모 분석 및 기계 학습
최첨단 보안 보호를 가져옵니다.
이는 Microsoft Entra ID의 일부이기 때문에 애플리케이션 프록시는 Microsoft 보안 대응 센터 및 디지털 범죄 부서의 데이터와 함께 Microsoft Entra ID 보호를 사용합니다. 따라서 손상된 계정을 사전에 식별하고 위험도 높은 로그인으로부터 보호를 제공합니다. 어떤 로그인 시도가 위험이 높은지 판단하기 위해 여러 요소를 고려합니다. 이러한 요소에는 감염 디바이스 플래그,네트워크 익명화, 불규칙 또는 임의 위치 등이 포함됩니다.
SIEM(보안 정보 및 이벤트 관리) 시스템과 통합을 위해 이러한 많은 보고서 및 이벤트가 API를 통해 제공됩니다.
서비스로서의 원격 액세스
온-프레미스 서버의 유지 관리 및 패치 적용에 대해 걱정할 필요가 없습니다.
패치가 적용되지 않은 소프트웨어는 여전히 다수의 공격 대상입니다. Microsoft Entra 애플리케이션 프록시는 Microsoft에서 소유하고 있는 인터넷 규모 서비스이므로 항상 최신 보안 패치 및 업그레이드를 받을 수 있습니다.
Microsoft Entra 애플리케이션 프록시에 의해 게시된 애플리케이션의 보안을 개선하기 웹 크롤러 로봇이 애플리케이션을 인덱싱하고 보관하지 못하도록 합니다. 웹 크롤러 로봇이 게시된 앱에 대한 로봇 설정을 검색하려 할 때마다 애플리케이션 프록시는 User-agent: * Disallow: /
를 포함하는 robots.txt 파일로 회신합니다.
Microsoft DDoS(분산 서비스 거부) 보호 서비스
애플리케이션 프록시를 통해 게시된 애플리케이션은 DDoS(서비스 분산 거부) 공격으로부터 보호됩니다. Microsoft는 모든 데이터 센터에서 자동으로 이 보호를 사용하도록 설정합니다. Microsoft DDoS 보호 서비스는 일반적인 네트워크 수준 공격에 대한 상시 트래픽 모니터링과 실시간 완화 기능을 제공합니다.
기본적인 이해
Microsoft Entra 애플리케이션 프록시는 두 부분으로 구성됩니다.
- 클라우드 기반 서비스: 이 서비스는 Microsoft 클라우드에서 실행되며 외부 클라이언트/사용자 연결이 이루어지는 곳입니다.
- 온-프레미스 커넥터: 온-프레미스 구성 요소인 커넥터는 Microsoft Entra 애플리케이션 프록시 서비스에서 요청을 수신하고 내부 애플리케이션에 대한 연결을 처리합니다.
커넥터와 애플리케이션 프록시 서비스 간 흐름은 다음과 같은 경우 설정됩니다.
- 먼저 커넥터를 설정합니다.
- 커넥터는 애플리케이션 프록시 서비스에서 구성 정보를 끌어옵니다.
- 사용자는 게시된 애플리케이션에 액세스합니다.
참고 항목
모든 통신은 TLS를 통해 발생하고 항상 커넥터에서 애플리케이션 프록시 서비스로 이루어집니다. 서비스는 아웃바운드 전용입니다.
커넥터는 거의 모든 호출에 대해 애플리케이션 프록시 서비스를 인증하는 데 클라이언트 인증서를 사용합니다. 이 프로세스에 대한 유일한 예외는 클라이언트 인증서가 설정되는 초기 설치 단계입니다.
커넥터 설치
커넥터를 처음 설정할 때 다음과 같은 흐름 이벤트가 발생합니다.
- 커넥터 설치 과정의 일부로 서비스에 커넥터 등록이 발생합니다. 사용자에게 Microsoft Entra 관리자 자격 증명을 입력하라는 메시지가 표시됩니다. 이 인증에서 얻은 토큰이 Microsoft Entra 애플리케이션 프록시 서비스에 제공됩니다.
- 애플리케이션 프록시 서비스에서 토큰을 평가합니다. 사용자가 테넌트에서 애플리케이션 관리자 이상인지 여부를 확인합니다. 사용자가 아닌 경우 프로세스가 종료됩니다.
- 커넥터에서 클라이언트 인증서 요청을 생성하고, 토큰과 함께 이 요청을 애플리케이션 프록시 서비스에 전달합니다. 서비스에서 차례로 토큰을 확인하고 클라이언트 인증서 요청에 서명합니다.
- 커넥터는 나중에 애플리케이션 프록시 서비스와 통신하는 데 이 클라이언트 인증서를 사용합니다.
- 커넥터는 해당 클라이언트 인증서를 사용하여 처음으로 서비스로부터 시스템 구성 데이터 끌어오기를 수행하고 이제 요청을 받을 준비가 됩니다.
구성 설정 업데이트
애플리케이션 프록시 서비스가 구성 설정을 업데이트할 때마다 다음과 같은 흐름 이벤트가 발생합니다.
- 커넥터는 해당 클라이언트 인증서를 사용하여 애플리케이션 프록시 서비스 내의 구성 엔드포인트에 연결됩니다.
- 클라이언트 인증서의 유효성이 검사되었습니다.
- 애플리케이션 프록시 서비스는 구성 데이터를 커넥터(예: 커넥터가 속해야 하는 커넥터 그룹)에 반환합니다.
- 현재 인증서가 180일 이상 지난 경우 커넥터는 새 인증서 요청을 생성합니다.
게시된 애플리케이션 액세스
사용자가 게시된 애플리케이션에 액세스하면 애플리케이션 프록시 서비스와 개인 네트워크 커넥터 간에 다음 이벤트가 발생합니다.
- 서비스가 앱에 대해 사용자를 인증
- 서비스에서 커넥터 큐에 요청 배치
- 커넥터에서 큐의 요청 처리
- 커넥터에서 응답 대기
- 서비스에서 사용자에게 데이터 스트리밍
이러한 단계 각각에서 수행하는 작업에 대해 자세히 알아보려면 계속 읽어보세요.
1. 서비스가 앱에 대해 사용자를 인증
애플리케이션이 사전 인증 방법으로 통과를 사용하는 경우 이 섹션의 단계를 건너뜁니다.
애플리케이션이 Microsoft Entra ID를 사용하여 사전 인증하도록 구성된 경우 사용자는 인증을 위해 Microsoft Entra STS로 리디렉션됩니다. 다음 단계가 수행됩니다.
- 애플리케이션 프록시는 조건부 액세스 정책 요구 사항을 확인합니다. 이 단계에서는 사용자가 애플리케이션에 할당되었는지 확인합니다. 2단계 인증이 필요한 경우 인증 시퀀스는 사용자에게 또 다른 인증 방법을 지정하라는 메시지를 표시합니다.
- Microsoft Entra STS는 애플리케이션에 대해 서명된 토큰을 발급하고 사용자를 애플리케이션 프록시 서비스로 다시 리디렉션합니다.
- 애플리케이션 프록시는 토큰이 올바른 애플리케이션에 발급되고 서명되었으며 유효한지 확인합니다.
- 애플리케이션 프록시는 암호화된 인증 쿠키를 설정하여 애플리케이션에 대한 인증 성공을 나타냅니다. 쿠키에는 Microsoft Entra ID의 토큰을 기반으로 하는 만료 타임스탬프가 포함되어 있습니다. 쿠키에는 인증의 기반이 되는 사용자 이름도 포함됩니다. 쿠키는 애플리케이션 프록시 서비스에만 알려진 프라이빗 키를 사용하여 암호화됩니다.
- 애플리케이션 프록시는 사용자를 원래 요청된 URL로 다시 리디렉션합니다.
사전 인증 단계 중 일부가 실패하면 사용자 요청이 거부되고 사용자에게 문제 원인을 나타내는 메시지가 표시됩니다.
2. 서비스에서 커넥터 큐에 요청 배치
커넥터에서 애플리케이션 프록시에 대한 아웃바운드 연결을 열려 있는 상태로 유지합니다. 요청이 들어오면 서비스는 커넥터에서 선택하도록 열려 있는 연결 중 하나에 있는 요청을 큐에 넣습니다
요청에는 요청 헤더, 암호화된 쿠키의 데이터, 요청하는 사용자 및 요청 ID가 포함됩니다. 암호화된 쿠키의 데이터가 요청과 함께 전송되지만 인증 쿠키 자체가 전송되는 것은 아닙니다.
3. 커넥터에서 큐의 요청 처리
요청에 따라 애플리케이션 프록시는 다음 작업 중 하나를 수행합니다.
요청이 간단한 작업의 경우(예: RESTful API
GET
요청과 같이 본문 내에 데이터가 없는 경우) 커넥터는 대상 내부 리소스에 대한 연결을 만든 다음, 응답을 기다립니다.요청에 본문에 있는 내용과 연결된 데이터가 있는 경우(예: RESTful API
POST
작업) 커넥터는 클라이언트 인증서를 사용하여 애플리케이션 프록시 인스턴스로 아웃바운드 연결을 만듭니다. 이 연결을 만들어서 데이터를 요청하고 내부 리소스에 대한 연결을 엽니다. 커넥터에서 요청을 받은 후에 애플리케이션 프록시 서비스는 사용자로부터 콘텐츠를 수락하고 데이터를 커넥터에 전달합니다. 그러면 커넥터가 데이터를 내부 리소스에 전달합니다.
4. 커넥터에서 응답 대기
백 엔드로 모든 콘텐츠의 요청 및 전송이 완료된 후에 커넥터가 응답을 기다립니다.
응답이 수신된 후에 커넥터가 애플리케이션 프록시 서비스로 아웃바운드 연결을 만들어 헤더 세부 정보를 반환하고 반환 데이터의 스트리밍을 시작합니다.
5. 서비스에서 사용자에게 데이터 스트리밍
이때 애플리케이션의 일부 처리가 발생합니다. 예를 들어, 애플리케이션 프록시는 헤더나 URL을 변환합니다.