설명
App Service 내장 인증은 앱 앞에서 사용자를 인증할 수 있는 보호 계층입니다. 이를 사용하지 않더라도 애플리케이션이 자체 인증을 수행할 수 있으므로, 내장 인증 비활성화가 곧 무인증 공개를 뜻하지는 않습니다. 관리용 웹앱과 내부 도구에서는 실제 접근 통제를 확인해야 합니다.
잠재적 영향
보호가 필요한 경로에 인증과 권한 검증이 없다면 허가받지 않은 사용자가 데이터나 기능에 접근할 수 있습니다.
해결 방법
내장 인증을 사용할 경우 auth_settings.enabled 또는 auth_settings_v2.auth_enabled를 켜고 인증 공급자를 구성하세요. 보호할 경로에는 인증을 요구하도록 익명 요청 처리를 설정하고, 필요한 사용자·역할 권한도 검증하세요. 공개 경로나 자체 인증을 사용하는 앱은 그 설계에 맞게 확인하세요.
예시
AzureRM 3.x의 기존 azurerm_app_service 발췌입니다. 현재 구성에는 Linux 또는 Windows Web App 리소스를 사용하며, 인증 공급자 등 생략한 설정을 별도로 마련하세요.
변경 전
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
site_config {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
}
app_settings = {
"SOME_KEY" = "some-value"
}
}
변경 후
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
site_config {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
}
app_settings = {
"SOME_KEY" = "some-value"
}
auth_settings {
enabled = true
}
}
변경 후에는 내장 인증 기능을 켭니다. 이 옵션만으로 모든 익명 요청이 거부되는 것은 아니므로 실제 미인증 요청과 권한 없는 요청을 시험하세요.