コンピュータやネットワークにおいて、認証と認可は似たような言葉ですが異なる概念です。
ここでは、認証と認可の違いについて以下の観点で解説します。
- 認証とは
- 認可とは
- なぜ認証と認可を分けているのか
認証とは
認証は、通信する相手が正しいことを確認することです。
認証は、その方法によってCertificationとAuthenticationに分類されます。
Certification
Certificationは認証相手が認証場所に直接アクセスして行う認証のことです。
Certificationは主に次の目的で行わわれます。
- コンピューターなどの利用対象を利用する際、認証相手にアクセスする権限がある事を確認すること
- 認証相手を公開鍵などの電子データと対応させるなどAuthenticationの事前準備すること
また、コンピュータも含め実世界でのCertificationは主に次の方法で行われます。
知識
パスワードや個人識別番号 (PIN) など認証相手が何を知っているか(WHAT YOU KNOW)によって認証を行う方法です。
そのパスワードやPINを認証相手以外は知らないことが前提となります。
所有物
スマートカードやトークン(電子証明)など認証相手が何を持っているか(WHAT YOU HAVE)によって認証を行う方法です。
認証相手だけが必要なスマートカードやトークンを持っていることが前提となります。
生体
指紋や声など認証相手固有の身体情報(WHAT YOU ARE)によって認証を行う方法です。
バイオメトリック認証とも言われます。
Authentication
認証相手が認証場所に直接アクセスせずに遠隔地から電子的に行う認証の事です。
Authenticationの目的は、Certification同様、コンピューターを利用する際、認証相手にアクセスする権限がある事を確認することです。
しかし、Authenticationは電子的な行為なので、利用される対象もウェブアプリケーションやリモートサーバなど電子的なものになります。
Authenticationの方法ですが、何らかの電子データ(パスワードや公開鍵秘密鍵ペア)を用いて行われます。
したがって、事前に、Certificationを通して、認証相手と電子データとを対応づけておく必要があります。
認可とは
認可(Authorization)とは、コンピューターなどの利用対象(リソース)に対するアクセスを許可することです。
認可ですが、利用対象を所有する相手、あるいは、認可された相手から認可される必要があります。
代表的なものは、2012年にRFC(Request For Comments)により発行されたOAuth2.0です。
実世界でいうと、切符によって電車の利用が許可されるのも認可の一つです。
なぜ認証と認可を分けているのか
以上のように、認証と認可は別の概念として確立されています。
もちろん認証と認可を同時に行うこともできます。
それでは、なぜ、認証と認可を分けているのでしょうか。
先の切符の例で考えてみましょう。
Aさんが、ある電車に乗れる切符を買ってBさんに渡すと、Bさんは、その電車に乗ることができます。
この場合、電車に乗る相手を確認しているわけではありません。
コンピュータの場合でも、認証者のアクセス権限を別の者に委譲した方が便利な場合もあります。
このように、認証と認可を分離して使い分けた方が運用上便利なケースが多々あります。
そこで、認証された者だけがリソースに対するアクセスを認可されるのではなく、認証と認可を分けて運用するという考え方ができたのです。
以上、今回は認証と認可について解説しました。
[…] 、2012年にRFC(Request For Comments)として発行された、リソースに対するアクセス権限の認可(Authorization)を行うためのオープンスタンダードです。 リソースとはサーバーが保持するクセス […]