bucket-sort logo bucket-sort

プログラミングとインフラエンジニアリングの覚え書き

  • Posts
  • About
  • Contact
  1. Home
  2. All Posts
  3. 認証(Authentication)と認可(Authorization)の違い

認証(Authentication)と認可(Authorization)の違い

Mar 8, 2026 セキュリティ bucket-sort

ソフトウェア開発をしていると、認証 (Authentication) と 認可 (Authorization) という言葉がよく出てきます。 似たような文脈で使われるため混同しやすいのですが、役割ははっきり分かれています。

結論から言うと、この2つは次の違いです。

  • 認証 (Authentication) : 「あなたは誰ですか?」を確認する
  • 認可 (Authorization) : 「あなたは何をしてよいですか?」を決める

多くのシステムでは、認証 → 認可の順序で処理が行われます。

以下、それぞれについて整理しておきます。

認証 (Authentication)

認証は、ユーザーやシステムの身元を確認する処理です。

つまり、

この人は本当にそのユーザー本人なのか?

を確認する仕組みです。

例えばWebサービスのログインでは、ユーザーは次のような情報を入力します。

  • ユーザーID
  • パスワード

システムはそれをデータベースに保存されている情報と照合し、正しければ

このユーザーは確かに本人である

と判断します。

認証の結果として、システムは

  • セッション
  • トークン

などを発行し、そのユーザーがログイン済みであることを記録します。

認証の主な方法

認証の手段にはいくつか種類があります。

  • ID + パスワード
  • ワンタイムパスワード (OTP)
  • 多要素認証 (MFA)
  • OAuth / OpenID Connect
  • 生体認証 (指紋・顔など)

いずれも目的は同じで、「本人確認」 です。

認可 (Authorization)

認可は、認証されたユーザーに対して何を許可するかを決める処理です。

つまり、

このユーザーはどの操作を実行してよいのか?

を判断します。

例えば、あるシステムに次のようなユーザーがいるとします。

ユーザー 権限
一般ユーザー 自分のデータだけ閲覧できる
管理者 すべてのユーザーを管理できる

同じシステムにログインしていても、

  • 一般ユーザーは管理画面に入れない
  • 管理者は入れる

といった制御が行われます。

これはすべて認可の処理です。

認証と認可の関係

多くのシステムでは、処理の流れは次の順序になります。

ユーザーアクセス
        ↓
認証 (Authentication)
「この人は誰?」
        ↓
認可 (Authorization)
「この人は何ができる?」
        ↓
アプリケーションの機能

まずユーザーの身元を確認し、その後で操作の許可範囲を決めるという流れです。

認証されていない状態では、通常は認可の判断を行うことすらできません。

例:ホテルで考える

この2つの違いは、ホテルの例で考えると理解しやすいです。

認証

ホテルのフロントで名前を確認される。

「あなたは宿泊者本人ですか?」

ここで本人確認が行われます。

認可

カードキーを渡される。

そのカードキーで開くのは

  • 自分の部屋
  • エレベーターの特定フロア

だけです。

これは

「あなたに許可されている範囲」

を示しています。

まとめ

認証と認可は、セキュリティ設計の基本的な概念です。

用語 意味
認証 (Authentication) ユーザーの身元を確認する
認可 (Authorization) ユーザーに許可された操作を決める

簡潔に言うと

  • 認証 → あなたは誰?
  • 認可 → 何ができる?

という違いになります。

多くのソフトウェアシステムでは、この2つを組み合わせることでアクセス制御を実現しています。

認証 認可 MFA OAuth OpenID Connect アクセス制御
← InfluxDBとGrafanaを使って自前のメトリクスサーバーを立ち上げる (3) パブリックサーバーを立ち上げる Laravelで用意されている認可(Authorization)の仕組みと使いどころ →

Related Posts

  • Laravelのcan()メソッドの動き整理 Mar 13, 2026
  • Laravel FormRequestのauthorize()をちゃんと書くべき理由 Mar 12, 2026
  • Laravelで用意されている認可(Authorization)の仕組みと使いどころ Mar 9, 2026
  • ファイルアップロード機能で注意すべき代表的な脆弱性 Mar 10, 2026

Table of Contents

  • 認証 (Authentication)
    • 認証の主な方法
  • 認可 (Authorization)
  • 認証と認可の関係
  • 例:ホテルで考える
  • まとめ

Recent Posts

  • Laravel の Event / Listener で Pub/Sub を実装する Apr 2, 2026
  • [C#] delegate と event の仕組みを整理する Apr 1, 2026
  • Pub/Sub パターンとは何か Mar 31, 2026
  • PHP/Laravel で値の状態を判定するヘルパ関数まとめ Mar 30, 2026
  • Filament の dehydrated メソッドとは何か Mar 29, 2026

Categories

  • AWS27
  • C#22
  • .NET20
  • Laravel16
  • Linux12
  • Apache8
  • MySQL8
  • PHP8
  • DynamoDB6
  • Nginx5
  • WordPress4
  • インフラ4
  • Hugo3
  • セキュリティ3
  • .NET Framework1
  • Aurora1
  • Filament1
  • Git1
  • SQS1

Tags

  • AWS
  • C#
  • .NET
  • Laravel
  • PHP
  • MySQL
  • セキュリティ
  • Linux
  • Apache
  • Code Snippet
  • DynamoDB
  • NoSQL
  • PHP-FPM
  • RDS
  • DoS
  • Nginx
  • Windows
  • WordPress
  • パフォーマンス
  • 監視
  • Amazon Linux 2023
  • CMS
  • Docker
  • Ipset
  • Iptables
  • OPCache
  • Webサーバー
  • 認可
  • Aurora
  • Blade
Powered by Hugo & Explore Theme.