OIDC / OAuth 2.0
入門

認証 vs 認可

「認証」と「認可」は似ているようで全く違う概念です。 OAuth と OIDC を理解するうえで、この違いを正確に把握することが重要です。

認証 (Authentication) - あなたは誰?

認証とは、「あなたが本当にあなたであること」を確認するプロセスです。 身分証明書を見せて本人確認をするようなものです。

認証の例
-

パスポートを見せる: 空港で「私は田中太郎です」と証明する

-

ログインする: ID とパスワードで「私はこのアカウントの持ち主です」と証明する

-

指紋認証をする: 生体情報で本人であることを証明する

認可 (Authorization) - 何ができる?

認可とは、「あなたが何をする権限を持っているか」を決定するプロセスです。 入場許可証やチケットのようなものです。

認可の例
-

映画のチケット: 特定のスクリーンの特定の席に座る権限

-

社員カード: 特定のフロア・部屋に入る権限

-

管理者ロール: システム設定を変更する権限

身分証明書 vs 入場許可証

# コンサート会場での例え

[認証] 身分証明書を見せる

→ 「この人は田中太郎さんです」

→ 本人確認完了

[認可] チケットを見せる

→ 「A席のVIPエリアに入れます」

→ 権限確認完了

# 認証と認可は独立している

- 身分証明書があっても、チケットがなければ入場できない

- チケットがあっても、本人でなければ使えない

 認証 (Authentication)認可 (Authorization)
問いあなたは誰?何ができる?
例え身分証明書入場許可証
結果ユーザーの身元が判明許可された操作が判明
プロトコルOpenID Connect (OIDC)OAuth 2.0

OAuth = 認可、OIDC = 認証 + 認可

OAuth 2.0 は「認可」のためのプロトコルです。 「このアプリに写真へのアクセスを許可する」といった権限の委譲を扱います。 しかし、OAuth 2.0 だけでは「ユーザーが誰であるか」を知ることはできません。

そこで登場したのが OpenID Connect (OIDC) です。 OIDC は OAuth 2.0 の上に「認証」の機能を追加した拡張仕様です。 OIDC を使うと、認可に加えて 「このユーザーは田中太郎です」という身元情報も取得できます。

OAuth 2.0

「このアプリに写真を見せてOK」

→ アクセストークンを発行

→ 権限の委譲のみ

ユーザーが誰かは分からない

OpenID Connect

「このユーザーは田中太郎です」

→ IDトークンも発行

→ 認証 + 認可

OAuth 2.0 を拡張した仕様

← 前へ

次のステップ

4つの役割

次へ →