認証と認可の違いとは?OAuth・多要素認証をやさしく解説

認証と認可の違いとは?OAuth・多要素認証をやさしく解説

認証と認可の違いに悩む基本情報受験者のイメージ
「認証と認可って、何がどう違うの?」
「多要素認証は、なぜ必要なの?」
「OAuth とか OIDC って、結局なに?」

認証と認可でつまずくのは、言葉が似ているのに役割が正反対だからです。分けるコツは、問いを2つに割ること。「あなたは誰か」と「あなたは何をしてよいか」です。

認証は「あなたが誰か」を確かめる仕組み、認可は「何をしてよいか」を決める仕組みです。この2つを混同すると、「ログインできた=何でもできる」という危うい設計になります。

 

以下では、ログインの裏で走る2段階の判定を図で追い、本人を確かめる3つの要素を押さえ、MFA・OAuth・OIDC がどう安全を底上げするかまで見ていきます。基本情報技術者の領域5 情報セキュリティにそのまま効きます。

 

1. ログインの裏で走る2つの判定

ログイン時に認証と認可の2つの判定が順に走る流れのイメージ

あなたが社内システムにログインするとき、裏では2つの判定が順番に走ります。まず「本人か」を確かめ(認証)、次に「何をしてよいか」を決める(認可)。この順序が固定です。図で追いましょう。

 

利用者 認証ゲート本人か? 認可ゲート何をしてよい? 許可操作

 

たとえるなら、オフィスビルの入館です。入口で社員証をかざして本人と確認されるのが認証。中に入ってから、開けられる部屋が役職で変わるのが認可です。「入館できた」ことと「役員室に入れる」ことは別物——この当たり前の区別が、システムでも同じように効きます。

 

この2段を分けて考える習慣が、設計の土台になります。認証で本人を確かめただけでは、その人が全操作を許されたわけではありません。次の認可で、役割に応じて「できること」が絞られます。

 

2. 認証 — 3つの要素で本人を確かめる

認証の3要素である知識・所持・生体を整理するイメージ

認証とは、システムを使おうとする相手が本人かを確かめる手続きです。確かめ方は、知識・所持・生体の3つの要素に整理できます。表で押さえてください。

 

要素 意味
知識要素 本人だけが知っていること パスワード・PIN・秘密の質問
所持要素 本人だけが持っているもの スマホ・ICカード・トークン
生体要素 本人の身体的な特徴 指紋・顔・虹彩

 

もっとも基本は、ID とパスワードの組み合わせ(知識要素)です。ただしパスワードは、漏えいや使い回しに弱いという弱点を抱えます。第三者に知られれば、そのまま本人になりすまされます。だから、あなたが使うサービスの多くは、パスワードそのものを保管せず、戻せない値に変換して照合します。この仕組みは ハッシュ関数とは で確認できます。

 

3要素は「知っている/持っている/本人そのもの」と覚えると混ざりません。パスワードは知識、スマホは所持、指紋は生体。この分類が、次の多要素認証を理解する土台になります。

 

3. 認可 — 通った後の「できること」を決める

認可で役割ごとに操作範囲を決めるイメージ

認可は、認証を通った人が実際に何をしてよいかを決めます。業務システムでの設計の中心が、RBAC(ロールベースアクセス制御)と最小権限の原則の2つです。

 

RBAC は、役職や役割ごとに権限をまとめて管理し、利用者をその役割に割り当てる方式です。たとえば「経理ロール」に会計システムへのアクセスをまとめておき、経理担当をそのロールに入れる。一人ひとりに個別の権限を配るより、役割単位でまとめる方が管理が崩れにくく、異動時の付け替えも役割の入れ替えだけで済みます。最小権限の原則は、業務に必要な最小限の権限だけを与える方針です。余分な権限を渡さないことで、あなたのアカウントが乗っ取られても被害の範囲を狭く抑えられます。読める必要のないデータに触れる権限を配らない、という一手が、事故のときの傷を浅くします。

 

実務で怖いのは、「とりあえず全権限を付けて後で絞る」という運用です。絞る作業は後回しにされ、余分な権限が残ります。付けるときに必要分だけにする——この順番が、侵害時の被害を最小に留めます。認証と認可を組織のルールとして束ねる枠組みは 情報セキュリティマネジメントとは で押さえられます。

 

4. MFA・OAuth・OIDC が安全を底上げする

多要素認証とOAuth・OIDCが安全性を高めるイメージ

認証と認可の信頼性を高める仕組みが、MFA・OAuth・OIDC です。まず多要素認証(MFA)は、3要素のうち2つ以上を組み合わせる方式です。「パスワード+スマホ通知」型のログインがその一例。仮にパスワードが漏れても、スマホという所持要素まで揃わない限り突破されにくくなります。認証を一段強くする詳しい仕組みは 多要素認証(MFA)とは で深掘りできます。

 

一方の OAuth 2.0 は、第三者アプリにパスワードを渡さず「権限」だけを委ねる仕組みです。銀行のパスワードを家計簿アプリに直接教える代わりに、権限を表すアクセストークンだけを渡します。ここで注意したいのが、OAuth 2.0 はあくまで認可の仕組みで、「誰がログインしたか」という本人確認は含まない点です。その本人確認の層を上に足したのが OpenID Connect(OIDC)で、ID トークンという形で誰がログインしたかを伝えます。

 

「SNS アカウントでログイン」型のサービスでは、この OAuth 2.0 と OIDC が裏で動いています。OAuth が権限の委譲、OIDC が本人確認。あなたが外部連携を検討するときは、「渡している権限は本当に必要な範囲か」を立ち止まって確かめると安心です。一度の認証で複数サービスを使える シングルサインオン(SSO)とは も、この仕組みの上に成り立ちます。パスワード保管と対で暗号化の考え方は 暗号化とは で押さえられます。

 

5. 試験での問われ方とつまずき

基本情報の領域5で認証と認可の取り違えが問われるイメージ

基本情報技術者の領域5では、認証と認可の取り違えが定番の引っかけです。あなたが押さえておきたい対応を3つに絞ります。

 

  • 本人確認は認証、権限付与は認可(「ログインできた=何でもできる」は誤り)
  • OAuth 2.0 は認可の委譲、OpenID Connect は本人確認の追加
  • MFA は3要素のうち2要素以上(同じ要素を2つ重ねても多要素にはならない)

 

とくに狙われるのが3つ目です。「パスワード+秘密の質問」はどちらも知識要素なので、2段階ではあっても多要素にはあたりません。パスワードとスマホなら知識と所持で種類が違うので MFA、パスワードと秘密の質問は同じ知識要素なので MFA ではない。要素の種類が2つ以上そろって初めて MFA、という線引きを持っておくと、この引っかけをほどけます。

 

よくある失敗が、認証と認可を1つの箱にまとめてしまうことです。本人だと確かめる工程と、できることを絞る工程は、設計上はっきり分ける。「誰か」を確かめてから「何をしてよいか」を決める——この2段を切り分ける癖が、設問でも実務でもミスを防ぎます。

 

次のステップ

認証と認可が領域5のどこに位置づくかは、基本情報技術者 試験全体概要 で範囲と受験フローを見ておくと、学習の順番が定まります。

設問で手応えを確かめるなら、基本情報技術者 領域5 情報セキュリティ 問題集 で、本人確認と権限の問題に当たってみてください。