PUBLIC
SECURITYオープンIDコネクト6 MIN READ

TERM 029

OIDC

OAuth 2.0の流れで、ログイン情報を受け取る

OpenID Connect(OIDC)はOAuth 2.0の上に本人認証の層を追加し、アプリがユーザーのログイン結果と基本情報を安全に受け取るためのプロトコルです。

01AUTHENTICATE提供元でログイン
02ID TOKEN認証結果を発行
03SESSIONアプリで検証
OVERVIEW

OAuth 2.0を土台にログイン情報を連携する仕組みの全体像。

CONTENTSこの記事の目次

01 — DEFINITION

OIDCとは
何か

OpenID Connect(OIDC)はOAuth 2.0の上に本人認証の層を追加し、アプリがユーザーのログイン結果と基本情報を安全に受け取るためのプロトコルです。

02 — HOW IT WORKS

仕組みを
3段階で見る

細部へ入る前に、入力から結果までの役割を順番に捉えます。

INPUTPROCESSOUTPUT
01AUTHENTICATE

提供元でログイン

IdP(Identity Provider)が利用者の本人確認を行う。

02ID TOKEN

認証結果を発行

発行者、利用者、対象アプリ、時刻を署名付きで返す。

03SESSION

アプリで検証

IDトークンの署名とクレームを検証し、自アプリ内でのセッション(ログイン状態)を確立する。

PROCESS

OIDCを理解するときの、最小の処理単位です。

03 — ESSENTIALS

押さえるべき
3つの要点

名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。

01PROVIDER

認証を行う提供元

ユーザーを認証し、トークンと公開鍵情報を提供します。

02ID TOKEN

認証結果

誰がいつどのアプリ向けに認証されたかを表します。

03NONCE

要求との結び付け

開始したログインと返された結果が対応するか確認します。

04 — REAL WORLD EXAMPLE

Googleアカウントでアプリへログインする

アプリ自身で新しいパスワードを管理せず、外部の認証結果を利用します。

SCENARIO / OIDCSTEP BY STEP
  1. 01

    IdPへ認証リクエストを送信する

  2. 02

    利用者がIdP上でログイン認証を完了する

  3. 03

    取得したIDトークンを検証し、自アプリのセッションを発行する

RESULTパスワードをアプリへ預けず、検証済みのユーザー識別子でログインできます。

05 — WATCH OUT

理解するときの
注意点

便利な仕組みほど、守備範囲と失敗の前提を明確にします。

01

IDトークンをAPI呼び出しに流用しない

用途と宛先が異なるため、外部APIの呼び出しにはアクセストークンを使用します。

02

メールアドレスだけをユーザー識別子にしない

メールアドレスは変更される可能性があるため、IdPの発行者識別子(iss)と不変のユーザーID(sub)を組み合わせて識別します。

IN ONE SENTENCE

OIDCとは?

OAuth 2.0を土台にログイン情報を連携する仕組み。

KEEP EXPLORING

SECURITYOAuth掲載中SECURITYAuthentication掲載中SECURITYJWT掲載中