認証は身元の確認、認可は権限の確認
認証は、このリクエストを誰が送っているのかを確かめる処理です。サーバーは、パスワードやトークンなどの認証情報を、登録済みのユーザー情報と照合して、送信者を特定します。認証に失敗したときは、401を返します。
認可は、送信者が分かったうえで、その人にその操作を許可してよいかを判断する処理です。サーバーは、その人に与えられた権限を、いま実行しようとしている操作と照合します。認可に失敗したときは、403を返します。
認証を通っても、認可で失敗することがあります。例えば、ログイン済みのユーザーが他人のリソースを削除しようとすると、サーバーは送信者を特定できても、その操作は許可しないため、403を返します。認証と認可は別の確認なので、同じリクエストでも結果が分かれます。
この課の目標
リクエストの中で認証と認可を区別できる。それぞれが何の証拠を確認するかを説明できる。
有効で期限内のトークンを持つユーザーAliceが、Bobが持つリソースを削除しようとした。結果はどうなる?