なぜ「サインイン」だけでなく、広範な権限が求められるのか?
OAuthを利用した認可の際に求められる権限は「最小限の情報」だけに限らず、場合によってはかなり広範な権限が求められることがあります。
たとえば、Twitterアカウントを使ってサインインする際に「ポストする権限」や「フォローする権限」などが含まれている場合があります。(いつもいやだけど。。。)
その理由は?
アプリケーションの目的による要求
アプリケーションが提供したい機能によって、どのような権限が必要になるかが変わります。
例えば、Twitterの認証を利用しているアプリが、ユーザーに投稿を代行したり、ユーザーのタイムラインに特定のツイートを表示したりする場合は、「ツイートの投稿」「フォロー管理」などの権限が求められます。
利便性の向上
アプリケーションは、ユーザー体験を向上させるために追加の権限を要求することがあります。
例えば、ユーザーがTwitter上で頻繁にポストするアプリでは、アプリから直接ポストできる権限を与えることで、ユーザーがアプリ内で行う操作が便利になります。
ビジネス上の理由
一部のアプリケーションはビジネスモデル上、ユーザーの広範なデータやアクション権限が必要になることがあります。
特定のアプリは、Twitterでユーザーの関心やエンゲージメントを測定し、サービスを提供しているケースもあります。
広範な権限があれば、それだけ多くのデータやアクションをアプリ側が管理できるため、ユーザーにサービスを提供しやすくなります。
セキュリティリスクやプライバシーの侵害につながる可能性はないか?
特に、ユーザーとして「見たいだけ」の目的に対して過剰な権限が要求されると、悪質なサイトやアプリを見極めるのが難しく感じるかもしれません。
これについて、ユーザーができる対策と注意すべきポイントは?
必要な権限がどれかを見極める
信頼できるサイトやアプリであれば、サインインに必要な最小限の権限を要求します。
例えば、GoogleやTwitterを使ったサインインの場合、基本的に「メールアドレス」「名前」「プロフィール写真」など、ユーザーの識別に必要な情報のみが要求されます。
しかし、過剰な権限(例えば「投稿権限」や「フォロー管理権限」など)が含まれている場合は注意が必要です。
・必須権限の確認:多くの認可画面では、「必須」と「オプション」の区別が表示されることがあります。この違いを確認して、過剰に感じる権限には注意しましょう。
・「読み取り専用」の権限が基本:サインインに必要な権限は通常「読み取り専用」であることが多く、「書き込み権限」などが含まれていないか確認します。
サイトやアプリが信頼できるかどうかを判断するポイント
悪質なサイトやアプリを見分けることは簡単ではありませんが、以下のポイントが参考になります。
(ここはユーザーにとって一番ムズいと思う。。。)
・アプリやサイトの提供者を確認:有名なサービスや企業が提供しているかどうかを確認しましょう。例えば、「Googleでログイン」「Twitterでサインイン」などのボタンは見た目が似たデザインで表示されますが、必ず公式の認可画面であることを確認します。OAuthの認可画面では、必ずそのサービスのドメイン(例:accounts.google.comなど)を確認してください。
・口コミやレビューを確認:アプリが提供されている場所(Google PlayやApp Store、公式ウェブサイトなど)で、他のユーザーの口コミや評価が参考になります。特にレビューに「過剰な権限を求められる」などのコメントがあれば、避ける方が安全です。
サインイン後の権限を見直す方法
OAuthでアクセスを許可した後でも、サービスの設定から不要な権限を見直すことが可能です。
・各アカウントの「接続済みアプリ」ページ:GoogleやTwitterなどでは、アカウント設定内に「接続済みアプリ」や「アプリとセキュリティ」などのページがあります。ここで不要なアプリや過剰な権限を削除できます。
・許可を確認して都度更新:一度付与した権限も定期的に見直し、必要なくなったものは削除することをおすすめします。これにより、アカウントにアクセスできる範囲を常に最小限に抑えることができます。
OAuthでのセキュリティリスクの低減策
・OpenID Connect(OIDC)の利用:多くのサインイン機能は、純粋に認証のみを行うプロトコル拡張であるOIDCを利用するケースが増えています。OIDCはユーザーの認証に特化しており、認証情報だけがやり取りされるため、余計な情報取得が発生しにくくなっています。
・サインイン専用のOAuthアカウントの利用:重要なSNSやメールアカウントとは別に、サインイン専用のGoogleアカウントなどを作成し、それを利用することで、不要なアクセスリスクを抑えることも一つの方法です。
参考サイト