---
title: "Azure Static Web Appsでは足りない認証・期限管理をどう補うか"
description: "「特定のユーザーだけ・期限付きで・アクセス証跡付きで」という社外レビューの要件は、Azure Static Web Appsの標準機能では満たしにくいです。何が欠けていてどう補うかを具体的な選択肢とともに解説します。"
image: "https://giga-site.com/og-image.png"
canonical: "https://giga-site.com/articles/azure-static-web-apps-missing-auth-expiry"
markdown: "https://giga-site.com/articles/azure-static-web-apps-missing-auth-expiry/index.md"
category: "比較"
publishedAt: "2026-06-25"
updatedAt: "2026-06-25"
readingMinutes: 6
---
# Azure Static Web Appsでは足りない認証・期限管理をどう補うか

Azure Static Web Appsは静的コンテンツのデプロイと配信に優れていますが、社外レビューや限定公開で必要な「特定のユーザーだけ・期限付きで・アクセス証跡付きで」という要件は標準機能では不十分です。何が欠けているか、どのように補えるかを具体的に整理します。

> Source HTML: https://giga-site.com/articles/azure-static-web-apps-missing-auth-expiry
> Article index: https://giga-site.com/articles/index.md

## できること

Azure Static Web AppsはMicrosoft Entra ID・GitHub・Twitterによるソーシャル認証をconfigファイルだけで組み込めます。`staticwebapp.config.json`の`auth`セクションにプロバイダーを設定し、`routes`でロール制限を追加するだけで、ログイン済みユーザーのみが特定のパスにアクセスできる構成が実現します。

IPアドレス制限はAzure Static Web Appsのプライベートエンドポイント機能（Standard+プラン）を使うことで設定できます。特定のVNetやIPレンジからのみアクセスを許可する設定により、社内ネットワークからの閲覧に限定したレビュー環境を構築できます。

- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく

## できないこと

パスワードだけで誰でも閲覧できる「シンプルなパスワード保護」はAzure Static Web Apps標準機能にありません。Microsoftアカウントを持たない外部のクライアントに対して、URLとパスワードだけでアクセスを許可する仕組みを作るにはカスタムのFunctions実装が必要です。

閲覧期限の自動無効化機能も存在しません。プレビュー環境はPRのcloseと連動して削除できますが、本番チャンネルに近い長期運用のレビュー環境では期限が存在しません。「〇月〇日以降はアクセスできないようにしてください」という要件を満たすには、Logic AppsまたはAzure Functionsでブランチ削除を自動化するスクリプトが必要です。

## 認証と期限の違い

認証の欠落を補う方法として、Azure Functionsでカスタム認証エンドポイントを実装し、パスワードの検証をサーバー側で行うアーキテクチャがあります。Static Web AppsはFunctionsとのシームレスな統合をサポートするため、同じazure static web appsプロジェクト内にFunctionsを追加してAPIルートに認証ミドルウェアを組み込む設計が可能です。ただし実装には数時間〜半日の工数が発生します。

期限管理の欠落を補う最小工数の方法として、Azure Logic Appsのスケジューラーを使ってレビュー用ブランチのAzure Rest API（`DELETE /staticSites/{name}/builds/{id}`）を特定日時に自動実行する設定があります。ノーコードで設定できますが、AzureポータルでのLogic Apps作成とAPIの認証設定に30分〜1時間かかります。

- 誰でも見てよい: URL共有のみでもよいが、検索除外は確認する
- 特定の相手だけ: パスワードまたはメール認証を使う
- 会社内だけ: 会社ドメイン認証を検討する
- 短期レビュー: 期限を設定して古いURLを残さない

## 差し替え・レビュー運用

「Azure Static Web Apps + Azure Functions」で認証・期限を自前実装する場合、実装・テスト・メンテナンスのコストに加えて、将来の担当者がアーキテクチャを理解するための学習コストも発生します。レビュー頻度が月に数件で、レビュー専用に保守が必要なFunctions実装を持つことの費用対効果を慎重に判断することが重要です。

外部の認証付き共有サービスで補完する場合、Azure側の既存アーキテクチャを変更せずに「ビルド成果物をアップロードするだけ」のシンプルな運用が実現します。Azure Static Web Appsを本番デプロイ専用に純化することで、インフラの複雑さが下がり、本番環境のトラブルシューティングが容易になります。

- 確認してほしい観点を3つ以内に絞る
- 期限と返信先を明記する
- 修正後も同じURLで見られるか伝える
- 最終版と途中版が混ざらないようタイトルを付ける

## 向いているケース早見表

Azure側で認証・期限を追加実装するのが向いているのは、すでにAzure Functionsがプロジェクトに組み込まれており、同一チームの開発者がFunctionsを保守できるケースです。カスタム認証の実装が既存のFunctionsと同一コードベースに収まるため、管理コストが増加しにくくなります。

外部の認証付き共有サービスで補完するのが向いているのは、FunctionsやLogic Appsを追加でセットアップするコストを払う余裕がなく、「今日中にクライアントに確認URLを送る必要がある」というスピード優先の場面です。ビルド成果物のzipをアップロードするだけで認証付きURLが即座に発行されるため、Azureの追加設定ゼロで要件を満たせます。

## よくある質問

### Azure Static Web Appsでソーシャルロールをカスタム招待APIを使って設定する際、招待リンクの有効期限はどのくらいですか？

Azure Static Web Appsのロール招待リンクは発行から1時間で失効します。1時間以内に受け手がリンクをクリックしてログインしないとロールが付与されず、再発行が必要になります。

### Azure Functions + Static Web Appsでカスタムパスワード認証を実装した場合、パスワードのハッシュ化はどのように行うべきですか？

bcryptまたはArgon2を使ったハッシュ化を推奨します。FunctionsはNode.jsランタイムで`bcryptjs`パッケージを使えるため、パスワードの平文保存は絶対に避け、bcryptHash + saltの形式でデータベースに保存します。

### Azure Static Web Appsのプレビュー環境を削除してもCloudFront相当のCDNキャッシュが残る場合はありますか？

Azure Static Web AppsはAzure CDN（Microsoft Frontdoorベース）を使います。プレビュー環境を削除するとオリジンが消えるため、キャッシュのTTLが切れるか手動パージするまでの数分〜数時間、古いコンテンツが返る可能性があります。即時削除が必要な場合はAzure CDNのパージAPIを実行してください。

## 関連記事

- [Azure Static Web Appsと認証付きHTML共有サービスの違い｜レビュー用途で選ぶ基準](https://giga-site.com/articles/azure-static-web-apps-vs-auth-html-share/index.md)
- [Azure Static Web Appsで公開したページを社外レビューに回すときの注意点](https://giga-site.com/articles/azure-static-web-apps-external-review-note/index.md)
- [Azure Static Web Appsから一時共有URLへ切り替えるタイミング](https://giga-site.com/articles/azure-static-web-apps-switch-timing/index.md)
- [Google Cloud Storage静的ホスティングでは足りない認証・期限管理をどう補うか](https://giga-site.com/articles/gcs-static-hosting-missing-auth-expiry/index.md)
- [Vercel Dropでは足りない認証・期限管理をどう補うか](https://giga-site.com/articles/vercel-drop-missing-auth-expiry/index.md)
- [Vercel Preview Deploymentsでは足りない認証・期限管理をどう補うか](https://giga-site.com/articles/vercel-preview-missing-auth-expiry/index.md)

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Azure Static Web Appsでは足りない認証・期限管理をどう補うか",
  "description": "「特定のユーザーだけ・期限付きで・アクセス証跡付きで」という社外レビューの要件は、Azure Static Web Appsの標準機能では満たしにくいです。何が欠けていてどう補うかを具体的な選択肢とともに解説します。",
  "datePublished": "2026-06-25",
  "dateModified": "2026-06-25",
  "mainEntityOfPage": "https://giga-site.com/articles/azure-static-web-apps-missing-auth-expiry",
  "url": "https://giga-site.com/articles/azure-static-web-apps-missing-auth-expiry",
  "inLanguage": "ja",
  "image": "https://giga-site.com/og-image.png",
  "articleSection": "比較",
  "author": {
    "@type": "Organization",
    "name": "ギガサイト便"
  },
  "publisher": {
    "@type": "Organization",
    "name": "ギガサイト便"
  },
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Azure Static Web Appsでソーシャルロールをカスタム招待APIを使って設定する際、招待リンクの有効期限はどのくらいですか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Azure Static Web Appsのロール招待リンクは発行から1時間で失効します。1時間以内に受け手がリンクをクリックしてログインしないとロールが付与されず、再発行が必要になります。"
      }
    },
    {
      "@type": "Question",
      "name": "Azure Functions + Static Web Appsでカスタムパスワード認証を実装した場合、パスワードのハッシュ化はどのように行うべきですか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "bcryptまたはArgon2を使ったハッシュ化を推奨します。FunctionsはNode.jsランタイムで`bcryptjs`パッケージを使えるため、パスワードの平文保存は絶対に避け、bcryptHash + saltの形式でデータベースに保存します。"
      }
    },
    {
      "@type": "Question",
      "name": "Azure Static Web Appsのプレビュー環境を削除してもCloudFront相当のCDNキャッシュが残る場合はありますか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Azure Static Web AppsはAzure CDN（Microsoft Frontdoorベース）を使います。プレビュー環境を削除するとオリジンが消えるため、キャッシュのTTLが切れるか手動パージするまでの数分〜数時間、古いコンテンツが返る可能性があります。即時削除が必要な場合はAzure CDNのパージAPIを実行してください。"
      }
    }
  ]
}
```
