OAuthとOIDCの違いをわかりやすく解説!混乱しがちな認証・認可の基礎を徹底整理

  • このエントリーをはてなブックマークに追加
OAuthとOIDCの違いをわかりやすく解説!混乱しがちな認証・認可の基礎を徹底整理
この記事を書いた人

中嶋悟

名前:中嶋 悟(なかじま さとる) ニックネーム:サトルン 年齢:28歳 性別:男性 職業:会社員(IT系メーカー・マーケティング部門) 通勤場所:東京都千代田区・本社オフィス 通勤時間:片道約45分(電車+徒歩) 居住地:東京都杉並区・阿佐ヶ谷の1LDKマンション 出身地:神奈川県横浜市 身長:175cm 血液型:A型 誕生日:1997年5月12日 趣味:比較記事を書くこと、カメラ散歩、ガジェット収集、カフェ巡り、映画鑑賞(特に洋画)、料理(最近はスパイスカレー作りにハマり中) 性格:分析好き・好奇心旺盛・マイペース・几帳面だけど時々おおざっぱ・物事をとことん調べたくなるタイプ 1日(平日)のタイムスケジュール 6:30 起床。まずはコーヒーを淹れながらニュースとSNSチェック 7:00 朝食(自作のオートミールorトースト)、ブログの下書きや記事ネタ整理 8:00 出勤準備 8:30 電車で通勤(この間にポッドキャストやオーディオブックでインプット) 9:15 出社。午前は資料作成やメール返信 12:00 ランチはオフィス近くの定食屋かカフェ 13:00 午後は会議やマーケティング企画立案、データ分析 18:00 退社 19:00 帰宅途中にスーパー寄って買い物 19:30 夕食&YouTubeやNetflixでリラックスタイム 21:00 ブログ執筆や写真編集、次の記事の構成作成 23:00 読書(比較記事のネタ探しも兼ねる) 23:45 就寝準備 24:00 就寝


OAuthとOIDCの違いを理解するための基礎

OAuthとOIDCは現代のウェブ・モバイルアプリの安全性を担保するための基本技術です。
OAuthは「認可」を実現する枠組みであり、OIDCはそのOAuthの枠組みを使いながら「認証」も担えるよう拡張した仕組みです。
つまりOAuthは、ユーザーのパスワードを第三者に渡さずに「このアプリにこの範囲の権限を与える」という許可を渡すための道具です。一方OIDCは、同じ道具を使いながら「この人が誰なのか」を証明する情報を一緒に提供します。
この違いを正しく理解することは、システム設計の基礎として非常に大切です。
本稿では、まずOAuthの基本的な考え方、次にOIDCの追加機能、最後に実務での選択ポイントを、分かりやすく丁寧に解説します。
読み進めるうちに、「どの場面で何を渡すべきか」「どんなトークンが返ってくるのか」が自然と見えてきます。
なお、セキュリティの観点からは、最小権限の原則、トークンの有効期限管理、PKCEの導入なども合わせて押さえることが重要です。
この理解があれば、部品を組み合わせて安全な認証・認可の設計を自信を持って進められます。

OAuthとは何か

OAuthは、ユーザーのパスワードを第三者アプリへ渡さずに、ユーザーの代わりにリソースへアクセスする権限を第三者に渡す仕組みです。
この仕組みの中核には四つの役割があります。
Resource Owner(資源所有者)=ユーザーClient(クライアント)=アプリAuthorization Server(認可サーバー)Resource Server(資源サーバー)です。
動作の流れはこうです。まずユーザーがアプリにアクセスして認可を求め、アプリは認可サーバーへ「このリソースに対するこの程度の権限を付与してほしい」というリクエストを送ります。ユーザーが同意すると、認可サーバーは一時的なコードまたはトークンを返します。アプリはこのトークンを使って保護されたリソースへアクセスします。
この過程でパスワードは一切渡りません。
実務では、Authorization Code Grant、Implicit、Client Credentials、Resource Owner Password Credentialsなど複数のフローがあり、用途に応じて使い分けます。
セキュリティの観点からは、短寿命のアクセストークン、リフレッシュトークンの適切な運用、CORS対策、CSRF対策、PKCE(Proof Key for Code Exchange)の導入が重要です。
特にモバイルアプリやシングルページアプリ(SPA)ではPKCEの利用が強く推奨されます。
OAuth自体は「誰に何の権限を渡すか」を管理する枠組みであり、認証情報の本人確認を直接担当するものではありません。

OIDCとは何か

OIDCはOAuth 2.0の枠組みを利用して「誰がログインしているのか」を証明する認証の機能を追加した標準です。
OIDCはID Tokenと呼ばれるJWT形式のトークンを返し、sub(主な識別子)、name、email、pictureなどのクレームを含みます。
さらに、追加のユーザー情報を取得するためのUserInfoエンドポイントを提供します。
OIDCの流れもOAuthと似ていますが、認証情報を取り扱うための追加ルールと仕様が加わっています。
この仕組みを使えば、外部IDプロバイダーを利用したサインインを一貫した方法で実現でき、アプリのサインイン体験を統一できます。
また、セッション管理・ログアウト連携・多要素認証との組み合わせも容易で、セキュリティとUXの両方を高められます。
実務ではAuthorization Code with PKCEなどの安全なフローを採用し、IDトークンとアクセス・リフレッシュトークンを組み合わせて運用します。OIDCを採用することで、単純な「誰かを認証する」だけでなく、現代的な認証体験の設計が可能になります。

OAuthとOIDCの違いを表で見る

ここでは主な違いを表で整理します。理解を深めるために、役割・トークン・目的・利用シーンの4点を比較します。
表を見れば、何をどの場面で使うべきかがはっきり分かるようになります。
また、混同を避けるために両者の関係性を意識して読み進めてください。

able>項目OAuth 2.0OIDC目的認可(リソースへアクセスする権限を第三者へ渡す)認可に加えて認証(誰が利用しているかの確認)を行う返されるトークンAccess Token、場合によってはRefresh TokenID Token + Access Token(必要に応じてRefresh Token)ユーザー情報基本的には無し。リソースサーバーの情報は別経路で取得されることが多いUserInfoエンドポイントで追加情報を取得可能標準化の性質OAuth 2.0の仕様のみOIDCが追加の仕様(ID Token等)を提供代表的なフローAuthorization Code、Client Credentials、Implicit などAuthorization Code with PKCE、Hybridなどを安全に選択ble>
ピックアップ解説

昨日友達とカフェでOAuthとOIDCの話をしていて、私たちは“本当に大事なのは認証と認可の区別をつけること”だと痛感しました。OAuthは“誰に何を渡すか”を管理する道具で、OIDCはその道具を使って“この人が誰か”を証明するための追加機能をつけた拡張です。認証が必要な場面と、ただの権限付与だけで十分な場面を区別し、PKCEなどの安全なフローを選ぶことが大切だと感じました。話を深めるうちに、ID Tokenがどう動くか、UserInfoエンドポイントがどんな情報を返すのか、そして実装上の注意点(セッション管理、ログアウト連携、トークンの有効期限など)も自然と見えてきました。結局は“使う場面に応じた最適な組み合わせを選ぶこと”が、セキュリティとユーザー体験を両立させる秘訣なのだと再確認しました。


ITの人気記事

ズームとズームワークプレイスの違いとは?初心者でもわかる徹底解説!
790viws
青写真と青焼きの違いとは?簡単解説でわかりやすく理解しよう!
750viws
「画素(ピクセル)とは何?解説と画像の違いをやさしく理解しよう」
624viws
CADデータとDXFデータの違いを徹底解説!初心者でもわかる使い分けのポイント
397viws
HTTPとHTTPSの違いをわかりやすく解説!安全なネット利用のために知っておきたいポイント
385viws
スター結線とデルタ結線の違いを徹底解説!初心者でも分かる電気の基本
349viws
モバイルデータ通信番号と電話番号の違いを徹底解説!初心者でもわかるスマホの基礎知識
335viws
IPアドレスとデフォルトゲートウェイの違いをわかりやすく解説!ネットワークの基本を理解しよう
320viws
API仕様書とIF仕様書の違いを徹底解説!初心者でもわかるポイントとは?
305viws
USB充電器とアダプターの違いとは?初心者にもわかりやすく解説!
258viws
RGBとsRGBの違いって何?初心者でもわかる色の基本知識
256viws
UPSと非常用電源の違いとは?初心者でもわかる電源設備の基礎知識
245viws
グロメットとコンジットの違いとは?わかりやすく解説!
244viws
RGBとVGAの違いを徹底解説!初心者にもわかりやすい映像信号の基礎知識
241viws
SSDとUSBメモリの違いを徹底解説!初心者でもわかる保存デバイスの選び方
237viws
DFDとER図の違いをわかりやすく解説!初心者でも理解できる基本ポイント
236viws
【保存版】webサイト名とページタイトルの違いとは?初心者でも簡単にわかる解説
225viws
インターフォンとインターホンの違いって何?わかりやすく解説!
224viws
通信線と電力線の違いとは?意外と知らない基本ポイントを徹底解説!
219viws
IPv4アドレスとIPアドレスの違いとは?初心者にもわかりやすく解説!
208viws

新着記事

ITの関連記事