2021年8月18日水曜日

【5分で分かる】認証と認可の違い

こんにちは、サイオステクノロジーGluegentサービスラインのジャレド・ウォレスです。今日は少し分かりにくい「認証と認可の違い」について話していきたいと思います。この2つが同じことを示すと誤解されることが多いですが、実はシステムセキュリティーを支え合っている別々の役割を果しています。では、早速その違いをみていきましょう!

認証と認可とは

まず、認証(authentication)とは「とあるサービスの利用者が本人であること」を確認するプロセスという意味を示します。このプロセスが皆さんがよくご存じであろうユーザー名とパスワードを入力するパスワード認証、メールで受け取る確認コードや登録したアプリで表示されるコード等を入力して行うワンタイムパスワード認証、センサーで指紋を読み取りするなど生体認証など、ログインのことです。当然ですが、このプロセスはユーザー向けである分だけ公開されています。

一方、認可(authorization)は「とあるサービスの利用者に適切な権限を与える」といったプロセスになります。もう少し具体的に説明しますと、サービスにログインできたからと言って、そのサービスによって提供されている全ての機能とリソースを自由に操作しても良いというわけではなく、ユーザーによって正しい権限を与えなければなりません。例えば、トムとジェリーはお互い会社のGoogle Workspaceにログインすることはできますが、トムだけは管理者権限を持ち、グループの編集やユーザーの追加と削除、一般ユーザーには許可されていない操作を行うことができます。この状態を実現する仕組みが認可です。認証と違って、認可はユーザー向けではなく、ユーザーがリソースや機能にアクセスしたときにシステム内で処理されます。認可という言い方のほかにアクセス権限、アクセス制御、クライアント権限などシステムによって異なります。

合わせるとセキュアかつ快適

セキュリティーを保ち、かつ快適に利用できることが求められる現代のシステムやアプリケーションでは、単に1度認証を行って全ての機能操作を許可する形式は不十分です。つまり、ユーザー操作に関して、十分なセキュリティーが保てる充実したインタフェースを実現するには機能や操作の危険レベルを定義してそれに合わせた認可レベルを設けることです。そして、複数の認可レベルを設けるとより適切で細かく権限を与え使いやすくすることができます。

このコンセプトは皆さんが利用しているであろうインターネットバンキングのシステムで見られます。銀行のポリシーによって詳細は異なりますが、まずインターネットバンキングにログインするにはユーザー名(またはご契約番号など)とパスワードを入力する必要があります。設定によって携帯のSMSやメールにワンタイムパスワードが送られてきたりすることもあります。この認証をクリアすると残高照会や入出金明細照会、比較的リスクが低いユーザー操作が許可されます。この段階では、インターネットバンキングのシステムが認証を通ったあなたが本人であることにそこそこ自信あります。 しかし、口座振込の実施や個人情報の変更など、比較的リスクが高い操作を行おうとすると、話は変わります。このような操作は不正アクセスの場合損害が高いため、システムがより確実に本人確認を行おうとし、追加で認証情報を要求します。追加情報としてよく利用されているのは銀行トークン(ワンタイムパスワード生成機)やトークンアプリ(銀行提供またはGoogle Authenticatorなど)、インターネットバンキングご利用カードに記載されている本人確認番号、セキュリティー質問などが挙げられます。場合によっては最初にログインした時の認証情報(パスワードや暗証番号)の再入力も要求されます。この追加認証を通ってから口座振込などリスクが高いユーザー操作がやっと許可されます。

このように、認証と認可を合わせ、さらに複数のレベルで操作を分けることで安全と快適にシステムを使うことが出来ています。いかがでしょうか。弊社のIDaaS製品Gluegent Gateで様々なサービスと安全と快適に連携できるように認証とアクセス制御(認可)設定が実現できます。ご興味のある方は是非検討してみてください。
Jared Wallace