ソーシャルログインとは?SNSアカウントで即利用する認証方法

システム開発・テクノロジー
ソーシャルログインとは?ざっくりと3行で
  • GoogleやX(旧Twitter)・LINEなどのSNSアカウントを使って別のサービスに会員登録・ログインできる認証方法のこと。OAuth 2.0という標準規格で実装される
  • パスワード入力不要で数タップで登録できるためユーザー登録のハードルを大幅に下げる効果があり、ECサイト・アプリ・SaaSなど多くのサービスで採用されている
  • ソーシャルログインに使ったSNSアカウントが乗っ取られると連携した全サービスに不正アクセスされるドミノ倒しリスクがあり、Googleアカウントなどの二段階認証設定が必須だ

【深掘り】これだけ知ってればOK!

ソーシャルログインの実装にはOAuth 2.0というオープンスタンダードが使われる。ユーザーがGoogleでログインを選ぶと、サービス側はGoogleからアクセストークンを受け取り、そのトークンを使ってユーザー情報(名前・メールアドレス等)を取得する。パスワードはサービス側に渡らないため、パスワード漏洩リスクがない点が重要な特徴だ。

サービス提供者側のメリットとしては、ユーザー登録完了率の向上(パスワード登録が不要なため離脱が減る)・パスワードリマインダー対応コストの削減アカウント品質の担保(Googleアカウントは本人確認済みの場合が多い)がある。AppleのApp Store審査ガイドラインにより、サードパーティのソーシャルログイン(Google・Facebook等)を提供するiOSアプリは「Appleでサインイン」も合わせて実装することが義務付けられている。

ユーザー側のリスクとして最も重要なのが連携アカウントの乗っ取り連鎖だ。Googleアカウントが侵害されると「Googleでログイン」を設定している全サービスへの不正アクセスが可能になる。ソーシャルログインを使う場合は、ベースとなるSNSアカウントに二段階認証を必ず設定することが必須の対策だ。

TwitterがAPIポリシーを変更した際に「Twitterでログイン」を使っているサービスが影響を受けた事例がある。SNSプラットフォームへの依存リスクがあるため、複数の認証手段(メールパスワード認証+複数のソーシャルログイン)を提供することでリスクを分散させるのが安全な設計だ。

Firebaseのauthenticationを使えばGoogle・Apple・Twitter・Facebookなど複数のプロバイダを一括実装できる。認証画面のUI実装も含めて提供されるため、個別にOAuth 2.0を実装するより大幅に工数を削減できる。初期フェーズはFirebase Authで始めて、将来的に自前実装に移行するという段階的なアプローチが現実的だ。

よくある誤解

ソーシャルログインは安全な認証方法という誤解

ソーシャルログインはパスワード漏洩リスクを下げるが、すべてのリスクを排除するわけではない。ベースアカウントが侵害された場合の被害範囲が広がるリスクがある。二段階認証と組み合わせることで安全性が高まる。「パスワードがないから安全」という思い込みが最も危険だ。

SNSプラットフォーム依存のリスクを見落としがち

API変更・サービス障害でソーシャルログインが突然使えなくなるリスクがある。1つのSNSだけに依存せず、複数の認証手段を提供することが安全な設計の基本だ。プラットフォームの利用規約変更にも注意が必要で、定期的にAPI利用規約をチェックする習慣が重要だ。

会話での使われ方

ITKAGYO運営者デプロイ太郎のアイコン画像

Googleでログインを使えば毎回パスワード入力しなくていいですよ。ソーシャルログインって便利ですよね。登録も一瞬で終わるし。

友人にECサイトの使い方を教えている場面。ユーザー登録のハードルを下げるソーシャルログインの利便性を説明している。

ITKAGYO運営者デプロイ太郎のアイコン画像

ソーシャルログイン実装する場合、Googleだけでなく、LINEもサポートした方がモバイルユーザーの獲得に効果的です。ターゲット年齢層的にもLINEがよく使われています。

Webサービスの開発方針を議論している場面。ターゲットユーザーに合わせたSNSプラットフォームの選択が重要だ。

ITKAGYO運営者デプロイ太郎のアイコン画像

Twitterでログインしていたサービス、TwitterのAPI変更で突然使えなくなりました。1つのSNSに依存するリスクを感じています。複数の認証手段を用意すべきでした。

SaaS製品のユーザーがサービスの可用性問題を経験した場面。SNSプラットフォーム依存のリスクを示す実際の事例だ。

【まとめ】3つのポイント

  • 「OAuth 2.0でパスワードを渡さずに認証する」:ソーシャルログインはOAuth 2.0でアクセストークンを使った認証を行い、サービス側にパスワードを渡さないためパスワード漏洩リスクがない
  • ベースアカウントの二段階認証が最重要:連携SNSアカウントの乗っ取りで全サービスが芋づる式に侵害されるリスクがあるため、Googleなどベースアカウントへの二段階認証設定が必須だ
  • SNSプラットフォーム依存リスクを分散する:API変更・サービス障害でソーシャルログインが突然使えなくなるリスクがあるため、複数の認証手段を提供するのが安全な設計だ

よくある質問

Q
ソーシャルログインはどうやって実装しますか?
A

OAuth 2.0/OpenID Connectプロトコルを使います。GoogleはGoogle Identity Platformを提供しています。FirebaseのAuthenticationを使えばGoogle・Apple・Twitter・Facebookなど複数のプロバイダを一括実装できます。

Q
「Appleでサインイン」が必要なのはなぜですか?
A

AppleのApp Store審査ガイドラインにより、サードパーティのソーシャルログイン(Google・Facebook等)を提供するiOSアプリは「Appleでサインイン」も合わせて実装することが義務付けられています。

Q
ソーシャルログインとSSOの違いは何ですか?
A

SSO(シングルサインオン)はひとつの認証で複数のシステムにアクセスできる仕組みの総称で、ソーシャルログインはそのSSOをSNSアカウントで実現する方法の一つです。企業内SSOはSAMLやOpenID Connectを使い、ソーシャルログインとは別の仕組みが多いです。

Q
ソーシャルログインとパスワードログインはどちらが安全ですか?
A

一概には言えません。ソーシャルログインはパスワード漏洩リスクが低いですが、ベースアカウントへの依存リスクがあります。パスワードログインはパスワードマネージャーと多要素認証を組み合わせれば高い安全性を実現できます。両方を提供してユーザーが選べる状態が理想的です。

この用語と一緒に知っておきたい用語

用語この記事との関連
パスワード本記事のテーマと実務上セットで使われることが多い用語です。アカウントの持ち主が本人かどうかを確かめるための、本人だけが知る合言葉、それがパスワードだ
アカウントアカウントとの関係を知ると全体像がつかみやすくなります。あるサービスを自分専用に使うために登録する、いわば会員証のような利用権、それがアカウントだ
OAuth本記事のテーマと実務上セットで使われることが多い用語です。あるサービスへのアクセス権限を、パスワードを渡さずに別のサービスに安全に委譲するための認可フレームワークだ
トークントークンとの関係を知ると全体像がつかみやすくなります。「しるし」「証票」を意味し、認証・プログラミング・暗号資産など文脈によって複数の意味を持つ多義的なIT用語のこと
アイコンアイコンを押さえると本記事の理解がさらに深まります。アプリやファイル、操作ボタンなどをひと目でわかる小さな絵で表したもの、それがアイコンだ

【出典】参考URL

https://oauth.net/2/ :OAuth 2.0 仕様
https://developers.google.com/identity/gsi/web :Google Identity Services
https://firebase.google.com/docs/auth :Firebase Authentication

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!
タイトルとURLをコピーしました