連載の現在地:Phase 1「公開」(3 / 4本目) — まずは小さく安全に世に出す
1. 公開 → 2. 費用と安定 → 3. 安全 → 4. 品質 → 5. 自動化

こんな悩みの人へ

作りかけのAIアプリを社内で試してもらいたいけれど、URLが外に漏れるのが心配。お客様にだけデモを見せたいが、ログイン機能を作るほどの時間はない。かといって、パスワードをチャットで共有するのはさすがにやめたい。ひとつでも思い当たるなら、この記事が役に立つはずです。

結論

Cloudflare Accessを使えば、アプリのコードを変えずに、決めた人だけが開ける状態にできます。 開こうとすると、先にログイン画面が出ます。許可したメールアドレスにだけ、使い捨てのコードが届く仕組みです。会社のGoogleアカウントなどでのログインにも対応しています。

Zero Trustの無料プランで、50人まで無料で使えます。

なぜ「限定公開」は難しいのか

限定公開が意外と難しいのには、理由があります。

URLは、知っていれば誰でも開けます。推測されにくいURLにしても、転送されたり、履歴から見られたりすれば終わりです。

共有パスワードにすると、今度は誰が使っているのか分からなくなります。辞めた人や取引の終わった相手を外すには、全員のパスワードを変えるしかありません。かといって、デモのためにログイン機能を作るのは重すぎます。パスワードの保存や再設定、セッション管理まで作ると、本来作りたい機能より大きくなってしまいます。

Accessは、アプリの手前でログインを済ませてから通す「門番」です。Accessで保護するホスト名と、ほかの公開経路を確認します。独自サーバーへ直接アクセスできる構成では、TunnelやAccessトークンの検証など、迂回を防ぐ設定も必要です。

[利用者] --> [Cloudflare Access] --ログインした許可済みの人だけ--> [あなたのアプリ]
                  |
                  +-- 未ログイン → ログイン画面(One-time PIN・Googleなど)

※ *.workers.dev など、Accessを通らない別の入口は、閉じるか同じように守る

解決策の比較

方法

費用

手間

向いている状況

Cloudflare Access

Freeは50ユーザーまで。Pay-as-you-goは1ユーザー月7ドル

少ない

見せる相手を、人単位で管理したい

Basic認証

無料

少ない

ごく短期間、ごく少人数で試すだけ

ホスティングのパスワード保護機能

プランによる

少ない

そのサービスで公開していて、機能が使える

アプリにログイン機能を作る

開発の工数

多い

本番でも会員機能が必要になる

どれを選ぶか

見せる相手を1人ずつ追加・削除したい場合や、社内の人だけに限りたい場合は、Accessが向いています。数日だけ2〜3人に見せる程度なら、Basic認証でも足ります。ただし、パスワードの共有方法には注意してください。本番でも会員ごとに表示を変えるのであれば、アプリにログイン機能を作る必要があります。

手順

前提:Cloudflareのアカウントと、Cloudflareで管理しているドメイン(またはWorkersで公開したアプリ)。

  1. ダッシュボードから「Zero Trust」を開きます。初めての場合は、チーム名を決めて無料プランを選びます。
  2. 「Access controls」→「Applications」で「Create new application」を選び、種類は「Self-hosted and private」を選びます。
  3. 「Add public hostname」から守りたいホスト名やパスを指定します。例:demo.example.com や、example.com/demo のようなパスです。
  4. 「誰を通すか」のポリシーを作ります。特定の人だけに見せるならメールアドレスを1件ずつ登録し、社内の人だけに見せるならメールアドレスのドメイン(例:@example.co.jp)で許可します。
  5. ログイン方法を選びます。最初は「One-time PIN」(メールに届くコード)が手軽です。会社でGoogle WorkspaceやMicrosoft 365を使っていれば、それと連携することもできます。
  6. 保存したら、ブラウザのシークレットウィンドウでURLを開きます。許可したメールアドレスでログインしてアプリを開けることと、許可していないアドレスでは開けないことの両方を確認します。
更新日:2026-11-03

つまずきやすい点

よくあるのが、*.workers.dev のURLが開いたままになっているケースです。独自ドメインだけを守っても、Workersに最初から付いているURLから入れてしまうことがあります。使わないなら無効にするか、同じように守ってください。

ログインを挟むと、APIを別のプログラムから呼べなくなる点にも注意します。ログインのない自動処理からアクセスする場合は、「サービストークン」を発行して、リクエストに付けます。

人数と認可は、別々に管理します。無料枠はアカウントの席数として数えますが、ユーザーを席の一覧から削除するだけでは、Accessの利用を禁止できません。退職者などは、ポリシーやIdPの権限からも外します。デモを見せ終わった取引先や退職者を、ポリシーから外し忘れないようにしましょう。

この記事のまとめ:デモを社内や特定の人だけに見せたい。悩み:社内だけで試したい、URLを転送されたら?、複雑なログインは避けたい。解決の流れ:利用者がアクセス→本人を確認→許可ルールと照合。進め方:ドメインを決める→Accessに登録→本人確認を設定→別の入口も確認。つまずきやすい点:別URLを開けたままにしない、許可の範囲を広げすぎない、APIも保護を確認この記事のまとめ:デモを社内や特定の人だけに見せたい。悩み:社内だけで試したい、URLを転送されたら?、複雑なログインは避けたい。解決の流れ:利用者がアクセス→本人を確認→許可ルールと照合。進め方:ドメインを決める→Accessに登録→本人確認を設定→別の入口も確認。つまずきやすい点:別URLを開けたままにしない、許可の範囲を広げすぎない、APIも保護を確認

次に出やすい悩み

見せる相手を絞れたら、次は本番として出す準備と、誰でも使える形で公開したときの悪用が気になってきます。まだ公開そのものができていない場合は、「AIアプリをサーバー管理なしで公開したい」から始めてください。AIで作ったコードをこのまま本番に出してよいか不安なら「Claude Codeなどで作ったものを本番に載せたい」を、ログインなしで一般の人に公開する機能を作るなら、Phase 3の「ボットにAPIを食いつぶされる」もあわせて読んでおくと安心です。


「社内の人には全体を、取引先には一部だけ見せたい」のように、見せる相手が混ざる場合の設計もご相談いただけます。社内ツールの公開範囲やアクセス管理はCloudflareインフラ構築をご覧ください。

よくある質問

Q. 推測されにくいURLにすれば、限定公開として十分ですか?

URLは転送や共有ができるため、知っていることだけを利用の許可にしない設計が必要です。Cloudflare Accessなどで本人を確認し、許可したメールアドレスや組織のルールと照合します。URLの公開範囲と、誰がアクセスできるかを分けて管理します。

Q. Accessで保護したAPIを、自動処理から呼べますか?

自動処理向けには、サービストークンを使う方法があります。Accessのポリシーも用途に合わせて設定し、Client IDとClient Secretをサーバー側で管理します。発行方法や失効の手順はサービストークンの公式資料で確認してください。

Q. 独自ドメインを保護すれば、workers.devのURLも自動で保護されますか?

別の入口として確認してください。独自ドメインだけに保護を設定しても、別URLから同じアプリへアクセスできる場合があります。使わない入口は無効にするか、その入口にも保護を設定し、未許可の利用者で拒否されることを確認します。

Q. 短期間、少人数に見せるだけでもAccessが必要ですか?

本文では、数日だけ少人数へ共有する場合の候補としてBasic認証も挙げています。その場合もパスワードの共有先と変更の方法を決めます。相手を個別に追加・削除したい場合はAccess、本番で会員ごとに表示を変えたい場合はアプリ内の認証・認可を検討します。

執筆者情報

パブロフ株式会社

IT顧問、AI・業務アプリ開発、SESを通じて、企業のIT活用を支援しています。代表の藤澤 昌隆は、2007年からシステム開発・運用に携わり、アクセンチュアでの業務ITコンサルティングを経て、2019年にパブロフ株式会社を設立しました。

AI活用の支援事例として、営業工程を支える7つの業務別AIアプリの構築を公開しています。アプリの開発に加え、入力・出力の形式、評価基準、テストケースの整備にも取り組んでいます。

記事の内容に関するご質問や誤りのご指摘は、お問い合わせ窓口へお寄せください。

参考資料