TERM 029
OIDC
OAuth 2.0の流れで、ログイン情報を受け取る
OpenID Connect(OIDC)はOAuth 2.0の上に本人認証の層を追加し、アプリがユーザーのログイン結果と基本情報を安全に受け取るためのプロトコルです。
OAuth 2.0を土台にログイン情報を連携する仕組みの全体像。
CONTENTSこの記事の目次+
01 — DEFINITION
OIDCとは
何か
OpenID Connect(OIDC)はOAuth 2.0の上に本人認証の層を追加し、アプリがユーザーのログイン結果と基本情報を安全に受け取るためのプロトコルです。
02 — HOW IT WORKS
仕組みを
3段階で見る
細部へ入る前に、入力から結果までの役割を順番に捉えます。
提供元でログイン
IdP(Identity Provider)が利用者の本人確認を行う。
→認証結果を発行
発行者、利用者、対象アプリ、時刻を署名付きで返す。
→アプリで検証
IDトークンの署名とクレームを検証し、自アプリ内でのセッション(ログイン状態)を確立する。
OIDCを理解するときの、最小の処理単位です。
03 — ESSENTIALS
押さえるべき
3つの要点
名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。
認証を行う提供元
ユーザーを認証し、トークンと公開鍵情報を提供します。
認証結果
誰がいつどのアプリ向けに認証されたかを表します。
要求との結び付け
開始したログインと返された結果が対応するか確認します。
04 — REAL WORLD EXAMPLE
Googleアカウントでアプリへログインする
アプリ自身で新しいパスワードを管理せず、外部の認証結果を利用します。
- 01
IdPへ認証リクエストを送信する
- 02
利用者がIdP上でログイン認証を完了する
- 03
取得したIDトークンを検証し、自アプリのセッションを発行する
05 — WATCH OUT
理解するときの
注意点
便利な仕組みほど、守備範囲と失敗の前提を明確にします。
IDトークンをAPI呼び出しに流用しない
用途と宛先が異なるため、外部APIの呼び出しにはアクセストークンを使用します。
メールアドレスだけをユーザー識別子にしない
メールアドレスは変更される可能性があるため、IdPの発行者識別子(iss)と不変のユーザーID(sub)を組み合わせて識別します。
IN ONE SENTENCE
OIDCとは?
OAuth 2.0を土台にログイン情報を連携する仕組み。
