ソーシャルログインを実装するうえで気をつけたいこと

ソーシャルログイン(SNSアカウントでのログイン)の機能を付ける際、設定や構成について検討してみます。 弊社で関わらせていただくサイト、特にポータルサイトではユーザーログイン機能を設けることがあります。
ユーザーログイン機能の目的は様々ですが、その際にソーシャルアカウントでもログインさせたい(ソーシャルログイン)といったご要望をいただくことがあります。

その際にいくつか気を付けておきたいポイントをまとめてみます。

ソーシャルログインの概要

通常のログイン機能では一般的に「ID(メールなど)」と「パスワード」の組み合わせで本人かどうかを確認します。

ソーシャルログインに対応したサービスは、上記と同じくユーザーが「本人かどうか」を確認する手段を肩代わりしてくれます。

通常のログイン機能では、例えばIDがメールアドレスの場合、そのメールが正常に届くかどうか、パスワードを忘れたらどうするか、など付帯機能が必要になります。
そのあたりがすでに済んでいるソーシャルメディアのアカウントで認証できれば、ユーザー側もサイト側も手間が省けます。
また、ソーシャルメディアであればすでにログインを済ませていることが多いため、ID・パスワードの入力を経る必要もありません。

サイトとソーシャルメディアとのあいだで「トークン」と呼ばれるランダムな文字を使って、本人かどうかを確認するのが一般的です。

ソーシャルログインのおおまかな流れとしては以下のようになります。
  1. サイト側で認証用URLを生成
  2. ソーシャルメディアの認証用URLへジャンプ
  3. ソーシャルメディア内でログイン(していなければ)
  4. ユーザーがサイトへの情報提供を許可
  5. ソーシャルメディア側が戻り用URLを生成
  6. サイト側の戻り用URLにジャンプ(トークン提供)
  7. サイト側でログイン処理
  8. ログイン完了

サイトへの組み込みで検討すること

メールアドレスが必要

ソーシャルログインを組み込む際、まず前提としてサイト側のユーザーデータベースに「メールアドレス」の欄が必要です。
また、メールアドレスはユニーク(重複のない情報)である必要があります。
なぜなら、サイトとソーシャルメディアで完全一致できるユーザー情報はメールアドレスくらいしかないからです。
メールアドレスが照合できないと、両者の情報を「繋ぐ」ことができません。

ログインパスワードの処理

ユーザーが新規会員登録する際、メールアドレスとパスワードが必須になりますが、ソーシャルログインから新規登録する場合、「パスワード」がありません。

こういった場合、一般的にはソーシャルメディアからサイトへ戻ってきた際にパスワードを入力してもらうことが多いようです。

他の方法としては、サイトの内部処理で「仮パスワード」を発行しソーシャルメディアからサイトへ戻ってきた時点で新規登録完了とする、というものがあります。
パスワードを設定する手間が省けるのと、新規登録でソーシャルログインを選択するのであれば、その後もそのアカウントでログインする確率が高いと思います。

もし急にID・パスワード方式でログインしたくなった場合は「パスワードの再発行」の手続きをしてもらう必要がありますが、前述の「仮パスワード」はユーザーに入力させるより安全な文字で生成できるため、セキュリティ的にもメリットはあると思います。

ログイン機能を提供している主なソーシャルメディア

前提として、各ソーシャルメディアのアカウントが必要になります。

Facebook

実名制を謳っているため、本人のアカウントである(いわゆる「裏アカウント」とかではない)可能性が高いです。

Facebookでログインを実装するには、開発者サイト( developers.facebook.com )から「アプリ」を新規作成します。
「アプリ」の機能として「Facebookでログイン」を利用する、ということになります。

Google

こちらも本人確認等の手続きがあるため、本人のアカウントである可能性が高いです。
しかし、個人的な体感ですが日本では利用ユーザーが少ない印象です。

Googleアカウントでのログインを実装するには、開発者コンソール( cloud.google.com/console )から、(なければ)「プロジェクト」を新規追加し、APIの「認証情報」を作成します。

また、「Google+ API」を有効化する必要があります。
Googleアカウントではなく「Google+」のアカウントで認証するということです。

Twitter

Twitterはユーザーが多いため有用ですが、複数アカウントを使い分けている人が少なくありませんので、その点を認識したうえで実装します。

Twitterでのログインを実装するには、開発者サイト( apps.twitter.com )から「アプリ」を新規作成します。
しかし、そのままでは認証時に「メールアドレス」が取得できません。

Twitterのアプリでユーザーのメールアドレスを照合するには、「個人情報保護方針(プライバシーポリシー)」と「利用規約」が明記されたWebページのURLをTwitter側に提示する必要があります。(アプリの管理画面で設定) そのうえでTwitterが審査・承認してはじめてメールアドレスを取得することができます。
面倒ではありますが、ソーシャルログイン実装ではほぼ必須の手続きになります。

おわりに

ログイン機能の実装については、まず会員になることのメリットを十分に検討することが重要だと思います。
安易にログイン機能だけを実装しても、登録がなければオーバースペックとなるでしょう。

最近ではヨーロッパで一般データ保護規制(GDPR)が施行され、個人情報の扱いが厳しくなりつつあります。

もしログイン機能を検討している場合、ユーザーが個人情報を提供するに見合うサービスかどうかを、いま一度考えてみても良いかもしれません。