「認証」と「認可」と「権限(アクセス)管理」の違いを解説

2024/08/12に公開

認証(Authentication)

まず、認証は「あなたが誰であるかを確認すること」です。

たとえば、ある高級クラブの入り口で、ドアマンがあなたをチェックしているとします。ドアマンは「この人は本当にメンバーなのか?」を確認するために、メンバーズカードや顔写真付きのIDを要求します。

これが「認証」です。認証では、あなたがその場所に入る資格がある人物かどうかを確認するプロセスです。

認可(Authorization)

一方、認可は「あなたが何をできるかを決めること」です。

同じ高級クラブに入ったとしましょう。今度は、クラブ内のいくつかの部屋が特別会員だけが使えるエリアだったり、特定のサービスを利用できる人が限られていたりします。たとえば、VIPルームに入るには特別な会員証が必要だったり、特定のラウンジで食事をするにはさらに高いレベルのメンバーシップが必要だったりします。

これが「認可」です。

認可は、あなたがクラブの中で何ができるか、どこにアクセスできるかを決めるプロセスです。

つまり

認証(Authentication):あなたが誰であるかを確認する(クラブのメンバーかどうかをドアマンが確認)。
認可(Authorization):あなたが何をできるかを決める(クラブ内でどのエリアに入れるか、どのサービスを利用できるかを決定)。

このように、認証と認可は別のプロセスですが、どちらもセキュリティの重要な要素となります。

マイページにログインする場合で考える

「認証」にあたる行為

IDとパスワードでサイトのマイページにログインする行為は、認証に当たります。

認証(Authentication)は、あなたが誰であるかを確認するプロセスです。

ログインする際に、サイトは入力されたIDとパスワードを確認して、「このユーザーが正しいアカウントの持ち主であるか」を確認します。
もしIDとパスワードが正しければ、システムは「この人は確かに登録されているユーザーだ」と認識し、

マイページへのアクセスを許可します。

つまり、IDとパスワードでログインすることは、まさに「認証」の一例です。

「認可」にあたる行為

マイページにログインした後に、例えば、以下のようなケースで認可が行われると言えます。

プロフィールの編集

ログイン後にプロフィール情報を編集しようと、「edit」をクリックしたとき、
システムは「このユーザーがこの情報を変更する権限があるか」を確認します。

特定の機能の利用

ログインしたユーザーが、有料機能を利用しようとした際、システムは「このユーザーがこの機能を利用するための権限や資格を持っているか」を確認します。無料会員であれば、はじかれますし有料会員であれば通りますね。

このように、ID/PWなどで「認証」を受けてログインし、ログイン後もシステム内でさまざまな操作に対して「認可」が行われ、ユーザーがその操作を実行できるかどうかがチェックされます。

適切に"認可"することと、適切な"権限(アクセス)管理"は同じことか?

認可と、権限管理、これは似て非なる概念と言えます。
認可とはユーザーがシステムで特定の操作を試みた際に、その操作が与えられた権限内であるかどうかを判断するプロセスです。例えば、ユーザーがデータの編集を試みたときに、システムは「このユーザーには編集権限があるか」を確認します。

一方、権限管理、これは設計や設定の段階で行われ、ユーザーが持つべきアクセスレベルを定義します。
例えば、あるユーザーに「閲覧権限」を与え、「編集権限」を与えないという形で設定されます。

適切な権限を与えることは、システムが正しく認可を行うための前提条件です。

また、権限管理の主語は、システム管理者や責任者、認可の主語は、アプリケーションといえます。

業務システムなどでは、適切な権限(アクセス)管理をすることが大切

業務用のシステム、例えば、在庫の発注、管理、受注、確認、申請、承認・・・などが行えるシステムがあったとします。このようなシステムには、内部の不正や操作ミス、不正操作を防ぐために、適切な権限(アクセス)管理を行うことが大切です。

例えば、営業部は発注機能と在庫確認機能のみ操作できて、EC部は受注機能、メール機能のみが操作できて・・・などですね。

改訂履歴

2024/8/12 投稿

Discussion