認証と認可の違い

先日、会社のスキルチェックシートを記載していた時のことです。
チェック項目の中に「認証と認可の違いを理解しているかどうか」という内容がありました。
最初に見た時、「わからない。。。」というのが正直な感想でした。

そこで早速、認証と認可について調べてみました。
調べていく中で分かったことは、認証と認可は密接に関わっていますが、全く別の概念であるということです。

今回は認証と認可の違いについて、簡単にまとめておきたいと思います。

# 結論
#### 認証
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/a6e027a4-5fe8-4ede-9d07-63e293095567.jpeg)
認証とは、誰であるかを確認・実証することです。
例えば新しく口座を開設しようとするときに身分証明書による本人確認をしますよね。これが認証です。
純粋に誰であるかを問われていることがポイントです。

#### 認可
![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/bd31c840-06d7-b34c-8ffb-3733ae1e5174.jpeg)
認可とは、ある特定の権限を持っているかを確認・実証することです。
例えばコンビニでお酒を買うときに、20歳以上であるかどうかの確認ボタンを押すことがあると思います。これが認可です。
誰であるかではなく、純粋に権限を持っているかを問われていることがポイントです。

## 認証とは
認証とは、「誰であるか」を確認・実証することを言います。誰であるかを特定する方法はいくつかあります。
言葉だけだとわかりにくいと思うので、具体例をあげたいと思います。

#### スマホの指紋認証
![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/a7528216-8c72-7c75-6adc-84318f3ee054.jpeg)
指紋は、本人しか持ち得ない情報であるため、誰であるかを特定することができます。顔認証も同様です。

#### 運転免許証による本人確認
![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/526d5e60-23f1-4460-29ae-87bdf343ce0f.jpeg)
大前提として運転免許証は、取得した本人しか持っていません。なので運転免許証の顔写真を確認し、目の前の人と同じであれば、本人と確認することができます。

#### 秘密の質問
![5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/cfe73d93-9f72-f33b-fbd5-7447c8baad22.jpeg)
ある特定の人物しか知らないことを質問します。もしその人が質問に回答できるなら、誰であるかを特定することができます。

## 認可とは
認可とは「ある特定の権限を持っているか」を確認・実証することです。
認可においては、ユーザーが誰であるかは問わず、そのユーザーが条件を満たしているかどうかだけを確認しています。
こちらも言葉だけだとわかりにくいので、具体例をあげたいと思います。

#### お酒を買う時の年齢確認
![6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/5dee550b-ebda-326f-ea77-ce0c2fe4ba33.jpeg)
コンビニでお酒を買う時に20歳以上かどうかの確認をされますよね。
もし20歳以上であればお酒を買うことができます。
誰であるかは関係なく、お酒を買うことができる年齢であるかどうかが確認されていることがポイントです。

#### 映画の座席チケット
![7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/cb92bc3f-31d4-67ae-3f2d-693aedab1176.jpeg)
映画を見る際に、受付の人にチケットを渡しますよね。
これはチケットを確認することで、指定された座席に座る権限があるかチェックされているということです。

#### 商品のクーポン券
![8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/c4aaaa91-beba-180a-733c-a733dc436113.jpeg)
商品を買う際に、クーポン券を使うと安く買うことができます。
お店側からすると、クーポン券を誰が使うかは関係ありません。クーポン券があれば割引受ける権限があるからです。

## 認証と認可の違い

認証と認可の違いについて、例をあげて説明したいと思います。

#### 会社から貸与されたスマホ
![9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/fbff7c38-5825-2e70-4a9b-bb053b7686b1.jpeg)
例えば会社から貸与されたスマホを使っているとします。
その場合、もし顔認証して本人だと特定されたとしても、スマホ機能の一部を制限されている場合もあります。
この場合は認証されていますが、スマホの機能の全てを使用して良いという認可はされていません。

#### 映画の座席チケット
![10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/735490ca-eb03-9bb5-6561-7d9d7b2c2040.jpeg)
また映画館のチケットを持っていたとします。指定された座席に座ることができます。
しかし、誰が座っているかはわかりません。
この場合、認証はされていませんが、認可はされています。

## 認証と認可が複合しているパターン

認証と認可がわかりにくい原因のひとつは、認証の中に認可が含まれることが多いからです。
また両者が複合している場合も多いです。
つまり誰であるかを特定することが、認可の条件になっているパターンが結構あるからと言えます。
こちらも言葉だけだとイメージしづらいと思いますので、具体例をいくつかあげてみます。

#### 飛行機の搭乗
![11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/12a3f4ca-73c0-0e52-ccbb-77f8cf175da2.jpeg)
飛行機に乗ることを考えてみます。
国際線の場合、まずパスポートによって、あなたが誰であるかを認証されます。その上で、航空券を持っていれば飛行機に乗れるという権限を得ていることになります。

#### Web上での課金
![12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/deec1cd7-62d9-6774-7c36-3f6379b21bd1.jpeg)
Web上での課金についても、まずはIDとパスワードなどによって、あなた本人であるかを認証されます。その上で課金した人には、課金コンテンツへのアクセスを許可することになります。

#### ATMの引き落とし
![13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2105658/65949c41-3262-3788-0321-a9c8cf0ef21e.jpeg)
ATMでのお金の引き落としについて考えてみます。
ATMではまずカードを所有していること、そして暗証番号などで本人であることを認証します。その上で、口座にお金があれば、お金を引き落とす権限があるということになります。

## まとめ
**認証**
認証とは、誰であるかを確認・実証することです。
純粋に誰であるかを問われていることがポイントです。

**認可**
認可とは、ある特定の権限を持っているかを確認・実証することです。
誰であるかではなく、純粋に権限を持っているかを問われていることがポイントです。

認証と認可がわかりにくい理由は、認証と認可が複合していたり、認証が認可の条件になっているパターンがあるためです。

認証と認可の違いについて、なんとなく理解していただけましたでしょうか。
もし間違っている記述などあれば、コメントにて教えていただけると助かります。