コンテンツにスキップ

OIDC@SSO

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. OIDC:OpenID Connect (外部ID連携)

OIDCとは

SSOの一種である。

OAuthをベースとして、認証フェーズを追加し、認証/認可を実装する。


OIDCの仕組み

▼ アーキテクチャ

認証フェーズの委譲先のIDプロバイダー、ログインしたいWebサイト、から構成される。

▼ クレーム

OIDCのIDプロバイダーでは、アカウントの情報としてクレームを設定できる。

クレーム 説明
sub アカウントの識別子
profile アカウントのプロフィールURL
name アカウントの氏名
email アカウントのメールアドレス
phone アカウントの電話番号
address アカウントの住所
... ...

▼ スコープ

クライアントは、OIDCのIDプロバイダーからアカウントのクレームを取得するために、スコープを設定する。

IDプロバイダーは、指定したスコープをアクセストークンに含めて、クライアントに送信する。

クライアントでは、取得したスコープに応じて認可処理を実行する。

スコープ 取得できるクレーム
profile namefamily_namegiven_namemiddle_namenicknamepreferred_usernameprofilepicturewebsitegenderbirthdatezoneinfolocaleupdated_at
email emailemail_verified
phone address
address phone_numberphone_number_verified
openid IDプロバイダー側で設定しているアカウントの識別子
groups IDプロバイダー側で設定しているアカウントの認証グループ


OAuthとの違い

OIDCでは、OAuthとは異なり、アクセストークンではなく、IDトークンを使用する。

oidc_vs_oauth


OIDCの種類

ベースになっているOAuthと同様にして、OIDCには仕組み別に『認可コードフロー』『インプリシットフロー』『リソースオーナー・パスワード・クレデンシャルズフロー』などがある。


認可コードフロー

Facebookには認証フェーズと認可フェーズでログインする点はOAuthと同じであるが、免許証作成サイトには認証フェーズと認可フェーズでログインする。