ウェブサイトのボタンを押すだけでSNSに勝手に投稿される?(API認証の仕組み)

外部サイトからのSNS自動投稿は可能? 技術的にほぼ不可能 OAuth 2.0認証が必要 1 外部サイト 2 許可画面 3 ユーザー承認 4 SNS投稿 注意が必要なケース • 過去に連携済みサイト • 紛らわしいボタンデザイン 対策方法 • 連携アプリの定期確認 • 許可画面の内容確認

「あるウェブサイトで保存ボタンを押しただけなのに、気がつくとTwitterで変な投稿をしていた」という話を聞いたことがあるでしょうか。インターネット上では、このような不安を抱く声をときどき見かけます。

本当にそんなことが起こるのでしょうか。技術的な仕組みを詳しく見ていくと、意外な答えが見えてきます。

結論:許可なしに勝手な投稿は技術的に不可能

先に結論をお伝えすると、外部のウェブサイトがユーザーの許可なく勝手にSNSに投稿することは、現在の技術的な仕組み上、ほぼ不可能です。

SNSへの投稿には必ず事前の許可が必要で、この許可なしに投稿することはできません。

〜にアカウントの利用を許可しますか?

「連携アプリを認証」「キャンセル」

ただし、過去に許可を出している場合や、紛らわしいデザインによる誤操作には注意が必要です。

自分の連携状況を確認する方法(Twitterの場合)

Twitterの設定画面から、連携しているアプリケーションの一覧を確認できます。

設定とプライバシー」→「セキュリティとアカウントアクセス」→「アプリとセッション」の順に進むと、現在連携中のアプリケーションが表示されます。各アプリケーションについて、いつ連携したか、どのような権限を与えているかが確認できます。不要な連携は、ここで削除できます。

FacebookやInstagramでも、同様の設定画面があります。定期的にチェックして、使わなくなったアプリケーションとの連携は削除することをお勧めします。

SNS投稿に必要な技術的な仕組み

  • ステップ1:認証リクエスト
  • ステップ2:ユーザーの同意確認
  • ステップ3:アクセストークンの発行
  1. ユーザー外部サイトで「Twitterでログイン」ボタンを押すと、そのサイトはTwitterの認証サーバーにリクエストを送信します。このとき、どのような権限を求めているかも一緒に送られます。
  2. Twitterの認証サーバーは、ユーザーを専用の許可画面にリダイレクトします。この画面では、先ほど説明した詳細な権限情報が表示されます。ユーザーは「許可する」か「拒否する」かを選択できます。許可しない限り、外部サイトはTwitterにアクセスできません。
  3. ユーザーが許可すると、Twitterは外部サイトに対してアクセストークンという特別な鍵を発行します。このトークンがあって初めて、外部サイトはTwitterのAPIを使えるようになります。アクセストークンには有効期限があり、また許可されたスコープの範囲内でしか使用できません。

API認証とOAuth 2.0

外部のウェブサイトからSNSに投稿するには、SNSの「API(Application Programming Interface)」という仕組みを使います。APIとは、異なるソフトウェア同士が情報をやり取りするための窓口のようなものです。

このAPIを使うには、「OAuth 2.0(オーオース)」という国際的な標準規格による認証が必要です。OAuth 2.0は、第三者のアプリケーションに対して、ユーザーのデータへの限定的なアクセス権を安全に付与するための仕組みです。

OAuth 2.0の許可画面が必ず表示される

OAuth 2.0では、外部サイトがSNSにアクセスしようとすると、必ずユーザーに許可を求める画面が表示されます。この画面では以下の内容が明確に示されます。

まず、どのアプリケーションが許可を求めているかが表示されます。次に、そのアプリケーションが何をできるようになるかが具体的にリストアップされます。「タイムラインの閲覧」「フォロー機能の利用」「ツイートの投稿」といった項目が、一つひとつ明記されているのです。同時に、そのアプリケーションができないことも明示されます。「ダイレクトメッセージの閲覧はできません」「パスワードにはアクセスできません」といった制限事項が示されるのです。

OAuth 2.0のスコープによる権限の細分化

OAuth 2.0では、「スコープ」という概念で権限を細かく管理しています。スコープとは、アクセス権限の範囲を定める仕組みです。

例えば、「読み取り専用」のスコープを持つアプリケーションは、ユーザーの投稿を見ることはできても、新しい投稿を作成することはできません。投稿するためには、明確に「書き込み権限」のスコープが必要なのです。

この仕組みにより、ユーザーは自分のデータに対するアクセス権を細かく制御できます。銀行のキャッシュカードで例えると、引き出し専用カードと入出金両用カードを使い分けるようなものです。

過去に連携許可を出しているサイトには注意

OAuth 2.0は非常に優れた仕組みですが、ユーザーが内容を理解せずに許可してしまえば、意図しない権限を与えてしまうことがあります。

「Twitter診断」や「相性診断」といったエンターテイメントサイトで、過去にTwitterとの連携を許可している場合があります。このようなサイトは、既に投稿権限を持っている可能性があります。また、技術的には問題なくても、ユーザーインターフェースのデザインが紛らわしい場合があり、ユーザーが内容をよく読まずに「許可」を押してしまうことがあります。

投稿権限が含まれていないか要注意

また、悪意のあるアプリケーションが、巧妙な手口でユーザーを騙そうとする可能性もゼロではありません。「いつものログイン画面」だと思って、自動的に許可ボタンを押してしまう人も少なくありません。

最も重要なのは、許可画面の内容をしっかり確認することです。
特に「投稿権限」について明記されているかどうかは、必ずチェックしましょう。
多くの連携では、アカウント名やプロフィール画像のみのアクセス許可で、投稿権限までは要求されないことが一般的です。

また、信頼できないサイトでは、SNSログインを使わないという考え方もあります。メールアドレスでの新規登録を選ぶ方が安全な場合もあります1

まとめ

外部ウェブサイトのボタンを押しただけでSNSに勝手に投稿されることは、技術的な仕組み上、基本的に起こりません。OAuth 2.0による認証システムが、ユーザーの明確な許可なしにはアクセスを許可しないからです。

ただし、過去にSNS連携を許可しているサイトや、紛らわしいデザインによる誤操作には注意が必要です。定期的に連携アプリケーションの確認を行い、不要な権限は削除することが大切です。技術的な保護システムは整っていますが、最終的にはユーザー自身の注意深い操作が最も重要な防御策となります。

  1. ただし、SNSログインの方が二段階認証などが利用できるメリットがあります。アカウント作成・認証については、連携されるAPI権限を正しく確認すれば、より安全だと考えています。