Microsoft Entra 통과 인증 보안 심층 분석

이 문서에서는 Microsoft Entra 통과 인증의 작동 방식에 대한 자세한 설명을 제공합니다. 기능의 보안 측면에 대해 보다 중점적으로 설명합니다. 이 문서는 보안 및 IT 관리자, 최고 준수 및 보안 책임자, 모든 규모의 조직 또는 엔터프라이즈의 IT 보안 및 규정 준수를 담당하는 IT 전문가들이 관심을 가질 내용입니다.

이 문서에서 다루는 내용은 다음과 같습니다.

  • 인증 에이전트 설치 및 등록 방법에 대한 자세한 기술 정보
  • 사용자 로그인 시 암호 암호화에 대한 자세한 기술 정보
  • 온-프레미스 인증 에이전트와 Microsoft Entra ID 간의 채널 보안.
  • 인증 에이전트가 운영상 안전하게 유지되는 방법에 대한 자세한 기술 정보

통과 인증 키 보안 기능

통과 인증에는 다음과 같은 주요 보안 기능이 있습니다.

  • 테넌트 간의 로그인 요청을 격리하는 안전한 멀티 테넌트 아키텍처를 기반으로 합니다.
  • 온-프레미스 암호가 어떤 형태로든 클라우드에 저장되지 않습니다.
  • 온-프레미스 인증 에이전트는 네트워크 내에서만 아웃바운드 연결을 설정한 암호 유효성 검사 요청만 수신 대기하고 응답합니다. 경계 네트워크(DMZ, ‘완충 영역’ 및 ‘스크린된 서브넷’이라고도 함)에 이러한 인증 에이전트를 설치할 필요가 없습니다. 모범 사례로, 인증 에이전트를 실행하는 모든 서버를 계층 0 시스템으로 처리합니다(참조 항목 참조).
  • 인증 에이전트에서 Microsoft Entra ID로의 아웃바운드 통신에는 표준 포트(포트 80 및 포트 443)만 사용됩니다. 방화벽에서 인바운드 포트를 열지 않아도 됩니다.
    • 인증된 모든 아웃바운드 통신에는 포트 443이 사용됩니다.
    • 포트 80은 이 기능이 사용하는 어떤 인증서도 해지되지 않도록 CRL(인증서 해지 목록)을 다운로드하는 데만 사용됩니다.
    • 전체 네트워크 요구 사항 목록은 Microsoft Entra 통과 인증 빠른 시작을 참조하세요.
  • 사용자가 로그인 시 입력하는 암호는 먼저 클라우드에서 암호화된 뒤에 Windows Server AD(Windows Server Active Directory)에 대한 유효성 검사를 위해 온-프레미스 인증 에이전트에서 수신됩니다.
  • Microsoft Entra ID 및 온-프레미스 인증 에이전트 간의 HTTPS 채널은 상호 인증으로 보호됩니다.
  • 통과 인증은 MFA(Multi-Factor Authentication)를 포함하는 Microsoft Entra 조건부 액세스 정책을 사용하여 원활하게 작동하고, 레거시 인증을 차단하고, 무차별 암호 대입 공격을 필터링하여 사용자 계정을 보호합니다.

통과 인증과 관련된 구성 요소

Microsoft Entra ID의 운영, 서비스 및 데이터 보안에 대한 일반적인 정보는 보안 센터를 참조하세요. 사용자 로그인에 통과 인증이 사용된 경우 다음과 같은 구성 요소가 사용됩니다.

  • Microsoft Entra STS(Microsoft Entra 보안 토큰 서비스): 로그인 요청을 처리하고 필요에 따라 사용자의 브라우저, 클라이언트 또는 서비스에 보안 토큰을 발행하는 상태 비저장 STS(보안 토큰 서비스)입니다.
  • Azure Service Bus: 온-프레미스 솔루션을 클라우드에 연결할 수 있는 릴레이된 통신과 엔터프라이즈 메시지를 사용하여 클라우드 사용 통신을 제공합니다.
  • Microsoft Entra Connect 인증 에이전트: 암호 유효성 검사 요청을 수신 대기하고 응답하는 온-프레미스 구성 요소입니다.
  • Azure SQL Database: 테넌트의 인증 에이전트에 대한 정보(메타데이터 및 암호화 키 포함)가 저장됩니다.
  • Windows Server AD: 사용자 계정 및 암호가 저장되는 온-프레미스 Active Directory입니다.

인증 에이전트의 설치 및 등록

다음 작업 중 하나를 수행하면 인증 에이전트가 설치되고 Microsoft Entra ID에 등록됩니다.

인증 에이전트 작동에는 다음 세 가지 기본 단계가 포함됩니다.

  • 설치
  • 등록
  • 초기화

이어지는 섹션에서는 각 단계에 대해 자세히 설명합니다.

인증 에이전트 설치

하이브리드 ID 관리자 계정만 온-프레미스 서버에 인증 에이전트(Microsoft Entra Connect 또는 독립 실행형 인스턴스 사용)를 설치할 수 있습니다.

설치하면 제어판>프로그램>프로그램 및 기능 목록에 다음과 같은 두 가지 항목이 추가됩니다.

  • 인증 에이전트 애플리케이션 자체 인증 에이전트 애플리케이션은 NetworkService 권한으로 실행됩니다.
  • 인증 에이전트를 자동으로 업데이트하는 업데이트 프로그램 애플리케이션 업데이트 애플리케이션은 LocalSystem 권한으로 실행됩니다.

Important

보안 측면에서 관리자는 통과 인증 에이전트를 실행 서버를 도메인 컨트롤러처럼 처리해야 합니다. 통과 인증 에이전트 서버는 공격으로부터 도메인 컨트롤러 보호에 설명된 대로 강화해야 합니다.

인증 에이전트 등록

인증 에이전트를 설치한 후 Microsoft Entra ID에 등록합니다. Microsoft Entra ID는 각 인증 에이전트에 Microsoft Entra ID와의 보안 통신에 사용할 고유한 디지털 ID 인증서를 할당합니다.

등록 절차가 완료되면 인증 에이전트가 테넌트와 바인딩됩니다. 그런 후, Microsoft Entra ID는 이 특정 인증 에이전트가 해당 테넌트의 암호 유효성 검사 요청을 처리할 권한이 있는 유일한 에이전트임을 알게 됩니다. 이 절차를 등록할 각 새 인증 에이전트에 대해 반복합니다.

인증 에이전트는 다음 단계를 사용하여 자신을 Microsoft Entra ID에 등록합니다.

Diagram that depicts authentication agent registration with Azure AD.

  1. Microsoft Entra는 먼저 하이브리드 ID 관리자가 자격 증명을 사용하여 Microsoft Entra ID에 로그인하도록 요청합니다. 로그인 시 인증 에이전트는 사용자 대신 사용할 액세스 토큰을 획득합니다.
  2. 그런 다음, 인증 에이전트는 공개 키와 개인 키 쌍을 생성합니다.
    • 키 쌍은 표준 RSA 2048비트 암호화를 통해 생성됩니다.
    • 개인 키는 인증 에이전트가 있는 온-프레미스 서버에 유지됩니다.
  3. 인증 에이전트는 HTTPS를 통해 Microsoft Entra ID에 “등록” 요청을 생성하고 요청에는 다음 구성 요소가 포함됩니다.
    • 에이전트가 획득한 액세스 토큰
    • 생성된 공개 키
    • 인증서 서명 요청(CSR 또는 ‘인증서 요청’) 이 요청은 디지털 ID 인증서에 적용됩니다. 이때 Microsoft Entra ID가 인증 기관(CA)으로 사용됩니다.
  4. Microsoft Entra ID는 등록 요청에 포함된 액세스 토큰의 유효성을 검사하고 해당 요청이 하이브리드 ID 관리자로부터 왔는지 확인합니다.
  5. Microsoft Entra ID가 디지털 ID 인증서에 서명하고 서명된 인증서를 인증 에이전트로 다시 보냅니다.
    • 인증서 서명에는 Microsoft Entra ID의 루트 CA가 사용됩니다.

      참고 항목

      이 CA는 Windows의 신뢰할 수 있는 루트 인증 기관 저장소에 있지 않습니다.

    • 이 CA는 통과 인증 기능에만 사용됩니다. 이 CA는 인증 에이전트 등록 시 CSR에 서명하는 데만 사용됩니다.

    • 다른 Microsoft Entra 서비스는 이 CA를 사용하지 않습니다.

    • 인증서의 제목(‘고유 이름’ 또는 DN)은 테넌트 ID로 설정됩니다. DN은 테넌트를 고유하게 식별하는 GUID입니다. DN은 인증서가 해당 테넌트에만 사용되도록 범위를 지정합니다.

  6. Microsoft Entra ID는 인증 에이전트의 공개 키를 Azure SQL Database의 데이터베이스에 저장합니다. Microsoft Entra ID만 데이터베이스에 액세스할 수 있습니다.
  7. 발급된 인증서가 Windows 인증서 저장소(특히 CERT_SYSTEM_STORE_LOCAL_MACHINE)의 온-프레미스 서버에 저장됩니다. 이 인증서는 인증 에이전트와 업데이트 프로그램 애플리케이션 둘 다에서 사용됩니다.

인증 에이전트 초기화

인증 에이전트가 등록 후 처음으로 또는 서버가 재시작된 이후에 시작되면 암호 유효성 검사 요청을 수락할 수 있도록 Microsoft Entra 서비스와 안전하게 통신하는 방법이 필요합니다.

Diagram that depicts authentication agent initialization.

인증 에이전트를 초기화하는 방법은 다음과 같습니다.

  1. 인증 에이전트가 Microsoft Entra ID로 아웃바운드 부트스트랩 요청을 전송합니다.

    이 요청은 포트 443을 통해 상호 인증된 HTTPS 채널을 통해 이루어집니다. 이 요청은 인증 에이전트 등록 시 발급된 동일한 인증서를 사용합니다.

  2. Microsoft Entra ID는 해당 테넌트의 고유하며 테넌트 ID로 식별되는 Service Bus 큐에 선택키를 제공함으로써 요청에 응답합니다.

  3. 인증 에이전트는 큐에 영구적 아웃바운드 HTTPS 연결(포트 443을 통해)을 설정합니다.

이제 인증 에이전트가 암호 유효성 검사 요청을 가져오고 처리할 준비가 되었습니다.

테넌트에 여러 인증 에이전트가 등록된 경우 초기화 절차를 통해 각 에이전트가 하나의 동일한 Azure Service Bus 큐에 연결되게 됩니다.

통과 인증이 로그인 요청을 처리하는 방법

아래 다이어그램에서는 통과 인증이 사용자 로그인 요청을 처리하는 방식을 보여 줍니다.

Diagram that depicts how pass-through authentication processes user sign-in requests.

통과 인증이 사용자 로그인 요청을 처리하는 방법:

  1. 사용자가 애플리케이션(예: Outlook 웹앱)에 대한 액세스를 시도합니다.

  2. 사용자가 아직 로그인하지 않은 경우 해당 애플리케이션은 브라우저를 Microsoft Entra 로그인 페이지로 리디렉션합니다.

  3. Microsoft Entra STS 서비스가 사용자 로그인 페이지로 응답합니다.

  4. 사용자가 사용자 로그인 페이지에 사용자 이름을 입력하고 다음 단추를 선택합니다.

  5. 사용자가 사용자 로그인 페이지에 암호를 입력하고 로그인 단추를 선택합니다.

  6. 사용자 이름 및 암호가 HTTPS POST 요청을 통해 Microsoft Entra STS로 전송됩니다.

  7. Microsoft Entra STS는 Azure SQL Database에서 해당 테넌트에 등록된 모든 인증 에이전트의 공개 키를 검색하고 이를 사용하여 암호를 암호화합니다.

    테넌트에서 등록된 각 인증 에이전트에 대해 하나의 암호화된 암호 값을 생성합니다.

  8. Microsoft Entra STS가 사용자 이름과 암호화된 암호 값으로 구성된 암호 유효성 검사 요청을 해당 테넌트의 Service Bus 큐에 배치합니다.

  9. 초기화된 인증 에이전트는 Service Bus 큐에 영구적으로 연결되므로 사용 가능한 인증 에이전트 중 하나가 암호 유효성 검사 요청을 가져옵니다.

  10. 인증 에이전트는 식별자를 사용하여 공개 키와 관련된 암호화된 암호 값을 찾습니다. 개인 키를 사용하여 공개 키의 암호를 해독합니다.

  11. 인증 에이전트는 매개 변수가 로 설정된 dwLogonTypeWin32 LogonUser APILOGON32_LOGON_NETWORK를 사용하여 온-프레미스 Active Directory에 대해 사용자 이름 및 암호의 유효성을 검사합니다.

    • 이 API는 AD FS(Active Directory Federation Service)가 페더레이션 로그인 시나리오에서 사용자 로그인에 사용하는 API이기도 합니다.
    • Win32 LogonUser API는 Windows Server의 표준 확인 프로세스를 사용하여 도메인 컨트롤러를 찾습니다.
  12. 인증 에이전트는 Windows Server AD로부터 성공, 사용자 이름 또는 암호가 올바르지 않음, 암호가 만료됨과 같은 결과를 수신합니다.

    참고 항목

    로그인 프로세스 중 인증 에이전트가 실패하면 전체 로그인 요청이 삭제됩니다. 로그인 요청은 하나의 온-프레미스 인증 에이전트에서 다른 온-프레미스 인증 에이전트로 전달되지 않습니다. 이러한 에이전트는 서로 통신하지 않고 오직 클라우드와 통신합니다.

  13. 인증 에이전트는 포트 443을 통한 아웃바운드 상호 인증 HTTPS 채널을 통해 결과를 다시 Microsoft Entra STS로 전달합니다. 상호 인증은 등록 중에 인증 에이전트에 발급된 인증서를 사용합니다.

  14. Microsoft Entra STS는 이 결과가 테넌트의 특정 로그인 요청과 관련이 있는지 확인합니다.

  15. Microsoft Entra STS는 구성된 대로 로그인 절차를 계속 진행합니다. 예를 들어, 암호 유효성 검사가 성공적인 경우 사용자에게 MFA를 요청하거나 사용자를 애플리케이션으로 리디렉션합니다.

인증 에이전트 운영 보안

통과 인증의 운영 안전을 보장하기 위해 Microsoft Entra ID는 인증 에이전트의 인증서를 주기적으로 갱신합니다. Microsoft Entra ID는 갱신을 트리거합니다. 인증 에이전트가 자체적으로 관리하지 않습니다.

Diagram that depicts how operational security works with pass-through authentication.

Microsoft Entra ID에서 인증 에이전트의 신뢰를 갱신하기 위해 다음이 수행됩니다.

  1. 인증 에이전트가 Microsoft Entra를 몇 시간 간격으로 ping하여 인증서를 갱신할 때인지 확인합니다. 인증서가 만료되기 30일 전에 갱신됩니다.

    확인은 상호 인증된 HTTPS 채널을 통해 이루어지고, 등록 시 발급된 인증서가 사용됩니다.

  2. 갱신할 시간임을 확인한 경우 인증 에이전트가 새로운 공개 키와 개인 키 쌍을 생성합니다.

    • 표준 RSA 2048비트 암호화를 사용하여 키 쌍이 생성됩니다.
    • 프라이빗 키는 온-프레미스 서버를 벗어나지 않습니다.
  3. 그런 다음, 인증 에이전트가 HTTPS를 통해 Microsoft Entra ID에 인증서 갱신 요청을 합니다. 요청에 포함되는 구성 요소는 다음과 같습니다.

    • Windows 인증서 저장소(CERT_SYSTEM_STORE_LOCAL_MACHINE 위치)에서 가져온 기존 인증서. 이 절차에는 전역 관리자가 사용되지 않습니다. 전역 관리자에게는 액세스 토큰이 필요하지 않습니다.
    • 2단계에서 생성된 공개 키.
    • CSR. 이 요청은 새로운 디지털 ID 인증서에 적용됩니다. 이때 Microsoft Entra ID가 해당 CA로 사용됩니다.
  4. Microsoft Entra ID는 인증서 갱신 요청에서 기존 인증서의 유효성을 검사합니다. 그런 다음 요청이 테넌트에 등록된 인증 에이전트에서 발생한 것인지 확인합니다.

  5. 기존 인증서가 여전히 유효한 경우 Microsoft Entra ID는 새 디지털 ID 인증서를 서명하고 인증 에이전트에 새 인증서를 다시 발급합니다.

  6. 기존 인증서가 만료된 경우 Microsoft Entra ID는 테넌트의 등록된 인증 에이전트 목록에서 인증 에이전트를 삭제합니다. 그런 다음 전역 관리자 또는 하이브리드 ID 관리자가 수동으로 새 인증 에이전트를 설치하고 등록해야 합니다.

    • 인증서 서명에 Microsoft Entra ID의 루트 CA를 사용합니다.
    • 인증서의 DN을 해당 테넌트를 고유하게 식별하는 GUID인 테넌트 ID로 설정합니다. DN은 인증서가 해당 테넌트에만 사용되도록 범위를 지정합니다.
  7. Microsoft Entra ID는 자신만 액세스할 수 있는 Azure SQL Database의 데이터베이스에 인증 에이전트의 새 공용 키를 저장합니다. 인증 에이전트에 연결되었던 이전 공개 키를 무효화합니다.

  8. 5단계에서 발급된 새 인증서가 Windows 인증서 저장소(CERT_SYSTEM_STORE_CURRENT_USER 위치)의 서버에 저장됩니다.

    신뢰 갱신 절차가 비대화식으로 발생하기 때문에(전역 관리자 또는 하이브리드 ID 관리자 없이) 인증 에이전트는 더 이상 CERT_SYSTEM_STORE_LOCAL_MACHINE 위치에 있는 기존 인증서를 업데이트할 수 없습니다.

    참고 항목

    이 절차로 인해 CERT_SYSTEM_STORE_LOCAL_MACHINE 위치에서 인증서가 제거되지는 않습니다.

  9. 이 시점부터 새 인증서가 인증에 사용됩니다. 이후 모든 인증서 갱신에서는 CERT_SYSTEM_STORE_LOCAL_MACHINE 위치의 인증서를 대체합니다.

인증 에이전트 자동 업데이트

업데이트 프로그램 애플리케이션은 새 버전(버그 수정 또는 성능 향상 포함)이 릴리스되면 인증 에이전트를 자동으로 업데이트합니다. 업데이트 프로그램 애플리케이션은 테넌트의 암호 유효성 검사 요청을 처리하지 않습니다.

Microsoft Entra ID는 새로운 소프트웨어 버전을 서명된 Windows Installer 패키지(MSI)로서 호스팅합니다. MSI는 Microsoft Authenticode를 사용하여 서명됩니다. 이때 SHA-256이 다이제스트 알고리즘으로 사용됩니다.

Diagram that shows how an authentication agent is auto updated.

인증 에이전트를 자동 업데이트하기 위해 다음이 수행됩니다.

  1. 업데이트 프로그램 애플리케이션이 Microsoft Entra를 한 시간마다 주기적으로 ping하여 새로운 버전의 인증 에이전트가 있는지 확인합니다.

    확인은 상호 인증된 HTTPS 채널을 통해 이루어지고, 등록 시 발급된 인증서가 사용됩니다. 인증 에이전트와 업데이트 프로그램은 서버에 저장된 인증서를 공유합니다.

  2. 새 버전이 제공되는 경우 Microsoft Entra ID는 서명된 MSI를 업데이트 프로그램에 다시 반환합니다.

  3. 업데이트 프로그램은 Microsoft에서 MSI를 서명했는지 확인합니다.

  4. 업데이트 프로그램은 MSI를 실행합니다. 이 프로세스에서 업데이트 프로그램 애플리케이션은 다음을 수행합니다.

    참고 항목

    업데이트 프로그램은 로컬 시스템 권한으로 실행됩니다.

    1. 인증 에이전트 서비스를 중지합니다.
    2. 서버에 새 인증 에이전트 버전을 설치합니다.
    3. 인증 에이전트 서비스를 다시 시작합니다.

참고 항목

테넌트에 여러 인증 에이전트가 등록된 경우 Microsoft Entra ID는 인증서를 갱신하거나 동시에 업데이트하지 않습니다. 대신 Microsoft Entra ID는 로그인 요청의 고가용성을 보장하기 위해 인증서를 한 번에 하나씩 갱신합니다.

다음 단계

  • 현재 제한 사항: 지원되는 시나리오에 대해 알아봅니다.
  • 빠른 시작: Microsoft Entra 통과 인증을 사용하여 설정합니다.
  • AD FS에서 통과 인증으로 마이그레이션: AD FS 또는 기타 페더레이션 기술에서 통과 인증으로 마이그레이션하도록 지원하는 이 자세한 가이드를 검토합니다.
  • 스마트 잠금: 테넌트에서 스마트 잠금 기능을 구성하여 사용자 계정을 보호합니다.
  • 작동 방법: Microsoft Entra 통과 인증이 작동하는 기본적인 방식을 알아봅니다.
  • 질문과 대답: 일반적인 질문에 대한 답변을 확인합니다.
  • 문제 해결: 통과 인증의 일반적인 문제를 해결하는 방법을 알아봅니다.
  • Microsoft Entra Seamless SSO: 보완적인 Microsoft Entra 기능인 Seamless Single Sign-On에 대해 자세히 알아봅니다.