다음을 통해 공유


Application Gateway를 사용한 상호 인증 개요

상호 인증 또는 클라이언트 인증을 통해 Application Gateway에서 클라이언트 전송 요청을 인증할 수 있습니다. 일반적으로 클라이언트만 Application Gateway를 인증합니다. 상호 인증을 사용하면 클라이언트와 Application Gateway 모두가 서로를 인증할 수 있습니다.

참고 항목

TLS 1.2는 나중에 위임될 것이므로 상호 인증과 함께 TLS 1.2를 사용하는 것이 좋습니다.

상호 인증

Application Gateway는 신뢰할 수 있는 클라이언트 CA 인증서를 Application Gateway에 업로드할 수 있는 인증서 기반 상호 인증을 지원하며, 게이트웨이에서는 해당 인증서를 사용하여 게이트웨이로 요청을 보내는 클라이언트를 인증합니다. IoT 사용 사례가 증가하고 산업 전반에서 보안 요구 사항이 증가함에 따라 상호 인증은 Application Gateway와 통신할 수 있는 클라이언트를 관리하고 제어할 수 있는 방법을 제공합니다.

상호 인증을 구성하려면 SSL 프로필의 클라이언트 인증 부분의 일부로 신뢰할 수 있는 클라이언트 CA 인증서를 업로드해야 합니다. 상호 인증 구성을 완료하려면 SSL 프로필을 수신기에 연결해야 합니다. 업로드하는 클라이언트 인증서에는 항상 루트 CA 인증서가 있어야 합니다. 인증서 체인도 업로드할 수 있지만 체인은 원하는 수의 중간 CA 인증서 외에 루트 CA 인증서를 포함해야 합니다. 업로드된 각 파일의 최대 크기는 25KB 이하여야 합니다.

예를 들어 클라이언트 인증서가 루트 CA 인증서, 여러 중간 CA 인증서 및 리프 인증서를 포함하는 경우 루트 CA 인증서와 모든 중간 CA 인증서가 한 파일로 Application Gateway에 업로드되었는지 확인합니다. 신뢰할 수 있는 클라이언트 CA 인증서를 추출하는 방법에 대한 자세한 내용은 신뢰할 수 있는 클라이언트 CA 인증서를 추출하는 방법을 참조하세요.

루트 CA 및 중간 CA 인증서를 사용하여 인증서 체인을 업로드하는 경우 인증서 체인을 PEM 또는 CER 파일로 게이트웨이에 업로드해야 합니다.

Important

상호 인증을 사용할 때는 신뢰할 수 있는 클라이언트 CA 인증서 체인 전체를 Application Gateway에 업로드해야 합니다.

각 SSL 프로필은 최대 100개의 신뢰할 수 있는 클라이언트 CA 인증서 체인을 지원할 수 있습니다. 단일 Application Gateway는 총 200개의 신뢰할 수 있는 클라이언트 CA 인증서 체인을 지원할 수 있습니다.

참고 항목

  • 상호 인증은 Standard_v2 및 WAF_v2 SKU에서만 사용할 수 있습니다.
  • TLS 프로토콜 수신기(미리 보기)에 대한 상호 인증 구성은 현재 REST API, PowerShell 및 CLI를 통해 사용할 수 있습니다. Azure Portal 지원은 곧 제공될 예정입니다.

상호 인증을 지원하는 인증서

Application Gateway는 공용 및 비공개 인증 기관에서 발급된 인증서를 지원합니다.

  • 잘 알려진 인증 기관에서 발급된 CA 인증서: 중간 및 루트 인증서는 일반적으로 신뢰할 수 있는 인증서 저장소에 있으며 디바이스에서 추가 구성이 거의 또는 전혀 없는 신뢰할 수 있는 연결을 사용하도록 설정합니다.
  • 조직에서 발급한 CA 인증서: 이러한 인증서는 일반적으로 조직을 통해 비공개로 발급되며 다른 엔터티에서 신뢰할 수 없습니다. 클라이언트가 체인 트러스트를 설정하려면 중간 및 루트 인증서를 신뢰할 수 있는 인증서 저장소로 가져와야 합니다.

참고 항목

잘 설정된 인증 기관에서 클라이언트 인증서를 발급할 때 조직에서 실수로 조직 간 클라이언트 인증서 인증을 방지하기 위해 중간 인증서를 발급할 수 있는지 확인하려면 인증 기관과 협력하는 것이 좋습니다.

추가 클라이언트 인증 유효성 검사

클라이언트 인증서 DN 확인

클라이언트 인증서의 직접 발급자를 확인하고 Application Gateway가 해당 발급자만 신뢰하도록 허용할 수 있습니다. 이 옵션은 기본적으로 해제되어 있지만 Portal, PowerShell 또는 Azure CLI를 통해 사용하도록 설정할 수 있습니다.

클라이언트 인증서의 직접 발급자를 확인하기 위해 Application Gateway를 사용하도록 선택하는 경우 업로드된 인증서에서 추출되는 클라이언트 인증서 발급자 DN을 결정하는 방법은 다음과 같습니다.

  • 시나리오 1: 인증서 체인에는 루트 인증서 - 중간 인증서 - 리프 인증서가 포함됩니다.
    • 중간 인증서의 주체 이름은 Application Gateway가 클라이언트 인증서 발급자 DN으로 추출하고 확인할 대상의 이름입니다.
  • 시나리오 2: 인증서 체인에는 루트 인증서 - 중간1 인증서 - 중간2 인증서 - 리프 인증서가 포함됩니다.
    • 중간2 인증서의 주체 이름은 클라이언트 인증서 발급자 DN으로 추출되어 확인 대상이 됩니다.
  • 시나리오 3: 인증서 체인에는 루트 인증서 - 리프 인증서가 포함됩니다.
    • 루트 인증서의 주체 이름은 추출되어 클라이언트 인증서 발급자 DN으로 사용됩니다.
  • 시나리오 4: 동일한 파일에 동일한 길이의 여러 인증서 체인이 있습니다. 체인 1에는 루트 인증서 - 중간 1 인증서 - 리프 인증서가 포함됩니다. 체인 2에는 루트 인증서 - 중간 2 인증서 - 리프 인증서가 포함됩니다.
    • 중간 1 인증서의 주체 이름은 클라이언트 인증서 발급자 DN으로 추출됩니다.
  • 시나리오 5: 동일한 파일에 길이가 다른 여러 인증서 체인이 있습니다. 체인 1에는 루트 인증서 - 중간 1 인증서 - 리프 인증서가 포함됩니다. 체인 2에는 루트 인증서 - 중간 2 인증서 - 중간 3 인증서 - 리프 인증서가 포함됩니다.
    • 중간 3 인증서의 주체 이름은 클라이언트 인증서 발급자 DN으로 추출됩니다.

Important

파일당 하나의 인증서 체인만 업로드하는 것이 좋습니다. 클라이언트 인증서 DN 확인을 사용하도록 설정하는 경우에 특히 중요합니다. 한 파일에 여러 인증서 체인을 업로드하면 시나리오 4 또는 시나리오 5에 이르게 되며 제공된 클라이언트 인증서가 체인에서 추출된 클라이언트 인증서 발급자 DN Application Gateway와 일치하지 않을 때 나중에 문제가 발생할 수 있습니다.

신뢰할 수 있는 클라이언트 CA 인증서 체인을 추출하는 방법에 대한 자세한 내용은 신뢰할 수 있는 클라이언트 CA 인증서 체인을 추출하는 방법을 참조하세요.

서버 변수

상호 TLS 인증을 사용하면 클라이언트 인증서에 대한 정보를 Application Gateway 뒤의 백 엔드 서버에 전달하는 데 사용할 수 있는 추가 서버 변수가 있습니다. 사용 가능한 서버 변수와 사용 방법에 대한 자세한 내용은 서버 변수를 참조하세요.

인증서 해지

클라이언트가 상호 TLS 인증으로 구성된 Application Gateway에 대한 연결을 시작하는 경우 인증서 체인 및 발급자의 고유 이름의 유효성을 검사할 수 있을 뿐만 아니라 클라이언트 인증서의 해지 상태를 OCSP(온라인 인증서 상태 프로토콜)로 확인할 수 있습니다. 유효성 검사 중에 클라이언트에서 제공하는 인증서는 AIA(Authority Information Access) 확장에 정의된 OCSP 응답자를 통해 조회됩니다. 클라이언트 인증서가 해지된 경우 애플리케이션 게이트웨이는 HTTP 400 상태 코드 및 이유로 클라이언트에 응답합니다. 인증서가 유효한 경우 요청은 애플리케이션 게이트웨이에서 계속 처리되고 정의된 백 엔드 풀로 전달됩니다.

클라이언트 인증서 해지는 REST API, ARM, Bicep, CLI 또는 PowerShell을 통해 사용하도록 설정할 수 있습니다.

Azure PowerShell을 통해 기존 Application Gateway에서 클라이언트 해지 확인을 구성하려면 다음 명령을 참조할 수 있습니다.

# Get Application Gateway configuration
$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01"

# Create new SSL Profile
$profile  = Get-AzApplicationGatewaySslProfile -Name "SslProfile01" -ApplicationGateway $AppGw

# Verify Client Cert Issuer DN and enable Client Revocation Check
Set-AzApplicationGatewayClientAuthConfiguration -SslProfile $profile -VerifyClientCertIssuerDN -VerifyClientRevocation OCSP

# Update Application Gateway
Set-AzApplicationGateway -ApplicationGateway $AppGw

Application Gateway의 클라이언트 인증 구성에 대한 모든 Azure PowerShell 참조 목록은 여기에서 찾을 수 있습니다.

클라이언트 요청에 대해 OCSP 해지 상태가 평가되었는지 확인하기 위해 액세스 로그에는 OCSP 응답 상태와 함께 "sslClientVerify"라는 속성이 포함됩니다.

OCSP 응답기의 가용성이 높고 Application Gateway 응답기 간의 네트워크 연결이 가능해야 합니다. Application Gateway가 정의된 응답기의 FQDN(정규화된 도메인 이름)을 확인할 수 없거나 응답기에서 네트워크 연결이 차단되면 인증서 해지 상태가 실패하고 Application Gateway는 요청 클라이언트에 400 HTTP 응답을 반환합니다.

참고: OCSP 검사는 이전 OCSP 응답에서 정의한 nextUpdate 시간을 기반으로 로컬 캐시를 통해 유효성을 검사합니다. 이전 요청에서 OCSP 캐시가 채워지지 않은 경우 첫 번째 응답이 실패할 수 있습니다. 클라이언트를 다시 시도하면 응답이 캐시에서 발견되고 요청이 예상대로 처리됩니다.

주의

  • CRL을 통한 해지 검사는 지원되지 않습니다.
  • 클라이언트 해지 검사는 API 버전 2022-05-01에 도입되었습니다.

다음 단계

상호 인증에 대해 학습한 후 PowerShell에서 상호 인증을 사용하여 Application Gateway 구성으로 이동하여 상호 인증을 사용하여 Application Gateway를 만듭니다.