Part3では、パスワードを使い回さないもう1つの方法として、認証連携のサービスを解説する。認証連携という言葉は聞き慣れないかもしれないが、現在では広く使われていて、目にしている人も多いはずだ。

まずは別サービスにログイン

 認証連携を利用しているサービスのログイン画面では、「他のサービスのIDを利用する」といった画面が表示される(図9)。ここで表示されるFacebookやLINEなどが、認証連携を提供しているサービスになる。

図9●別のWebサービスと認証連携してログインする
認証連携サービスを提供しているWebサービスのアカウント情報でログインできるので、改めてIDやパスワードを登録する必要がない。
[画像のクリックで拡大表示]

 例えばFacebookのアイコンが付いたボタンを押すと、Facebookのログイン画面が表示される。ここでFacebookのアカウントのIDやパスワードを入力してログインし、次の画面で必要な情報を渡すことを許可すると、もともとアクセスしたいと思っていたサービスにログインできる。

 このように、あるサービスを利用する際に、新たにアカウントを作るのではなく、他のサービスで使っている利用者情報を使って認証を受けるのが認証連携だ。利用者は認証連携の機能を提供しているサービスのIDやパスワードを使って、複数のサービスを利用できる。

パスワードをやりとりしない

 認証連携を実現する規格はいくつかあるが、大まかな流れはほぼ共通している(図10)。

図10●Webサービスが備える認証連携サービスを使った場合の流れ
サービスAのWebサービスにログイン要求があると、認証連携を提供するサービスBにリダイレクトさせて認証を受ける。認証に成功するとトークンを受け取り、そのトークンの情報元に必要な利用者の情報をサービスBから取得して、サービスAが利用者にサービスを提供する。
[画像のクリックで拡大表示]

 まず利用したいサービス(サービスA)のログイン画面で、他のサービスの認証を利用するボタンを押す(図10の1)。すると、サービスAから認証リクエストが送られてきて、認証連携サービスを提供するサービスBにリダイレクトされる(同2)。

 サービスBは、サービスBの認証画面と、サービスAに情報を渡してよいかを利用者に確認する画面を表示する(同3)。利用者が正しいパスワードを入力し、「OK」ボタンを押すと、サービスBから認証コードが送られてサービスAにリダイレクトされる(同4)。

 サービスAは、受け取った認証コードを使ってサービスBにトークンを要求(同5)。トークンを取得すると、それを使って必要な情報をサービスBに要求して取得する(同6)。サービスBから必要な情報を受け取ったら、サービスAが利用者にサービスを提供する(同7)。

 認証連携するサービスの間でやりとりするのはトークンや認証コードであり、IDやパスワードではない。そのため、サービスAはサービスBのIDやパスワードを知る必要はない。利用者はGoogleやFacebookといった自分が信頼しているサービスにログインするだけで、様々なサービスを利用できることになる。

この先は有料会員の登録が必要です。「日経NETWORK」定期購読者もログインしてお読みいただけます。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら