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

認可とは?

最終更新:2026/08/18

3秒でわかる

ログイン済みの相手に、その操作を許すかどうかを判定する仕組み。誰であるかを確かめる認証の次に来る、何をしてよいかを決める工程です。

もう少し詳しく

どういうものか

認可は、すでに身元の分かっている利用者に対して、要求された操作を許可するか拒否するかを決める処理です。英語では authorization、権限チェックとも呼ばれます。

判定の材料になるのは、利用者の役割(管理者、一般、閲覧のみ)、対象のリソース、操作の種類の 3 つです。「一般ユーザーが、他人の注文を、削除する」は拒否、「自分の注文を、参照する」は許可、といった形で決まります。

なぜ必要か

認証だけ通してしまうと、ログインさえできれば何でもできる状態になります。実際の情報漏えいの多くは、外部からの侵入ではなく、正規の利用者が本来見られないデータに到達できてしまう設計の穴から起きます。

URL の ID を書き換えたら他人の請求書が開けた、という類の事故は、認証は成功しているのに認可が抜けている典です。

具体例

// 認証 — <a href="/glossary/token" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">トークン</a>から「誰か」を確定する function authenticate(req, res, next) { const token = req.headers.authorization?.replace("Bearer ", ""); const payload = verifyJwt(token); if (!payload) return res.status(401).json({ error: "unauthenticated" }); req.user = payload; next(); } // 認可 — その人がこの注文を触ってよいか判定する async function canEditOrder(req, res, next) { const order = await db.order.findUnique({ where: { id: <a href="/glossary/req-params" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">req.params</a>.id } }); if (!order) return res.status(404).json({ error: "not found" }); const isOwner = order.userId === req.user.id; const isAdmin = req.user.role === "admin"; if (!isOwner && !isAdmin) { return res.status(403).json({ error: "forbidden" }); } req.order = order; next(); } app.patch("/orders/:id", authenticate, canEditOrder, updateOrder);

401 は「あなたが誰か分からない」、403 は「分かったうえで許可しない」を意味します。

つまずきやすいところ

  • 画面でボタンを隠して済ませる — 表示を消しても API は生きています。判定は必ずサーバー側で行います

  • 一覧では絞るのに単票で忘れる — 一覧を自分の分だけに絞っても、詳細取得で ID を直接指定されれば読めてしまいます。1 件取得にも同じ判定を入れます

  • 役割を増やしすぎる — 役割が 20 個を超えると誰も全体を把握できません。役割は少なく保ち、細かい差は所有者かどうかで判定します

  • 401 と 403 を取り違える — 使い分けが逆だと、クライアント側の再ログイン処理が誤作動します
  • 似た用語との違い

    用語問い
    認証 (authentication)あなたは誰か
    認可 (authorization)あなたはそれをしてよいか
    監査ログ実際に誰が何をしたか


    覚え方

    空港でたとえると、パスポートの照合が認証、搭乗券に書かれた便と座席の確認が認可です。本人だと分かっても、別の便には乗れません。

    知識のつながり

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

    現在地認可セキュリティ

    LEARN BY DOING

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

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

    Node.jsコースの全編を見る