凡人エンジニアのコスパリスト

ファイナンスで勝つまでの日記

OpenID Connect(OIDC)とOAuth 2.0の違い

安全確保支援士勉強の勉強メモ

項目 OAuth 2.0 OpenID Connect (OIDC)
主な目的 アクセス許可のための認可フレームワーク 認証とアクセス許可のためのフレームワーク
トークンの種類 アクセストーク アクセストークン、IDトーク
認証プロセス 認可の焦点 認証の焦点
ユーザーエンドポイント 通常含まれない ユーザーエンドポイントが含まれる

この表は、OpenID ConnectとOAuth 2.0の主要な違いを要約しています。

OAuth 2.0はアクセス許可に焦点を当て、アクセストークンを取得するためのプロトコル

OpenID Connectはユーザーの認証を含む認証とアクセス許可のための拡張プロトコル

OpenID Connectでは、以下の4つのフローが定義されている。

OpenID Connectは、OAuth 2.0を拡張した認証プロトコルですが、フローと呼ばれる複数のパターンがあります。フロー(シーケンス図)とは、IDトークンやアクセストークンを発行するためのやり取りの仕方のことです。

  • 認可コードフロー:最も一般的なフローで、Webアプリケーションなどに適しています。認可サーバーから認可コードを受け取り、それを使ってIDトークンやアクセストークンを取得します。

  • 暗黙フロー:ブラウザベースのアプリケーションやモバイルアプリケーションなどに適しています。認可サーバーから直接IDトークンやアクセストークンを受け取ります。

  • ハイブリッドフロー:認可コードフローと暗黙フローの組み合わせで、Webアプリケーションやモバイルアプリケーションなどに適しています。認可サーバーから認可コードとIDトークンを受け取り、それを使ってアクセストークンを取得します。

  • リソースオーナーパスワードクレデンシャルフロー:ユーザー名とパスワードを直接クライアントに入力する場合に適しています。認可サーバーにユーザー名とパスワードを送信し、IDトークンやアクセストークンを受け取ります。

メリット、デメリット

暗黙フローはシンプルで高速ですが、セキュリティ上のリスクが高い

リソースオーナーパスワードクレデンシャルフローは便利ですが、ユーザーのパスワードを第三者に渡すことになるので、信頼性が低い

自分のアプリケーションに合ったフローを選択することが重要です。