Webアプリケーションにおける認証と認可の違いを学ぶ機会があったのでメモしておきます。
認証とは
本人しか知り得ない情報を用いて本人確認を行うこと。
例えば、Webサイトにログインするときにパスワードを用いて本人確認を行うのが認証です。最近ではセキュリティ強化のため、パスワードに加えてSMSやアプリによるセキュリティコードを用いた二段階認証もよく使われています。
認可とは
利用しようとしている情報や機能へのアクセス権限を与えること。
例えば、会員制のサイトにおいて、無料会員は無料会員用のページしか参照できなくする、有料会員は有料会員用のページを参照できるようにする、といったものが認可です。認可では、セキュリティを高めるために利用者には必要最小限の権限のみを与えることが重要です。
認証と認可
個人情報や有料コンテンツを取り扱うようなWebアプリケーションでは、認証と認可でアクセス制御を行うのが一般的です。
認証を行うことで本人確認を行い、認可を行うことで利用しようとしている情報や機能へのアクセス権限を与えます。認証を行わずに認可だけ行う(例. 接続元IPアドレスで判断する)と、他人によるなりすましを見過ごす可能性があります。また、認証だけを行い認可を行わないと、ユーザが本来参照すべきでないコンテンツや他人の個人情報にアクセスできてしまう可能性があるのです。
まとめ
Webアプリケーションにおいて、すべての情報や機能は認証と認可で制御することが必須です。そのためにも認証と認可の違いはきっちりと理解しておきましょう。