OAuth
BASIC認証は実装が簡単な一方で、セキュリティ面で不安がある。Twitter APIの利用についていえば、Twitterと連携した外部サービスを利用するために、Twitterのユーザー名とパスワードを第三者に渡してしまうことが特に問題となる。 これはつまり、ユーザーがTwitterで行える全権限を第三者に与えてしまっているのに等しい。これを改善するものとして、ユーザー名とパスワードとはひも付かないトークンベースで、あらかじめ決められたAPIのアクセスのみを許可しようというのが「OAuth認証」だ。
OAuth認証はその認証プロセスを見て分かるように、認証画面はOAuthプロバイダー側に遷移する(認証完了後、OAuthコンシューマーが指定したコールバックURLに遷移)ため、Webブラウザが立ち上がる。
例えばiPhoneアプリの開発であれば、WebKitフレームワーク「UIWebView」のdelegateでコールバックの呼び出しをみて、そこからトークンを取得するような“行儀の悪い”方法で回避できるかもしれないが、
モバイルアプリケーションを含めたデスクトップアプリケーションとの親和性がお世辞にも高いとはいえない認証方式だった。
そこで2010年になって登場したのが、もう1つの認証方式である「xAuth」だ。xAuthはOAuth認証の仕組みからRequest Tokenの取得と認証を省略したもので、Webブラウザで認証画面を開く必要はない。 Twitterが行いたかったのは、ユーザーのクレデンシャルを外部にさらすことなくAPIへのアクセス権を別のアプリケーションに譲渡することだったため、OpenIDで解決できるはずもなかった。