web-dev-qa-db-ja.com

TwitterアプリがOAuthを使用している場合、なぜパスワードを要求されるのですか?

TweetDeck にサインアップしましたが、手順に従ってOAuthトークンを発行したようです。

次に、それをインストールし(0.35.1、Linux)、TweetDeckアカウントでサインインし、Twitterアカウントを追加しようとしました。次に、Twitterパスワードの入力を求められます。

OAuthを使用する場合にパスワードが必要なのはなぜですか?


更新:

OAuthトークンを認証した後、Twitterからメールを受け取りました。これは、TweetDeckだけでなく、アプリ全般に共通することを示唆しています。

  • OAuthは、パスワードを直接要求することなく、アプリケーションが承認に基づいてTwitterにアクセスできるようにするテクノロジーです。
  • デスクトップおよびモバイルアプリケーションは、パスワードを1回要求する場合がありますが、その要求の後、OAuthを使用してタイムラインにアクセスするか、ツイートを許可します。

OAuthトークンをWeb経由でTwitterで直接承認した場合、なぜ彼らが私のパスワードを必要とするのか、まだわかりません。

メールには次のようにも書かれています。

アプリケーションでパスワードを保存することは許可されなくなりました。

どうやってそれを保存するのを防ぐことができますか?パスワードを「一度」明らかにすると、それは永遠に明らかになります。

4
Ian Mackinnon

OAuthを使用する場合にパスワードが必要なのはなぜですか?

OAuthを完全にサポートするように更新されていない一部のTwitterアプリケーションは、 xAuth API を使用して、ユーザー名とパスワードからOAuth資格情報を取得できます。 OAuthトークンが返す期限が切れないため、これはアプリケーションのインストールごとに1回だけ必要です。

どうやってそれを保存するのを防ぐことができますか?

明らかに、Twitterはパスワードの保存を阻止できません。アプリケーションOAuthキーを取得するために同意する必要があるTwitter APIの契約条件は、メールで確認されているように、アプリケーションがパスワードを保存することを許可されていません。

この契約に違反したことに対する明示的な罰則はありませんが、OAuthキーがほぼ確実に取り消され、そのキーでアプリケーションに発行されたすべてのユーザーのOAuthトークンが無効になり、もう入手できません。

2
Marc Roberts

まず、アプリケーションがパスワードを保存することを技術的に防ぐことはできません。

現在、それらが行儀の良いローカルアプリケーションである場合、パスワードはコンピューターでのみ処理(または保存)され、Twitterに送信されます。これは、サーバーにパスワードを保存するサービスプロバイダーとは非常に異なります。これは、OAuthが元々解決するように設計された問題です。

一部のデスクトップおよびモバイルアプリケーションは、xOAuthフローを開始するためにユーザー名とパスワードを使用する方法であるxAuthを使用します。これは、おそらくTweetDeckが行っていることです。 1台のコンピューターでTweetDeckを承認したら、他のインスタンスを接続する必要があるため、再度承認する必要があります。したがって、アプリケーションを使用するときのフロー(およびアプリケーションごとではなく、アプリケーションごとのインストール)は、ユーザー名とパスワードを取得し、OAuthトークンを取得し、OAuthを格納できますトークン。

コンピューター上で実行されている正常に動作する評判の良いデスクトップアプリケーションにユーザー名とパスワードを入力することは、WebブラウザーでTwitter.comに入力するのと同じくらい安全であることに注意してください。

1