コンテンツにスキップ

バックエンド面接: 認証と認可の違い

元ネタ

  • X: https://x.com/ayesha_fatiima/status/2040674563844186536
  • 投稿者: @ayesha_fatiima

原文

Interviewer:

What's the difference between authentication and authorization?

(119K devs still get this wrong in interviews)

要約

認証(authentication)と認可(authorization)の違いを問う面接質問。多くの開発者がまだ面接で間違えるという。

まずの答え

  • 認証(Authentication): 「あなたは誰か」を確認する。ユーザー名とパスワード、OAuth トークン、生体認証など。
  • 認可(Authorization): 「あなたは何ができるか」を確認する。ロール、パーミッション、アクセス制御リスト(ACL)など。

認証が先で、認可がその後。ログインは認証、ログイン後にどのリソースにアクセスできるかが認可。

深掘りしたい観点

  • OAuth 2.0 / OIDC における認証と認可の役割分担
  • JWT トークンの中に認可情報を含める設計
  • RBAC / ABAC の違い
  • API Gateway での認証・認可パターン

tags: #backend #interview #security #authentication #authorization #oauth