0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Cloudflare Access】社内ツールの認証を無料枠だけで手間なくセキュアに組み込めた!

0
Posted at

はじめに

ここ最近、AIをつかって社内向けツールを自作することが増えました。

メンバーが開発したツールで便利そうなものはデプロイして使ってみようよ!というアクションもしやすくなりました。

ただ、ここで一つ課題が出てきました。
社内向けのツールとはいえ、誰でもアクセスできる状態で公開するわけにはいきません。
かといって、認証機能を自前で実装するのは手間がかかります。

「認証もサクッと組み込めたらなあ」と思っていたところ、Cloudflare Access を使ったら、無料枠のままで十分すぎるほどセキュアな認証が組み込めました。

この記事では、その設定内容とつまずいたポイントを共有します。

前提・動作確認環境

  • 記事執筆時点: 2026年8月
  • 対象サービス: Cloudflare Access(Cloudflare Zero Trustの機能の1つ)
  • デプロイ先: Cloudflare Workers
  • ツールの構成: フロントエンドがHTML / JavaScript、APIがHono

ダッシュボードのUIやプラン内容は変更される可能性があります。最新情報はCloudflareの公式ドキュメントをご確認ください。

Cloudflare Accessとは

Cloudflare Accessは、Cloudflare Zero Trustが提供する機能の1つです。

アプリケーションの手前で動作して、指定した条件を満たしたユーザーだけを通す。
という仕組みを提供してくれます。

特に便利だなとおもったのは、アプリケーション側にログイン機能を実装する必要がなかったことです。
Cloudflareのダッシュボードからポリシーを設定するだけで、認証を組み込めます。

無料枠で十分すぎるほどの認証機能

社内の小規模ツールで使う分には、Cloudflare Accessの無料プランで十分でした。ワンタイムPIN認証を使ったメール認証と、細かいポリシー設定までできて、費用はかかりませんでした。

無料プランで使えるユーザー数の上限は、記事執筆時点で50ユーザー。
最新の情報は公式ページより確認してください。

設定した内容

ダッシュボード上で、次のようなポリシーを設定しました。

項目 設定値
アプリケーションの種類 Self-hosted
認証方法(Identity provider) One-time PIN
ポリシー名 Allow company members
Action Allow
Include Emails ending in @example.co.jp

設定できるのはこれだけです。手順は次の3ステップでした。

  1. Zero Trustダッシュボードで「Accessコントロール」→「アプリケーション」→「新規アプリケーションを追加」から、新規作成

CleanShot 2026-08-06 at 08.50.05.png

  1. 「宛先」でWorkersを選択します
    CleanShot 2026-08-04 at 07.23.06.png

  2. 「認証」で「One-time PIN」を有効にする
    CleanShot 2026-08-04 at 05.50.28.png

  3. 「Accessポリシー」→「新しいポリシーを作成」からポリシールールを設定
    CleanShot 2026-08-06 at 08.54.40.png

これだけで、社内ドメインのメールアドレスを持つメンバーだけがアクセスできる状態になりました。ログイン画面に自分のメールアドレスを入力すると、ワンタイムPINがメールで届き、それを入力するとツールにアクセスできます。

パスワード管理も、ログイン機能の実装も不要です。ここまでラクにできるのかと驚きました。

つまずいたポイント:Includeルールの凡ミス

設定自体は簡単だったのですが、1箇所だけ凡ミスでつまずきました。

ポリシールールで、本来は「末尾が次のメール」を選んで、ドメイン単位で許可するつもりでした。ところが、誤って「メール」(特定の1つのメールアドレスとの完全一致)を選んだ状態で、ドメインの文字列を入力してしまっていました。

Include selector 入力値 結果
誤った設定 Emails(完全一致) @example.co.jp 完全一致するメールアドレスが存在しないため、誰も条件を満たさない
正しい設定 Emails ending in(ドメイン一致) @example.co.jp @example.co.jp で終わるメールアドレスすべてが条件を満たす

厄介だったのは、この設定ミスがエラーとして表面化しないことです。ポリシーの保存時にはエラーは出ません。実際に起きたのは、「対象外のユーザーがログイン画面でメールアドレスを入力しても、ワンタイムPINのメールが届かない」という現象だけでした。

見た目上は正常に動いているように見えるため、原因の切り分けに少し時間がかかりました。自分自身のメールアドレスをたまたま個別に許可していたこともあり、自分では気づきにくい状況でした。

まとめ

  • 社内ツールの認証は、自前で実装しなくてもCloudflare Accessに任せられる
  • 無料プランのままでも、ポリシー設定を含めて十分な機能が使える
  • ポリシールールの「メール」と「末尾が次のメール」の選び間違いは、エラーが出ないぶん気づきにくいので注意

AIのおかげでツール自体はサクッと作れるようになり、さらにそれらを、よりセキュアに運用できるCloudflare Access便利です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?