【おーぷんあいでぃーこねくと】
OpenID Connect とは?
最終更新:
💡 ログインした利用者を、アプリへ伝える
OAuth 2.0を土台に、ログインした利用者をアプリが確認するための認証仕様。IDトークンの役割と検証、認可との違いを解説します。
📌 このページのポイント
外部のアカウントでログインする仕組み?
そうした連携に使われる仕様だよ。認証を担う提供元が利用者を認証し、その結果をアプリへ伝える。図はその役割を順に示した概略で、実際の通信のすべてではないよ。
OAuth 2.0だけでも同じことができる?
何を受け取って確認するの?
トークンを読めば、ログイン完了?
読むだけでは不十分だよ。仕様と使うフローに従い、発行元・宛先・期限、署名等を検証する。送ったnonceがある場合は一致も確認する。対応ライブラリを使い、検証を省略しないことが大切だね。
身分証明書のように、本名まで保証する?
提供元で認証された利用者を識別する仕組みで、実社会の本人確認を一律に保証するものではないよ。アプリで利用者を扱う際は、発行元とsubの組み合わせを確認しよう。
もっと詳しく知りたい人へ
IDトークンを、そのままAPIへのアクセスに使う?
IDトークンはアプリが認証結果を確認するためのものです。保護されたAPIへのアクセスには、そのAPI向けのアクセストークンを使います。文字列の見た目が似ていても、宛先と目的が違います。
認証結果は、どのように返ってくる?
代表的なAuthorization Code Flowでは、アプリがまず認可コードを受け取り、トークンエンドポイントで交換してIDトークン等を得ます。図は役割の概略です。実装では利用するフローの手順と検証規則を確認します。
まとめ:ざっくりこれだけ覚えればOK!
「OpenID Connect」って出てきたら「ログインした利用者を、アプリが確認するための共通の仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「OpenID Connect (OIDC)」 = OAuth 2.0を土台にした認証の仕様
💬 OAuth 2.0で扱うアクセスの許可に、利用者の認証結果を伝えるID層を加えた仕様です。OpenID Providerが認証を担い、結果を受け取るアプリをRelying Partyと呼びます。