コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

OAuthの話で出てくる「認証」と「認可」の違いをざっくりまとめる

よくわからなくなるのでざっと書いてみる

認証(Authentication)とは

認証とは問いかけたのシステムやサービスに対して「誰であるかを証明すること」

例えば

  • IDやパスワードを入力させてそのIDのユーザであることを証明する
  • 利用している端末などの情報を送ってユーザであることを証明する

など、利用しようとしているユーザであることを証明する仕組み。

認可(Authorization)とは

認可とは問いかけたシステムやサービスへ「リソースへのアクセス許可をすること」

Facebookなどがわかりやすく

  • メールアドレス
  • 性別
  • 年齢

などFacebookとして持っているユーザの情報ひとつひとつに対して、問いかけたシステムに関して良いか聞いてくる。

OAuth + OpenID Connectでは

俗に言うOAuthはあくまでも認証の仕組み。そのため、どの情報を与えていいかなどのコントロールは別の仕組みで実現する必要がある。そこでよく使われる仕組みがOpenID Connectのため、両者がセットで扱われる。

参考リンク