【おーぷんあいでぃーこねくと】

OpenID Connect(オープンアイディーコネクト) とは?

最終更新:
💡 認証した結果を、サービスへ伝える共通の仕組み

OAuth 2.0に認証の仕組みを加えた標準。IDプロバイダーが発行するIDトークンをサービス側で検証し、どの利用者が認証されたかを確かめる。

📌 このページのポイント
認証の担当から、ログイン結果を受け取る利用者認証を受けるIDプロバイダー認証認証した結果を伝えるIDトークン(JWT)発行者・利用者・宛先・期限サービスが検証してログイン発行者・宛先・期限・署名などIDトークンと、API用のトークンは別
IDプロバイダーの認証結果を、サービスが検証して使う概略。実際の通信手順や検証項目は利用するフローに従います。
ひよこ ひよこ
OpenID Connectって、何をする仕組み?
ペンギン先生 ペンギン先生
IDプロバイダーという認証の担当から結果を受け取り、サービスへのログインに使う標準だよ。サービス側は利用者のパスワードを直接受け取らず、担当が認証した結果を確かめる。GoogleのOpenID Connectも、その実装の一つなんだ
ひよこ ひよこ
OAuthとどう違うの?
ペンギン先生 ペンギン先生
OAuth 2.0はアプリにAPIを使う権限を渡す仕組みで、それだけではログインの認証を定めていないよ。OIDCはその上に、IDトークンや認証のリクエスト・検証のルールを加える。「認可」と「認証」の役割を分けて覚えると分かりやすいね
ひよこ ひよこ
IDトークンには何が入っている?
ペンギン先生 ペンギン先生
JWT形式で、発行者、利用者の識別子、宛先、期限、発行時刻などが入るよ。メールアドレスや認証時刻が必ず全部入るわけではないんだ。利用者を安定して識別するときは、発行者を表すissと、その発行者内の識別子subの組み合わせを使うよ
ひよこ ひよこ
受け取ったら、そのまま信用していい?
ペンギン先生 ペンギン先生
そのままではだめだよ。想定した発行者か、自分のサービス向けか、期限内かなどを確かめ、使うフローの規則に沿って署名やnonceも検証する。公式SDKや検証機能を正しく設定しよう。JWTの中身が読めることと、本物だと確認できることは別なんだ
ひよこ ひよこ
IDトークンでAPIも呼び出せるのかな?
ペンギン先生 ペンギン先生
IDトークンはログインの認証結果をサービスへ伝えるもの。APIへのアクセスには、そのAPI向けのアクセストークンを使うよ。共通のIDプロバイダーとの連携はシングルサインオンの土台にもなるけれど、全サービスが自動でつながるわけではない。サービス側のセッションやアカウントの復旧も設計が必要だね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「OpenID Connect」って出てきたら「外部の認証結果を確かめて、ログインに使う共通の仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「OpenID Connect」 = OAuth 2.0を土台にした認証の標準
💬 OIDCという略称でも呼ばれるよ。権限を渡すOAuthに、どの利用者が認証されたかを伝える仕組みを加えているんだ

参考資料

← 用語集にもどる