Help us understand the problem. What is going on with this article?

認証と認可の違いと、OAuth認証

認証と認可は似ていますが異なるものです

認証

ユーザーが誰であるかを確認することです。

単純に言えば、ユーザーが、
「私は○○です。確認してください」
とサーバーに問い合わせて、
サーバーが、
「確かに○○さんですね。確認しました。」
ということを認証と言います。

勘違いしやすいですが、あくまで誰であるかを確認するだけです。
そこから、ユーザーが何かできるわけではありません。

ドラゴンボールに例えると、
悟空「オッス!オラ、悟空!これは身分証な。」
Aさん「確かに孫悟空さんですね。」
というだけです。

ウェブ上では身分証を提出することは難しいので、パスワードや秘密の質問を利用して本人確認します。
普段ウェブサービスを利用している人は馴染み深いと思います。

認可

何かしらの権限を与えることです。

単純に言えば、誰かが、
「私は○○がしたいです!許可をください。」
とサーバーにお願いして、
サーバーが、
「良いですよ。許可証を渡します。」
ということを認可と言います。

ただし、誰が許可証を貰うかは問いません。

ドラゴンボールで例えると、ドラゴンボールを7つ持っていれば誰でも願いを叶えられます。
悟空以外でも可能です。
つまりドラゴンボールが許可証です。

デジタル上はOAuthという方法が良く使われます。

普通は認証の後に何かしらの認可をします。
例えば、本人であることが確認出来たら、個人情報を閲覧できる許可を与えたりします。

OAuth認証という謎のワード

OAuthは認可の方法なのに、なぜかOAuth認証というワードがあります。
これは文字通りOAuthを利用して認証します。

よくアカウント名+パスワードの代わりに、Twitterアカウント等でサービスにログインすることはないですか?
これはTwitterがOAuthに対応しており、認可ではなく認証として利用します。

仮に、ログインしたいサービスAと、ログインしたいBさんがいたとします。
本来、認証と言うのは身分証を渡して本人確認するものです。
しかし代わりに、「TwitterでBさんとして活動できる許可証」をサービスAに提出します。
するとサービスAはTwitterで試しに許可証を使ってBさんと活動してみます。
(例えばプロフィール情報の取得など)
もし本当にできれば、これを渡してくれたのはBさんだ!と確認することができます。
Bさんということが分かったので、認証のようなことができました。
(ちなみにこの許可証はアクセストークンと言います。)

これがOAuth認証です。
ただし、本来はOAuthは認可の方法なので推奨されないようです。
認証にはOpenID Connectという標準があるので、これが推奨されますが、Twitterは対応していません。
そのためOAuth認証が広まってしまったようです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした