ガイド

Web サイトや Web アプリにパスワードをかける方法

結論

ホスティングのパスワード機能を有効にします。Vercel Pro の Password Protection(1プロジェクトあたり月額 $20)か Netlify Pro、サイトの前に置く Cloudflare Access のポリシー、または自分のサーバーの HTTP ベーシック認証です。パスワードはサイト自身のコードではなく、ホスティング側で確認する必要があります。

共有パスワードは、顧客に下書きを見せる程度なら問題ありません。同僚が毎日使うツールなら、会社のログインのほうが向いています。以下で、ホスティングごとの手順と、両者の違いを説明します。

最終更新 執筆は TeamOnly。私たちは会社のログイン付きのホスティングを作っているので、下の料金と手順にはすべて各社自身のページへのリンクを付けています。

01ホスティング別

どこでパスワードをかけられて、いくらかかる?

よく使われるホスティングなら、どれでもできます。違いは必要なプランと、訪問者が1つの共有パスワードを入力するのか、それぞれ自分としてログインするのかです。

主なホスティングのパスワード保護(2026年10月25日 確認)
ホスティング仕組み必要なプラン料金
VercelPassword Protection: プロジェクトごとにパスワード1つPro または Enterprise。Hobby では不可Pro で保護するプロジェクトごとに月額 $20。別途 Pro プランの料金
Netlifyサイト全体のパスワード、または _headers ファイルでのベーシック認証Pro または Enterprise。Free と Personal では不可Pro は月額 $20、メンバー数無制限
Cloudflare Access1人ずつメールでワンタイム PIN を受け取るか、自社の ID プロバイダーでログインドメインが Cloudflare にあること50ユーザーまで無料。それ以降は1ユーザーあたり月額 $7(年払い)
Cloudflare WorkerWorker に書いた HTTP ベーシック認証どの Workers プランでも可1日10万リクエストまで無料。有料プランは月額 $5 から
自分のサーバーnginx や Apache の HTTP ベーシック認証なしすでに動かしているサーバーなら無料

2026年10月25日 確認。出典: Vercel Password Protection、Vercel Deployment Protection、Vercel changelog(2026年9月9日)、Vercel pricing、Netlify password protection、Netlify basic authentication、Netlify pricing、Cloudflare Access plans、Cloudflare one-time PIN、Cloudflare self-hosted applications、Cloudflare Workers basic auth example、Workers pricing、nginx basic authentication、Apache authentication。

02手順

ホスティング別の設定方法

サイトを置いているホスティングを選んでください。どれも数分で終わります。

Vercel

  1. Vercel のダッシュボードでプロジェクトを開き、Settings、Deployment Protection の順に進みます。
  2. Password Protection のトグルをオンにします。
  3. 保護する範囲を選びます。Standard Protection では本番ドメインが保護されないので、メインのアドレスも守るには All Deployments を選びます。
  4. パスワードを入力して Save を選びます。訪問者はデプロイごとに1回入力し、Cookie で記憶されます。

料金 Pro プランのみ: 保護するプロジェクトごとに月額 $20。Enterprise では含まれていて、Hobby では使えません。

すべてのプランで使える無料の方法は Vercel Authentication で、今は本番環境も対象です。訪問者はそのプロジェクトにアクセスできる Vercel のアカウントでログインするので、同僚一人ひとりにアカウントが必要です。

Netlify

  1. サイトを開き、Project configuration、General、Visitor access、Password Protection の順に進みます。
  2. Configure Password Protection、Basic password protection の順に選び、パスワードを入力します。
  3. プレビューだけでなく本番サイトも対象にするため All deploys を選び、Save を選びます。
  4. クレジット制の新しい Pro プランでは、同じ設定が Visitor access、Project visibility にあります。Password を選んでください。
/*  Basic-Auth: dana:a-long-password sam:another-long-password

料金 Pro プラン(月額 $20、メンバー数無制限)または Enterprise。Free と Personal では使えません。

サイトの一部にユーザー名とパスワードをかけるなら、Pro と Enterprise では下のように _headers ファイルに Basic-Auth のルールを書くこともできます。なお Netlify によると、ベーシック認証にはログアウトの方法がありません。

Cloudflare Access

  1. ドメインが Cloudflare にある必要があります。ダッシュボードで Zero Trust、Integrations、Identity providers の順に進み、One-time PIN を追加します。
  2. Access controls、Applications に進んで Create new application、Self-hosted and private の順に選び、サイトのホスト名を追加します。
  3. Allow ポリシーを追加します。会社全体なら Emails ending in に @yourcompany.com を、特定の人なら Emails を使います。それ以外の人は、Access が標準で拒否します。
  4. Create を選びます。訪問者はメールアドレスを入力し、10分間1回だけ使える PIN を受け取って入ります。

料金 50ユーザーまで無料。それ以降は1ユーザーあたり月額 $7(年払い)。

これは共有パスワードではありません。一人ひとりが自分の受信箱を読めることを証明するので、人ごとに確認して外せます。

ベーシック認証付きの Cloudflare Worker

  1. Cloudflare の Workers 向けベーシック認証のサンプルから始めます。ブラウザにユーザー名とパスワードを求め、処理時間からパスワードが漏れない方法で照合します。
  2. パスワードはコードに書かず、下のコマンドでシークレットとして保存します。
  3. HTTPS でのみ配信します。そうしないと、ベーシック認証はパスワードを暗号化せずに送ります。
npx wrangler secret put PASSWORD

料金 Workers Free で1日10万リクエストまで使えます。Workers Paid は月額 $5 からです。

Cloudflare はこのサンプルを本番環境には向かないとしていて、代わりに Cloudflare Access を案内しています。

自分のサーバー

  1. htpasswd ツール(Debian と Ubuntu ではパッケージ apache2-utils、Red Hat では httpd-tools)をインストールし、1人1行のパスワードファイルを作ります。
  2. nginx では、下のようにサイトに auth_basic と auth_basic_user_file を追加します。Apache では AuthType Basic、AuthUserFile、Require valid-user を使います。
  3. パスワードファイルは Web 用のフォルダの外に置き、HTTPS を使います。Apache のドキュメントにも、ベーシック認証はパスワードを暗号化せずに送ると注意書きがあります。
sudo htpasswd -c /etc/apache2/.htpasswd dana

# nginx
location / {
    auth_basic           "Staff only";
    auth_basic_user_file /etc/apache2/.htpasswd;
}

料金 すでに動かしているサーバーなら無料です。

ベーシック認証では一人ひとりに別のパスワードを持たせられるので、1つの共有パスワードよりは安全です。それでも、人の追加と削除はサーバー上で手作業になります。

03共有パスワードかログインか

パスワードで十分なのはどんなとき?

共有パスワードで十分なもの

  • 顧客や社外の人に数日だけ見せる下書きやデモ。
  • まだ検索に載せたくない、一般公開サイトのステージング用コピー。
  • 誰が見たかは関係なく、部外者が見ていなければよいもの。

04比較

共有パスワードと会社のログインの比較

会社のログインとは、会社がすでに渡している会社のアカウントで一人ひとりがログインすることです。Google、Microsoft、または会社のメールに届くコードを使います。

社内ツールでの共有パスワードと会社のログインの比較
項目共有パスワード会社のログイン
入れる人パスワードを知っている人なら誰でも。どこで知ったかは問いません会社のメールドメインのアカウントを持っている人だけ
1人を外すときパスワードを変えて、ほかの全員に新しいパスワードを送るリストから外すか、退職時に会社のアカウントを止める
誰が使ったかわかるかわからない。アプリからは全員が同じに見えるわかる。アプリは一人ひとりの名前とメールアドレスを受け取る
漏れたときチャットのスレッド、メール、スクリーンショットなど、見つけた人なら誰でも使える漏れるものがない。部外者が入るには、御社で使える有効なアカウントが必要
料金Vercel Pro ではプロジェクトごとに月額 $20。Netlify では Pro プラン。自分のサーバーなら無料Cloudflare Access は自分で設定すれば50ユーザーまで無料。TeamOnly はホスティング込みで月額 $19

05会社のログインが最初から

TeamOnly で社内アプリを会社のログインの内側に置く方法

そのサイトが実は社内ツールなら、パスワードはいりません。TeamOnly はアプリをホストし、何かが読み込まれる前に会社のログインを確認します。

  1. 会社のメールアドレスで無料で始める

    14日間無料で試せます。カードは不要です。その後は Builder が月額 $19 で、作成者1人、アプリ3つまでです。御社のメールドメインが、そのままドアになります。

  2. プロジェクトで npx teamonly init を実行する

    Claude Code と Cursor 向けの説明と、アプリがログイン中の人、データベース、ファイルを扱うための小さなライブラリを追加します。

  3. ログインして公開する

    npx teamonly login を一度実行し、次に npx teamonly deploy を実行します。expenses.acme.teamonly.app のようなリンクができます。

  4. リンクを送る

    同僚は会社の Google か Microsoft のアカウント、または会社のメールに届くコードでログインします。npx teamonly access only dana@acme.com で、特定の人だけに絞ることもできます。

06よくある質問

よくいただく質問

すべての質問と回答

無料で Web サイトにパスワードをかけるには?

自分のサーバーなら、HTTP ベーシック認証は無料です。Cloudflare では Access が50ユーザーまで無料で、1人ずつにワンタイム PIN をメールで送れます。ただしドメインが Cloudflare にある必要があります。Vercel の Hobby プランと、Netlify の Free プランと Personal プランにはパスワード保護がありません。

Vercel のパスワード保護はいくらですか?

Pro プランで、保護するプロジェクトごとに月額 $20 かかります。Pro プラン自体の料金とは別です。Enterprise では含まれていて、Hobby では使えません。Vercel Authentication はすべてのプランで無料ですが、訪問者にはそのプロジェクトにアクセスできる Vercel のアカウントが必要です。

Netlify の無料プランでパスワード保護は使えますか?

使えません。Netlify のドキュメントには、Free プランと Personal プランではパスワード保護を使えないと書かれています。使えるのは Pro(月額 $20、メンバー数無制限)と Enterprise です。

React アプリにパスワードをかけられますか?

かけられますが、React の中からではありません。React のコードはすべてブラウザに送られるので、そこでパスワードを確認しても読まれて飛ばされてしまいます。代わりにホスティング側(Vercel、Netlify、Cloudflare、自分のサーバー)でパスワードをかければ、入力されるまで何も読み込まれません。

社内ツールなら共有パスワードで十分安全ですか?

部外者や検索エンジンは締め出せます。でも、誰がツールを使っているかはわかりませんし、1人のアクセスだけを取り消すには全員分のパスワードを変えるしかありません。同僚が毎日使うツールなら、一人ひとりが会社のアカウントでログインするほうが安全です。

TeamOnly で一般公開の Web サイトにパスワードをかけられますか?

できません。TeamOnly は、同僚が会社のアカウントでログインする社内アプリ専用です。一般公開のサイトは置けません。パスワード付きの一般公開サイトには、このページで紹介しているホスティングのどれかを使ってください。

アーリーアクセス

チームのツールに、共有パスワードはもういりません

Builder は月額 $19。同僚は会社のアカウントでログインし、それ以外の人は入れません。

14日間無料で試すまたは今すぐ申し込む

トライアルはカード不要。その後は月額 $19 から、いつでも解約できます。

まだ検討中なら、最新情報を

会社のメールアドレスをお使いください。お知らせする価値のあるニュースがあるときだけ、たまにお送りします。

ご質問は hello@teamonly.dev へ。人が返信します。