説明
Web App が HTTP 要求を処理すると、ログイン情報、セッション Cookie、要求データが平文で送信される可能性があります。httpsOnly を有効にすると、App Service は HTTP 要求を HTTPS にリダイレクトします。クライアントがリダイレクト前に送った最初の HTTP 要求まで暗号化する機能ではありません。
想定される影響
- HTTP で送信した機密情報が、通信経路で漏えい・改ざんされるおそれがあります。
- HTTPS 証明書だけを設定して平文の経路を残すと、一部のクライアントが HTTP を使い続ける可能性があります。
対処方法
httpsOnly: true を設定し、リンク、API クライアント、スクリプトが HTTPS を直接使うよう変更してください。適切な HSTS と Secure Cookie を適用し、証明書検証を維持してください。CDN やリバースプロキシを使う場合は、クライアントからアプリまでの各区間を確認し、実際のリダイレクトと HTTPS 接続をテストしてください。
例
サイトプロパティの抜粋です。アプリ名と Azure リージョンを実際の値に置き換え、App Service プランなど、その他の必要な入力を構成してください。
変更前
bicep
resource webSite 'Microsoft.Web/sites@2020-12-01' = {
name: 'webSite'
location: 'location1'
tags: {}
properties: {
enabled: true
}
}
この定義は httpsOnly を明示していません。他の層のリダイレクトと既存アプリの実際の設定も確認してください。
変更後
bicep
resource webSite 'Microsoft.Web/sites@2020-12-01' = {
name: 'webSite'
location: 'location1'
tags: {}
properties: {
enabled: true
httpsOnly: true
}
}
App Service の HTTP から HTTPS へのリダイレクトを有効にします。機密データを最初に HTTP で送らないよう、クライアント側も別途修正してください。