セキュリティ・認証の用語一覧へ
このページの目次

認証フィルターとは?

最終更新:2026/08/18

3秒でわかる

リクエストが本処理に届く前に割り込んで、ログイン済みかどうかを判定する共通の関門。各画面に認証チェックを書かずに済ませる仕組みです。

もう少し詳しく

どういうものか

認証フィルターは、リクエストがコントローラーや画面の処理に到達する前に横から割り込み、資格情報を検証して通すか弾くかを決める層です。Java の Servlet Filter、Spring Security の Filter Chain、Express のミドルウェア、Next.js の middleware など、名前は違っても位置付けは同じです。多くの場合、Cookieセッション ID や Authorization ヘッダーのトークンを見て、正しければ利用者情報をリクエストに載せて次へ渡します。

なぜ必要か

認証チェックを各画面の先頭に書く方式だと、画面が 50 枚あれば 50 箇所に同じコードが並びます。1 枚でも書き忘れれば、そこだけ誰でも入れる穴になります。しかもこの種の抜けはテストで気付きにくく、公開後に外部から発見されます。入口を 1 本にまとめれば、守る対象は「フィルターの設定」だけになり、レビューで確認できる量に収まります。

具体例

function requireAuth(req, res, next) { const token = req.headers.authorization?.replace("Bearer ", ""); if (!token) return res.status(401).json({ error: "unauthenticated" }); try { req.user = verifyToken(token); next(); } catch { return res.status(401).json({ error: "invalid token" }); } } app.use("/api/admin", requireAuth); app.get("/api/admin/users", (req, res) => res.json(listUsers()));

つまずきやすいところ

  • 適用範囲を「ログイン画面以外すべて」と書くつもりが除外条件を広く取りすぎ、管理画面まで素通しになる

  • 認証(誰であるか)だけ見て認可(その人が触ってよいか)を見ておらず、ログインさえすれば他人のデータを開けてしまう

  • 静的ファイルの配信経路がフィルターの外側にあり、そこから非公開ファイルが取れてしまう

  • 認証失敗を 500 で返してしまう。未認証は 401、権限不足は 403 が正しい
  • 似た用語との違い

    認証は本人確認、認可は権限の判定です。フィルターはこの 2 つを実行する場所であって、判定ロジックそのものではありません。

    覚え方

    建物の入口にある受付だと考えます。各部屋の前に警備員を立てるより、入口 1 箇所で入館証を確認する方が漏れが出ません。

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地認証フィルターセキュリティ

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    Javaコースの全編を見る