認証、認可の違いを聞かれることがあったので三行でまとめる
認証は、 指紋認証、顔認証に代表される通り、あなたは「誰か」を確認すること。
認可は、「あなたが何をしてもいいかを決めること」
多くの場合、認証と認可は同時に行われるため普段意識していないと区別できない。
認証、認可が全く別のところで行われることってあるの?
ある。例えば、GoogleアカウントでログインしてChatGPTを使うとき、Googleがあなたのアカウントの認証を行い、その結果を受けてChatGPTがそのユーザーに許可された機能を認可する。つまり、認証はGoogleで行われ、認可はChatGPT内で行われる。
auth0, cognito, firebaseなどの認証機能を理解する上で認証と認可の違いは重要
認証サービスが何をしているのか、どういう処理が走るのかを理解するためには、認証と認可の違いを知っておくことが非常に重要。認証サービスは「ユーザーが誰であるか」を確認し、その後、認可部分を自分のシステム内でどう処理するかを考える際に、両者の違いを理解しておくと、設計がスムーズになる。