Webサイトを特定の人に向けて共有したい!
- 自分だけが使えればいい
- 社内の一部にだけ公開したい
などなど、特定範囲にだけWebサイトを共有するニーズは、常に一定存在していると思います
そんなあなたに!
Cloudflare Pages + Cloudflare Accessという技術スタックがおすすめです
Cloudflare Pages
- Webアプリケーション(サイト)を専門とするPaaS
- VercelやNetlify、Amplify Hosting相当のサービス
- GitHub連携、CLI経由、Zipのアップロードなどデプロイ方法は色々
- ブランチ単位でデプロイする機能もあるよ!
- SSRしない限りは完全無料
- SSRする場合も1000万アクセスぐらいまでは無料(2024/9/5)
Cloudflare Access
- Cloudflare ZeroTrustの1機能
- Cloudflareでプロキシしているアプリケーションなどに様々なアクセス制限を追加できる
- IP制限、メール認証、SAML、OpenIDConnect etc...
- 50名までは無料!
- 小規模なチームなら十分
手順
- Cloudflare Pagesにデプロイ
- Pagesプロジェクトの設定からアクセス制限を有効にする
おわりです!
認証掛けられるとどうなる?
こんな感じ
SAMLのみ有効化しています
注意点
便利ですが難点か注意点があります
-
Pagesの設定でアクセス制限を有効にしても、本番環境の.pages.devドメインには認証がかかりません
-
GitHub連携するといきなりデプロイが始まるので、アクセス制限を掛ける前に公開されてしまう
- ビルドをわざと失敗させる(ビルドコマンドを適当に設定するなど)など、工夫が必要
-
Zipで公開する場合も空Zipを渡すと言った工夫をしたほうがいいでしょう
認証方法
- メール認証
- デフォルトで有効
- メールを飛ばして認証コードを入力させる方式
- メールアドレスのドメインを制限できます
- @dokokanokigyou.co.jpのみするなど
- ただ、届くまでやたら遅延することがある…
- SAML、OpenIDConnect
- 個人的なおすすめ
- 非常にシームレスに連携可能
- Cloudflare Access側の追加費用がなく素晴らしい
- その他
- IP制限などなど
最初はメール認証で検証し、良さそうならSAML、OpenIDConnectの設定を行うのがおすすめです
AWSのIdentify CenterやCognito、GMOトラスト・ログイン、Auth0など、個人 or 少人数であれば非常に安価でSAML、OpenIDConnetを提供するサービスもあるので、連携しておくと幸せになれます
最後に
- Cloudflareはいいぞ
- 設定が容易でかつ、(SAMLやOpenIDConnect提供側が対応していれば)MFAも絡めて認証できるため、非常にセキュアに共有する事ができます
- 本記事のスコープから外れているため省略しましたが、Cloudflare Pagesも非常に魅力的なサービスです
- サーバサイドも行けるし、ホスティングの費用がほぼかからない!