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 |
name 、family_name 、given_name 、middle_name 、nickname 、preferred_username 、profile 、picture 、website 、gender 、birthdate 、zoneinfo 、locale 、updated_at |
email |
email 、email_verified |
phone |
address |
address |
phone_number 、phone_number_verified |
openid |
IDプロバイダー側で設定しているアカウントの識別子 |
groups |
IDプロバイダー側で設定しているアカウントの認証グループ |
OAuthとの違い¶
OIDCでは、OAuthとは異なり、アクセストークンではなく、IDトークンを使用する。
OIDCの種類¶
ベースになっているOAuthと同様にして、OIDCには仕組み別に『認可コードフロー』『インプリシットフロー』『リソースオーナー・パスワード・クレデンシャルズフロー』などがある。
認可コードフロー¶
Facebookには認証フェーズと認可フェーズでログインする点はOAuthと同じであるが、免許証作成サイトには認証フェーズと認可フェーズでログインする。