メインコンテンツへスキップ

OIDC入門:モバイル時代に最適化された認証と認可の仕組み

🌟 はじめに

OIDC(OpenID Connect)は、Webサービスやモバイルアプリにおいて認証(Authentication)と認可(Authorization)を効率的に実現するためのプロトコルです。
SAMLがエンタープライズWebアプリを中心に普及したのに対し、OIDCはREST/JSONをベースとし、クラウドネイティブ・モバイル環境に強みを持ちます。
この記事では、OIDCの誕生背景、仕組み、利用のメリット・デメリット、そして代表的なユースケースを整理します。


📜 歴史的背景 ― SAMLからOIDCへ

SAMLの課題

  • XMLベースで複雑、実装が重い

  • 主にブラウザリダイレクトを前提としており、モバイルアプリやAPIとの相性が悪い

OAuth 2.0の登場

  • 2010年、リソースへの**認可(Authorization)**を安全に行うための仕組みとしてOAuth 2.0が登場

  • 例:GoogleやFacebookアカウントで他サービスに「ログイン連携」する

OpenID Connectの登場

  • 2014年、OAuth 2.0を拡張して「認証(Authentication)」機能を統合したのがOIDC

  • JSONとREST APIベースで、軽量かつシンプルな実装が可能になった


🔑 OIDCの基本概念

主な登場人物

  • ユーザ(End-User):サービスを利用する人

  • RP(Relying Party, クライアントアプリ):ログイン機能を利用したいアプリやサービス

  • IdP(Identity Provider, OpenID Provider, OP):ユーザの認証を担当するサービス(Google, Microsoft, Auth0など)

トークンの種類

  • IDトークン:ユーザの認証情報を含むJWT(JSON Web Token)

  • アクセス・トークン:リソースAPIへのアクセス権を示す

  • リフレッシュ・トークン:長期利用のために新しいアクセス・トークンを発行する

OIDCのIDトークンはJWT形式のため、人間でも中身をBase64デコードすれば「誰か」「どのIdPから発行されたか」を確認できる。


🔄 動作フロー(Authorization Code Flow の例)

  1. ユーザがRP(アプリ)にログイン要求

  2. RPはIdPにリダイレクトし、ユーザが認証

  3. IdPが認可コードをRPへ返す

  4. RPは認可コードをIdPに送信してIDトークンとアクセス・トークンを取得

  5. RPはIDトークンを検証し、ユーザが誰かを確認

  6. 必要に応じてアクセス・トークンでAPIを呼び出し

この方式では認証情報(パスワード等)がRPに渡らないため、セキュリティが高く保たれる。


🎯 OIDCを使うメリット

  • 軽量かつシンプル:JSON/RESTベースで開発者に扱いやすい

  • モバイル・API連携に強い:アプリやマイクロサービスでも自然に利用可能

  • 広範な普及:Google, Microsoft, Amazon など主要クラウドが標準対応

  • 認証と認可の統合:OAuth 2.0に加えて「ログイン」も実現できる


⚠️ 課題・デメリット

  • 仕様の柔軟さ:OAuth 2.0ベースのため、実装のバリエーションが多く混乱を招きやすい

  • トークン管理リスク:IDトークン・リフレッシュトークンの漏洩は不正利用に直結

  • SAMLとの互換性不足:古いエンタープライズ環境ではSAMLが主流であり、OIDCへの移行にコストがかかる

「Implicit Flow」など一部の古いフローは脆弱性が指摘されており、現在はAuthorization Code Flow + PKCEが推奨される。


🏢 代表的なユースケース

  • GoogleログインMicrosoftアカウントでのSSO

  • モバイルアプリ認証(ネイティブアプリのログイン機能)

  • API Gatewayとの連携:マイクロサービス環境でのセキュアなAPI利用

  • BtoCサービス:ユーザが外部アカウントを使って簡単に新規登録・ログイン


🔮 今後の展望

OIDCはすでにクラウドネイティブやモバイルの「標準的な認証基盤」として定着しています。
SAMLがエンタープライズの歴史的遺産を支える一方で、新規システムの大半はOIDCを前提として設計される傾向が強まっています。
将来的にはFIDO2やパスキーと組み合わせ、さらに安全かつパスワードレスな世界が広がっていくと予想されます。


✅ まとめ

  • OIDCはOAuth 2.0をベースにした認証+認可の仕組み

  • JSON/RESTベースでモバイルやクラウド環境に最適

  • IDトークンを用いることで、誰がログインしたかを安全に確認可能

  • 新規サービスではOIDCがデファクトスタンダードになりつつある