説明
App Service の組み込み認証は、要求がアプリに届く前にユーザーを認証できます。アプリ独自の認証も使えるため、組み込み機能が無効なことだけで匿名の公開アクセスが可能とは判断できません。管理用アプリや内部ツールでは実際のアクセス制御を確認してください。
想定される影響
保護対象のパスに認証や認可がないと、許可されていないユーザーがデータや機能にアクセスするおそれがあります。
対処方法
組み込み認証を使う場合は auth_settings.enabled または auth_settings_v2.auth_enabled を有効にし、ID プロバイダーを設定してください。保護するパスで認証を必須にするよう匿名要求の処理を設定し、ユーザーやロールの権限も検証してください。公開パスや独自認証を使うアプリは、その設計に合わせて確認してください。
例
AzureRM 3.x の従来の azurerm_app_service の抜粋です。現在の構成では Linux または Windows Web App リソースを使い、ID プロバイダーなどの省略部分を別途設定してください。
変更前
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
}
}
変更後は組み込み認証機能を有効にします。このオプションだけですべての匿名要求が拒否されるわけではありません。未認証の要求と権限のない要求を個別に試験してください。