認可と認証の違い
学習中に出てくる認証と認可。
ぼんやりわかっているだけで説明できないと感じたので今回調べました。
認証
通信の相手が誰(なに)であるかを確認すること。
純粋な認証はそれが完了したからといって、何かが許される話とは関係がない。
例えば、身分証明書。
身分証明書を提示した場合、そこに『りゅうじ』と書いてあったとしたら、目の前にいる人は『りゅうじさん』である事を認めると思います。この状態を認証という。
ログインで言えばEメールやパスワードで認証を行いますよね。ただこちらは純粋な認証ではなく認可に紐づいているものです。(基本そうです)
では認可とは何でしょう。
認可
とある特定の条件に対して、リソースアクセスの権限を与えること。
純粋な認可は、それがあるからといって身元が明らかになる話とは関係がない。
例えば、切符。
電車に乗る事を許されるが、自分が誰かは関係ない。
もし切符を誰かにもらったとしても、電車に乗る事ができる。委譲されても権限に問題はない。
これは認証に基づかない認可の事例です。
認証をせずに認可だけを受けられると事はこのようにあるわけです。逆はどうでしょう。
認証したのに認可しない場合はあるか
先ほど、基本そうですと言いましたが、認可を求めて認証するわけですから、基本紐づいているものです。
Eメールやパスワードで本人確認しておいて(ここまでが認証)、ログインの権限(認可)を与えないなんてありえないですよね。
ただ、基本そうだと言いましたが細かく言うとありえます。
例えば、身分証明書でTSUTAYAのカードを作りました。身分証明書だけではレンタルできませんよね?これは認証だけされています。
TSUTAYAカードは身分証明書に基づいて認可されているのでこちらを持っていないとレンタルできません。
この状況を身分証明書の発行機関は感知していないわけです。状況を説明すると当たり前な話ですが、認証だけしていて認可はされていない状態であると言えます。
最後に
読んでいただいた方、ありがとうございました。