OpenID
概要
OpenIDとは、管理主体の異なる様々なシステムやサービス間で利用者の識別情報を共通して使えるようにする連携方式を定めた規格の一つ。また、同規格の策定・普及を進める業界団体(OpenID Foundation)。会員制のWebサイトやネットサービスを利用するには、従来は個々のサービスごとにID(アカウント名)やパスワードなどの登録・発行を行う必要があったが、OpenIDに対応したサービス間では、他サービスの発行したIDを用いてサービスへの加入やログインを行うことができる。
その際、発行元に登録したユーザー名やパスワードなどを連携先には知らせずに認証を行うことができ、利用者のプライバシーが守られる。また、発行元と連携先が必ずしも提携や契約、システムやデータの共有などを行う必要はない。このような仕組みをID連携(Federated Identity)という。
OpenID Authentication
最初に制定された標準規格で、現在は後継のOpenID Connectに置き換えられている。初版は単に「OpenID 1.0」と呼ばれていたが、第2版では「OpenID Authentication 2.0」が正式名称とされるようになった。
IDの発行元を “OpenID Provider” (OP)、連携先のサービスを “Consumer” (OpenID 1.1まで)あるいは “Relying Party” (RP/2.0以降)という。利用者は連携先のサービスを利用する際、OpenIDによる認証を申し出て、発行元から取得したID情報を提示する。
連携先は発行元の認証サーバを探し出してアクセスし、暗号鍵を交換する。利用者には発行元で認証を行うよう、発行元サーバの認証画面などへ誘導する。利用者は発行元でパスワード入力などを行って本人確認を行う。
認証結果は利用者のWebブラウザへ通知され、これを連携先に伝達する。連携先は結果が真正かどうか発行元へ問い合わせ、確認できると認証成功となる。
当初は連携先に伝達する利用者のIDとして、認証元が発行する特別なURL(Claimed Identifier)が用いられたが、利用者にとってURLがIDというのは馴染みにくく覚えにくかったため、2.0では連携先に発行元自身のURLを指定するだけでよくなった。
OpenID Connect (OIDC)
初期のOpenID仕様の後継規格で、OAuth 2.0の拡張仕様として定義されている。旧規格との互換性はなく、OpenID Connectへの移行が推奨されている。
基本的な認証の流れは旧規格と似通っており、利用者は連携先のサービスを利用する際、OpenID ConnectによりID発行元による認証を行うよう要求する。
連携先は発行元の認証サーバへ利用者を誘導し、利用者はパスワードなどを入力して認証を行う。認証に成功すると利用者に認可コード(authorization code)が発行され、これを連携先に伝達する。
連携先は認可コードを用いて発行元にアクセスし、アクセストークンやIDトークンを取得することができる。これらのトークンには認証や認可に関する情報が記載されており、サービスによって必要なものを取り寄せる。