概要
OpenID Connectについて、学習したことを残しておこうと思います。
OpenID Connectとは?
OpenID Connectとは、OAuth2.0をベースに作られたプロトコルのことです。
そもそもOAuth2.0は認可のみを行うためのプロトコルで、認証は別途行う必要が
ありましたが、そこに認証機能を追加したものがOpenID Connectになります。
認証について知る
会員制のサイトを利用する際、付与されたユーザーIDを使用してログインすれば
そのサイトが利用できるようになります。つまり本人確認ができれば利用できるようになります。
この本人確認処理にあたるのが認証です。
認証API
会員制のサイトにログインする際、「Googleでログイン」や「Twitterでログイン」などの
選択肢を見かけることがあると思います。GoogleやTwitter、Facebookなどの利用者が多いサービスでは、
認証処理の仕組みをAPIとして提供していますが、これが認証APIです。
具体的な使用例
以下は具体的な使用例です。利用したいサイトがA、GooleやTwitterなどの認証APIを
提供する側がBとしています。
- ユーザーがAにログインの要求を行う
- AがBにユーザーを誘導する
- Bで認証を行う
- 認証結果をAに通知する
- 認証された場合、ユーザーはAにログイン可能になる
認証APIの問題点
認証APIは一見便利に見えますが次のような問題点があります。
- ユーザーが対象の認証API側にアカウントを持っていないと認証できない
- 認証API側によって、APIの仕様が異なるためサイト運営者側への負担が増える
OpenID
上記の問題点を解決するために、認証処理を標準化したプロトコルがOpenIDです。
OpenIDでは、複数企業が提供する認証サービスを同じ手順で利用することが可能です。
認可について知る
認証結果をもとに、ユーザーに権限を付与することを認可といいます。
Twitterで例えると、会員登録を行い認証されたアカウントは投稿、編集などを
行う権限が与えられます。
このように、「投稿」「編集」「削除」などの機能を許可することが認可です。
OAuth
サイトをまたいだ認可を実現するために標準化されたプロトコルがOAuthです。
例えば、Facebookに何か投稿をしたときに、同時にTwitterでも
「Facebookで~~を投稿しました」というような投稿ができるようになります。
このような仕組みを実現するのがOAuthです。